分类 学习lnmp 下的文章

今年就翻到这里了,
odoo10.0还剩688条未翻译,11还是老样子,odoo12.0就要破4K,
老唐说,若干年后,他会回忆起当年一起整odoo官方翻译这事儿,
专注干一件事情,想想也蛮不错的————是为记。杜哥@1028年09月26日 23:42
adfg.png

要在内网搭个IT资产管理系统,选了centos7最新版,在exsi6.0上开始的。
首先安装centos7,最小安装之后安装openssh过程略。
之后putty远程连进centos7,安装apache和php和sqlite。
Apache软件的软件包名称叫做httpd,因此,要安装Apache软件,就使用下述命令:

[root@localhost ~]# yum install httpd

安装完成后,Apache是以httpd服务的形式存在的。因此,要启动Apache并将其设置为开机启动,就使用命令:

[root@localhost ~]# systemctl start httpd.service
[root@localhost ~]# systemctl enable httpd.service

然后,检查httpd服务状态:

[root@localhost ~]# systemctl status httpd.service

其中,“enabled”表示httpd服务已设为开机启动,“active(running)”则表示httpd服务正在运行中。
这样的话,HTTP协议就已被启动起来了,由于HTTP协议使用到tcp端口80,因此防火墙要放通tcp端口80:

[root@localhost ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent

重启防火墙以让更改立刻生效:

[root@localhost ~]# firewall-cmd --reload

使用以下命令检查配置是否成功:

[root@localhost ~]# firewall-cmd --list-all

其中,,tcp端口80已放行通过了。
然后这个时候,就可以在物理机上使用浏览器来访问刚刚搭建的web服务器了。不过,因为这个时候还未创建任何页面,所以它显示的是Apache软件自带的测试页面。
设置Apache配置文件
Apache软件的主配置文件为/etc/httpd/conf/httpd.conf。关于Apache 2.4版软件的详细说明文档,可在网页http://httpd.apache.org/docs/2.4/en/中查阅到。特别是,关于主配置文件httpd.conf中各指令的详细说明,可在网页http://httpd.apache.org/docs/2.4/mod/directives.html中查阅到
关于Apache 2.4版软件的详细说明文档,也可以将它安装在本地Linux主机上面,使用命令yum install httpd-manual即可安装它。安装完成后,重启httpd服务。在web服务运行正常的情况下,可在本地Linux主机上面使用网址http://localhost/manual/来访问它。在其它设备上面,则使用相应的网址即可,如在本实例中,我可以在物理机上使用网址http://172.31.2.2/manual/来访问它
另外还需要知道:/etc/httpd/conf.d目录下以.conf结尾的配置文件也会被读取;可加载模块(如PHP)的配置文件应放置在/etc/httpd/conf.modules.d目录下,并且也以.conf结尾。

下面介绍一下httpd.conf这个配置文件的内容(少量配置有修改):

ServerRoot "/etc/httpd"                      //服务器根目录:本配置文件中没有使用绝对路径的地方,都认为是在该目录下              
Listen 80                                    //侦听80端口                                                                                                            
                                                                                                                                                                               
Include conf.modules.d/*.conf                                                                                                                                    
//该设定让/etc/httpd/conf.modules.d目录下以.conf结尾的配置文件也会被读取进来。DSO对象的配置文件应放置在此目录下       
                                                                                                                                                                               
User apache                                                                                                                                                             
Groupapache                                                                                                                                                           
//当你使用浏览器访问web服务器时,会产生相应的httpd进程,该进程所属的用户和组就由这里设定。                                       
                                                                                                                                                                               
//从这里开始,下面的设定适用于“主”服务器,与虚拟主机区别开来。但如果<VirtualHost>部分未设定这些值,也会使用这些值  
                                                                                                                                                                               
ServerAdmin root@localhost                 //系统管理员的邮箱。改成自己的邮箱即可。                                                         
ServerName www.speedsnail.com            //设置主机名。生产环境中,该主机名应该是能被正确解析成这台服务器的IP的。       
                                                                                                                                                                               
<Directory />                                                                                                                                                           
   AllowOverride none                                                                                                                                               
   Require all denied                                                                                                                                                  
</Directory>                                                                                                                                                            
//<Directory 目录路径>和</Directory>:用于设定指定目录(这里是系统根目录)的访问权限。目录路径那里可以使用绝对         
//路径和相对路径,还可以搭配使用通配符和正则表达式。                                                                                                  
//AllowOverride:如果指定目录下(这里是系统根目录)存在一个.htaccess文件,那么AllowOverride设定的是,该文件里面的     
//设置是否能够覆盖<Directory>这部分的设置,或该文件里面的设置可以覆盖的是<Directory>这部分的哪些设置。none表示不    
//允许进行覆盖。                                                                                                                                                        
//Require:设定哪些用户可以访问该目录(这里是系统根目录)。all denied表示不允许访问该目录。                                       
                                                                                                                                                                               
DocumentRoot "/var/www/html"                                                                                                                                 
//设定网页存放目录。比如说,访问http://host/index.html实际上就是访问这个host的/var/www/html/index.html这个文档。         
                                                                                                                                                                                
<Directory "/var/www">                                                                                                                                             
   AllowOverride None                                                                                                                                                
   Require all granted                        //all granted表示可无条件访问该目录。                                                                   
</Directory>                                                                                                                                                             
                                                                                                                                                                                
<Directory"/var/www/html">                                                                                                                                       
   Options FollowSymLinks                                                                                                                                          
   AllowOverride None                                                                                                                                                
   Require all granted                                                                                                                                                 
</Directory>                                                                                                                                                             
//Options:用于设定在该目录中哪些特性可用。FollowSymLinks,让该目录下的符号链接可以生效。默认这里还有个Indexes选     
//项,建议拿掉。它的作用是,当浏览器访问该目录(而非该目录下的某一个档案)时,如果该目录下没有默认网页(如index.html),
//那么此时就会返回该目录下的文件名列表。                                                                                                                    
                                                                                                                                                                                
<IfModule dir_module>                                                                                                                                             
   DirectoryIndex index.html                                                                                                                                        
</IfModule>                                                                                                                                                             
//<IfModule 模块>和</IfModule>:如果Apache有加载这里指定的模块,那么Apache就会对它们之间的语句进行处理。            
//也可以使用<IfModule!模块>和</IfModule>,那么就表示没有加载指定的模块时才进行处理。                                              
//这里的模块可以是模块ID(如rewrite_module),也可以是模块文件名(如mod_rewrite.c)。                                               
//DirectoryIndex:这就是设置默认网页的,即当浏览器访问某一个目录时,会返回该目录下的index.html文件(如果存在的话)。   
//也可以接多个档名,如DirectoryIndexindex.html index.htm index.cgi index.pl,这样就会返回找到的第一个文件。                   
                                                                                                                                                                                
<Files ".ht*">                                                                                                                                                             
   Require all denied                                                                                                                                                   
</Files>                                                                                                                                                                    
//<Files 文件名>和</Files>:对指定文件名的文件应用这里指定的语句。                                                                              
//这里的语句的意思是:任意目录下,文件名符合.ht*的文件都会被禁止访问。                                                                         
                                                                                                                                                                                
ErrorLog "logs/error_log"                           //错误日志所在文档为/etc/httpd/logs/error_log                                             
LogLevel warn                                     //设置日志记录级别                                                                                            
                                                                                                                                                                                
<IfModule log_config_module>                                                                                                                                  
   LogFormat "%h %l %u %t \"%r\" %>s %b\"%{Referer}i\" \"%{User-Agent}i\"" combined                                               
   LogFormat "%h %l %u %t \"%r\" %>s %b" common                                                                                                  
   <IfModule logio_module>                                                                                                                                       
     LogFormat "%h %l %u %t \"%r\" %>s %b\"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio                               
   </IfModule>                                                                                                                                                          
   CustomLog "logs/access_log" combined        //客户端访问服务器的日志会记在/etc/httpd/logs/access_log                       
</IfModule>                                                                                                                                                             
                                                                                                                                                                                
<IfModule alias_module>                                                                                                                                           
   ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"                                                                                                                   
</IfModule>                                                                                                                                                             
//ScriptAlias会将URL路径映射到指定目录,并且让该目录具有CGI脚本执行权限(因此CGI脚本都可放置在该目录下)。                
//以这里的设定举个例子,假如在浏览器中输入http://example.com/cgi-bin/foo,此时就会执行/var/www/cgi-bin/foo这个         
//CGI脚本。                                                                                                                                                               
                                                                                                                                                                                
<Directory"/var/www/cgi-bin">                                                                                                                                   
   AllowOverride None                                                                                                                                                
   Options None                                                                                                                                                         
   Require all granted                                                                                                                                                 
</Directory>                                                                                                                                                             
                                                                                                                                                                                
<IfModule mime_module>                             //这部分是关于MIME的                                                                            
   TypesConfig /etc/mime.types                                                                                                                                   
   AddType application/x-compress .Z                                                                                                                         
   AddType application/x-gzip .gz .tgz                                                                                                                          
   AddType text/html .shtml                                                                                                                                         
   AddOutputFilter INCLUDES .shtml                                                                                                                             
</IfModule>                                                                                                                                                             
                                                                                                                                                                                
AddDefaultCharset Off                                                                                                                                               
//AddDefaultCharset会强制客户端浏览器使用指定的字符集编码方式。这可能会有问题,所以要将它关闭。实际上,所使用的编     
//码方式在网页里有声明。                                                                                                                                            
                                                                                                                                                                                
<IfModule mime_magic_module>                                                                                                                               
   MIMEMagicFile conf/magic                                                                                                                                     
</IfModule>                                                                                                                                                             
                                                                                                                                                                                
EnableSendfile on                                           //允许Apache使用系统核心支持的sendfile来传送文件给客户端                      
IncludeOptional conf.d/*.conf                          //在/etc/httpd/conf.d目录下以.conf结尾的配置文件也会被读取                      

从上面也可以知道,默认情况下,网页文档可以放置在/var/www/html目录下,CGI脚本可以放置在/var/www/cgi-bin目录下;错误日志在/etc/httpd/logs/error_log,访问日志在/etc/httpd/logs/access_log。

设定好配置文件后,要测试配置文件语法有没有问题,可使用命令:

[root@localhost ~]#apachectl configtest

然后,重启httpd服务:

[root@localhost ~]# systemctl restart httpd

安装PHP
使用以下命令安装PHP软件:

[root@localhost ~]# yum install php

安装完成后,PHP会生成配置文件/etc/httpd/conf.d/php.conf,因为该配置文件在/etc/httpd/conf.d目录下,所以它会被Apache所读取。PHP还会生成配置文件/etc/httpd/conf.modules.d/10-php.conf,该配置文件也会被Apache所读取,它的设定让Apache可以加载PHP模块。不过,PHP软件本身的配置文件其实是/etc/php.ini。

下面介绍一下配置文件/etc/httpd/conf.d/php.conf:
<FilesMatch \.php$>                                                                                                                                       
   SetHandler application/x-httpd-php                                                                                                               
</FilesMatch>                                                                                                                                                
//<FilesMatch 正则表达式>和</FilesMatch>:文件名与正则表达式相匹配的文件,将适用这里设定的语句。                   
//SetHandler:强制所有匹配的文件使用指定handler进行处理。                                                                               
                                                                                                                                                                     
AddType text/html .php                          //设定扩展名为.php的档案的类型为text/html                                            
DirectoryIndex index.php                         //默认网页档名增加index.php                                                               
php_value session.save_handler"files"                                                                                                               
php_value session.save_path    "/var/lib/php/session"                                                                                        
 
下面介绍一下配置文件/etc/httpd/conf.modules.d/10-php.conf:
<IfModule prefork.c>                                                                                                                                     
 LoadModule php5_module modules/libphp5.so                                                                                               
</IfModule>                                                                                                                                                  
//如果Apache使用的多处理模块(MPM)是prefork(默认),那么Apache就会加载LoadModule指定的模块(PHP模块)       
 
最后,来看看配置文件/etc/php.ini。在该文件的开头处,有说明针对生产环境和开发环境,有一些设定值可以进行修改,以提高PHP的效能。假设该web服务器是用于生产环境的,将下面的这些设定值改成这样(或确认这些设定值是这样的):
display_errors = Off                                       //当发生错误时,不将错误信息显示出来(到浏览器上)                          
display_startup_errors = Off                               //不将PHP启动时发生的错误信息显示出来(到浏览器上)                    
error_reporting = E_ALL &~E_DEPRECATED & ~E_STRICT   //这一项设定PHP会告知的错误或信息类型                       
html_errors = On                                         //当PHP显示或记录错误信息时,将该信息格式化成HTML格式                
log_errors = On                                           //这让PHP可以将错误信息日志记录到日志文件里                                 
ignore_repeated_errors = On                              //忽略重复的错误信息                                                               
ignore_repeated_source = On                             //当忽略重复的错误信息时忽略信息源                                          
post_max_size = 25M                                      //PHP所允许的POST数据的最大值。可按照需要进行调整                    
file_uploads = On                                          //允许文件上传,默认为On                                                             
upload_max_filesize = 20M                                 //上传文件所允许的最大值。可按照需要进行调整                            
memory_limit = 128M                                     //PHP可用的最大内存。可按照需要进行调整                                      
 

然后,重启httpd服务:

[root@localhost~]# systemctl restart httpd

为了测试Apache能不能正常调用PHP,在/var/www/html目录下新建一个phpinfo.php文档,内容如下所示:

vi /var/www/html/phpinfo.php
<?php phpinfo(); ?>

其中的<?php ?>是PHP程序的语法,phpinfo ();则是PHP程序提供的一个函式库,该函式库可以显示出你这个web服务器的相关信息。然后,使用浏览器来访问服务器的这个文件,看看页面能不能正常打开。

安装sqlite

yum install sqlite*
yum install php-sqlite*

会自动匹配安装包。
重启一次apache的httpd服务:

systemctl restart httpd.service

完毕。

ubuntu 14.04 server 安装IT资产管理系统

环境:lnmp.org军哥出品的一键包,用的nginx没用apache(官方好像推荐是用apache的)。

步骤:

1、将itdb1.23最新版本的源码拿到手放到wwwroot目录下:

git clone https://github.com/leangjia/itdb.git

注意:会得到一个itdb目录。

2、打开浏览器输入http://abc.com/itdb/

报错提示找不到默认SQLite数据库文件,

/mnt/wwwroot/abc.com/itdb/data/itdb.db not found
if this is a fresh install, copy pure.db to /mnt/wwwroot/abc.com/itdb/data/itdb.db
in unix:
cd /mnt/wwwroot/abc.com/itdb/data; cp pure.db itdb.db

用命令 cp pure.db itdb.db 解决。

3、刷新浏览器后再提示:

1、

  sudo apt-get install nginx php5-fpm

然后编辑配置文件。

  sudo gedit /etc/nginx/site-available/default

注意,如果是用gedit而不是用vi编辑,那应该编辑site-available下的default文件,如果是编辑site-enabled下的default,因为gedit保存时默认会生成一个“default~”的备份,这个备份也会被nginx当成启用的配置文件而出错无法启动。保险的做法是,编辑site-available下的文件后仍手动删除备份文件。

找到location ~ .php$的地方,5行取消注释,变成这样:

  location ~ \.php$ {  
  #   fastcgi_split_path_info ^(.+\.php)(/.+)$;  
  #   # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini  
  #  
  #   # With php5-cgi alone:  
  #   fastcgi_pass 127.0.0.1:9000;  
  #   # With php5-fpm:  
      fastcgi_pass unix:/var/run/php5-fpm.sock;  
      fastcgi_index index.php;  
      include fastcgi_params;  
  }  

这就成了!
启动nginx:

  sudo service nginx start

扩展:

  1. default文件中,找到
    index index.html index.htm;

这行,加入成

  index index.html index.htm index.php;

这就可以用php文件做默认主页

2.default文件中,在server{}指示符的 location / {} 指示符内,加入

  autoindex on;

当文件夹内没有index文件,就会自动索引文件。

  1. server{} 指示符的 root 行是文件根目录,自行修改就能把那个文件夹作为网站根目录

参考:http://ubuntuhandbook.org/index.php/2013/10/install-nginx-php5-mysql-lemp-ubuntu-1310/

转载请注明出处:http://blog.csdn.net/hursing

安装MySQL
要安装 MySQL,可以在终端提示符后运行下列命令:

  sudo apt-get install mysql-server mysql-client #中途会让你输入一次root用户密码
  sudo apt-get install php5-mysql  #安装php5-mysql 是将php和mysql连接起来

一旦安装完成,MySQL 服务器应该自动启动。

  sudo start mysql #手动的话这样启动
  sudo stop mysql #手动停止

当你修改了配置文件後,你需要重启 mysqld 才能使这些修改生效。

要想检查 mysqld 进程是否已经开启,可以使用下面的命令:

  pgrep mysqld

如果进程开启,这个命令将会返回该进程的 id。

文件结构
MySQL配置文件:/etc/mysql/my.cnf ,其中指定了数据文件存放路径

  datadir         = /var/lib/mysql

如果你创建了一个名为 test 的数据库,那么这个数据库的数据会存放到 /var/lib/mysql/test 目录下。

进入MySQL

  mysql -uroot -p 

(输入mysql的root密码)

  qii@ubuntu:~$ mysql -u root -p
  Enter password: 
  Welcome to the MySQL monitor.  Commands end with ; or \g.
  Your MySQL connection id is 37
  Server version: 5.1.41-3ubuntu12.3 (Ubuntu)

  Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

  mysql> 

修改 MySQL 的管理员密码:

  sudo mysqladmin -u root password newpassword;

简单的操作

显示数据库:

mysql> show databases;
Database
information_schema
mysql

2 rows in set (0.00 sec)

phpmyadmin管理
用随便一个支持PHP的web服务器(如Apache、Nginx、Lighttpd),下载phpmyadmin,装之。

  sudo apt-get install phpmyadmin  #注意这是安装到/usr/share/phpmyadmin

在ubuntu下,运行:

  sudo apt-get install phpmyadmin

过一会后会有一些设置,如选择服务器(选apache别选lighttpd)、密码设定等等内容。安装完成后,访问http://localhost/phpmyadmin会出现404错误,这是因为没有将phpmyadmin目录映射到apache目录下面,运行下面命令即可:

nginx服务器用:

  sudo ln -s /usr/share/phpmyadmin /usr/share/nginx/html

apache服务器用:

  sudo ln -s /usr/share/phpmyadmin /var/www

最后打开:http://localhost/phpmyadmin 成功!

OS:ubuntu 14.04 server+desktop
nginx官网下载http://nginx.org/en/download.html,解压后./configure报错:
1、提示缺少pcre然后官网下载回来后./configure --prefix=/usr/local/pcre然后make -j4&& make install安装到默认的/usr/local/;
2、提示缺少zlib同样官网下载回来后./configure --prefix=/usr/local/zlib然后make -j4&& make install安装到默认的/usr/local/;
3、提示缺少openssl同样官网下载回来后./config --prefix=/usr/local/openssl然后make -j16&& make install安装到默认的/usr/local/;

4、用sudo su进入root超级管理员权限后:

a)

  ./configure --with-pcre=/usr/local/pcre --with-zlib=/usr/local/zlib --with-openssl=/usr/local/openssl

b)

  make -j4&& make install

安装成功提示:

  Configuration summary
    + using PCRE library: /usr/local/
    + using OpenSSL library: /usr/local/
    + using zlib library: /usr/local/

    nginx path prefix: "/usr/local/nginx"
    nginx binary file: "/usr/local/nginx/sbin/nginx"
    nginx modules path: "/usr/local/nginx/modules"
    nginx configuration prefix: "/usr/local/nginx/conf"
    nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
    nginx pid file: "/usr/local/nginx/logs/nginx.pid"
    nginx error log file: "/usr/local/nginx/logs/error.log"
    nginx http access log file: "/usr/local/nginx/logs/access.log"
    nginx http client request body temporary files: "client_body_temp"
    nginx http proxy temporary files: "proxy_temp"
    nginx http fastcgi temporary files: "fastcgi_temp"
    nginx http uwsgi temporary files: "uwsgi_temp"
    nginx http scgi temporary files: "scgi_temp"

最后,使用pgrep检验是否成功:pgrep nginx返回行号进程ID即可。
完毕!

Odoo多个二级域名对应多个Pgsql数据库访问【作业】

前段时间-福州小林在Jeffery群里问到说要多域名访问odoo对应多数据库,按照网上教程修改odoo源码找不到对应的修改的地方,网上教程的源码是旧源码,新版本odoo已经不需要修改源码,感谢南京CCDOS指点迷津!

举例:

想用aaa.odoo123.com访问odoo中的aaa数据库,
想用bbb.odoo123.com访问odoo中的bbb数据库。

1、修改openerp-server.conf文件,增加一行:dbfilter = ^%d$

如下图所示:

2、http://127.0.0.1:8069/web/database/manager并创建aaa和bbb两个(操作两次)数据库:

3、打开C:WINDOWSsystem32driversetchosts在此文件中增加两行:

127.0.0.1 aaa.odoo123.com
127.0.0.1 bbb.odoo123.com

效果如下图:
4、访问aaa.odoo123.com

5、访问bbb.odoo123.com

6、如果访问了一个odoo里没有的数据库那么会跳转至新创建数据库的页面:

声明:

1、以上方法基于win2003server+步科绿色版GreenOdoo,以上方法成功。
2、在阿里云服务器+LNMP(启用nginx的gzip及反向代理了odoo的8069端口)前提下,以上方法失败。