首页 > 代码库 > CentOS6.4下源代码安装以及nginx配置

CentOS6.4下源代码安装以及nginx配置

以前网上有个centos下的自动安装脚本,脚本本身应该是正确的,但是可能在多人转载后,中间有信息遗漏或者丢失,所以造成脚本失败,不能直接用

我把自己在CentOS下源代码安装OE以及与nginx整合的操作步骤拿出来分享一下,如有谬误,请坛友多指正


第一部分,安装OE
说明:CentOS版本为6.4版本,命令行采用bash,PostgreSQL为9.2版本,Nginx为1.4版本

1、CentOS 的安装选项有最小化安装、基本服务器安装、虚拟主机安装等等的,我这里采用的是基本服务器安装(带的东西较少,其实我们也只需要网络能联通加上yum可用即可)
2、安装postgresql9.2(默认的8.4版本我没试过,我一般都是把默认的8.4给卸载掉,下文中pg就代表postgresql-9.2)

注意:#代表root用户命令行状态(不做特别说明了),中间会涉及到切换到其他用户

#cd /tmp              //进入tmp目录,这是系统的临时目录,里面的文件不重要,即使误删危害也不大,所以推荐在tmp目录下做临时性操作
#yum remove postgres //卸载原有的pg,如果pg默认没有安装这条命令则无视
#rpm -Uvh http://yum.pgrpms.org/9.3/redhat/rhel-6Server-x86_64/pgdg-centos93-9.3-1.noarch.rpm //RPM方式从网络上安装pg的RPM包
#yum -y install postgresql93 postgresql93-server postgresql93-libs postgresql93-contrib postgresql93-devel //使用yum安装相关依赖包
#service postgresql-9.3 initdb  //初始化pg数据库
#service postgresql-9.3 start   //启动pg服务
#chkconfig postgresql-9.3 on   //将pg启动服务加入CentOS的启动列表,相当于windows里面的启动项

#su - postgres                      //切换到postgres用户,该用户为安装pg时安装包自动创建的,它是pg默认的超级用户,在该用户环境下有一些管理命令
-bash-4.1(postgres)$createuser --superuser openerp    //创建一个叫openerp的超级用户(此时创建的用户只是数据库的用户,openerp在操作系统中并不存在,请注意其中的区别)

#rpm -ivh http://dl.fedoraproject.org/pub/epel/6Server/x86_64/epel-release-6-8.noarch.rpm  //从网络上安装epel包,我这里的RPM链接是针对x86_64版本的,如果是其他版本请做对应修改
#yum -y python-dateutil python-docutils python-feedparser python-imaging python-jinja2 python-ldap libxslt-python python-lxml python-mako python-mock python-openid  python-psutil python-psycopg2 python-reportlab python-yaml  pywebdav  python-vobject  python-vatnumber python-unittest2  python-simplejson pytz python-gdata python-ZSI  pychart pydot pybabel pyparsing python-werkzeug  //安装OE依赖的库,大部分都是python库,也有一部分其他依赖库

#wget http://gdata-python-client.googlecode.com/files/gdata-2.0.17.zip  //这东西起什么作用我也不清楚,不过它很好安装
#unzip gdata-2.0.18.zip
#cd gdata-2.0.18
#python setup.py install

#cd /tmp
#rm -rf openerp*                          //清理不用的旧的openerp开头的所有文件(慎用)
#wget http://nightly.openerp.com/7.0/nightly/src/openerp-7.0-latest.tar.gz   //下载OE源代码包,准备安装
#tar xvzf openerp-7.0-latest.tar.gz           //解压OE源代码包
#mkdir /opt/oe7
#cp -R openerp*/{openerp,install/{openerp-server.init,openerp-server.conf},openerp-server,setup.py} /opt/oe7  //将我们需要的文件拷贝到安装目录
#adduser openerp                            //创建openerp用户,它与postgres创建的openerp是关联的
#chown openerp:openerp /opt/oe7 -R          //将OE安装目录下的所有文件所有者设定为openerp用户

#cd /opt/oe7
#chmod u+x openerp-server.init  //.init文件是oe的一个启动脚本,需要给它设置可执行权限
#mv openerp-server.init  /etc/init.d/oe7server   
#chkconfig oe7server on         //将oe加入CentOS启动列表
#cp openerp-server.conf /etc     //将OE的配置文件拷贝到/etc目录下,如果想自定义配置文件路径可以通过给openerp-server设置选项或者修改openerp-server.init文件里面的路径来实现,这里采用的方法不用做修改,较为简单

;;到这里OE基本上安装完成了
#service oe7server start             //启动OE,这时候应该可以通过浏览器访问OE了


第二部分,安装Nginx
OE本身自带的webserver效能较低,在前端采用nginx做代理

#yum install nginx                   //nginx安装很简单
配置/etc/nginx/nginx.conf文件,如果只是为OE服务,建议一个配置文件即可,步科的多文件配置方式是在ubuntu上测试的,在CentOS上缺少相关目录(当然应该是我不熟)

;;/etc/nginx/nginx.conf配置文件
#设定http服务器,利用它的反向代理功能提供负载均衡支持

user              nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log;
#error_log  /var/log/nginx/error.log  notice;
#error_log  /var/log/nginx/error.log  info;

pid        /var/run/nginx.pid;

events {
    use epoll;
    worker_connections  1024;
}

http {
     #设定mime类型,类型由mime.type文件定义
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    #设定日志格式
    log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" ‘
                      ‘$status $body_bytes_sent "$http_referer" ‘
                      ‘"$http_user_agent" "$http_x_forwarded_for"‘;

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    gzip  on;
    gzip_disable "msie6";
    gzip_vary on;
    gzip_proxied any;
    gzip_comp_level 6;
    gzip_buffers 16 8k;
    gzip_http_version 1.1;
    #添加一个类型 application/javascript
    gzip_types text/plain text/css application/javascript application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

    # Load config files from the /etc/nginx/conf.d directory
    # The default server is in conf.d/default.conf
    include /etc/nginx/conf.d/*.conf;

    upstream oe_server{
        #这里可以给出多个server,用来分担OE服务器的负担,并且还可以设定权重(具体请参考nginx配置)
        server 127.0.0.1:8069;    //这是OE提供服务的地址及端口,可以指定多个server,也就是可以使用多个OE服务器来均衡负载,但是后台数据库还是要保证在逻辑上是一台
                                //我是因为nginx与OE在同一台机器,所以可以写成127段地址
    }

   #第一个虚拟服务器
   server {
        #侦听192.168.1.2的80端口
        listen       80;
        server_name  192.168.1.2;

        location /{
          root   /opt/oe7/openerp/addons/;      #定义服务器的默认网站根目录位置
          proxy_pass  http://oe_server ;#请求转向mysvr 定义的服务器列表
          #以下是一些反向代理的配置可删除.
          proxy_redirect off;
          #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
          proxy_set_header Host $host;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          client_max_body_size 10m;    #允许客户端请求的最大单文件字节数
          client_body_buffer_size 128k;  #缓冲区代理缓冲用户端请求的最大字节数,
          proxy_connect_timeout 90;  #nginx跟后端服务器连接超时时间(代理连接超时)
          proxy_send_timeout 90;        #后端服务器数据回传时间(代理发送超时)
          proxy_read_timeout 90;         #连接成功后,后端服务器响应时间(代理接收超时)
          proxy_buffer_size 4k;             #设置代理服务器(nginx)保存用户头信息的缓冲区大小
          proxy_buffers 4 32k;               #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
          proxy_busy_buffers_size 64k;    #高负荷下缓冲大小(proxy_buffers*2)
          proxy_temp_file_write_size 64k;  #设定缓存文件夹大小,大于这个值,将从upstream服务器传
        }
     }
}


#service nginx start 


OK,现在可以通过nginx来访问OE了
如果加上花生壳软件,再配置路由器端口映射,外网就可以通过域名来访问内网OE了

CentOS6.4下源代码安装以及nginx配置