歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux管理 >> Linux配置

CentOS6.4下源代碼安裝openERP以及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.2/redhat/rhel-6-x86_64/pgdg-centos92-9.2-6.noarch.rpm  //RPM方式從網絡上安裝pg的RPM包
#yum -y install postgresql92 postgresql92-server postgresql92-libs postgresql92-contrib postgresql92-devel //使用yum安裝相關依賴包
#service postgresql-9.2 initdb  //初始化pg數據庫
#service postgresql-9.2 start   //啟動pg服務
#chkconfig postgresql-9.2 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/6/x86_64/epel-release-6-8.noarch.rpm   //從網絡上安裝epel包,我這裡的RPM鏈接是針對x86_64版本的,如果是其他版本請做對應

修改
#yum -y install python-psycopg2 python-lxml PyXML python-setuptools libxslt-python pytz python-matplotlib python-babel python-mako python-dateutil python-psycopg2 pychart pydot python-reportlab python-devel python-imaging python-vobject hippo-canvas-python mx python-gdata python-ldap python-openid python-werkzeug python-vatnumber pygtk2 glade3 pydot python-dateutil python-matplotlib pygtk2 glade3 pydot python-dateutil python-matplotlib python python-devel python-psutil python-docutils makeautomake gcc gcc-c++ kernel-devel byacc flashplugin-nonfree poppler-utils pywebdav  //安裝OE依賴的庫,大部分都是python庫,也有一部分其他依賴庫

#wget  http://gdata-python-client.googlecode.com/files/gdata-2.0.17.zip   //這東西起什麼作用我也不清楚,不過它很好安裝
#unzip gdata-2.0.17.zip
#cd gdata-2.0.17
#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基本上安裝完成了,但是啟動的時候會報錯,主要是仍舊缺少一些依賴包
我們可以采用兩種方式來解決這個問題
第一種:完全手工安裝依賴包
#yum install python-pip
#pip-python install mock
#pip-python install unittest2

第二種:使用剛才拷貝的setup.py
#cd /opt/oe7
#python setup.py install   //這個安裝程序會自動從網上下載需要的依賴包,並且會創建一些目錄,我們只需要保留openerp.egg-info目錄,如果刪除該目錄,OE啟動會有警告信息

#adduser openerp  
#chown openerp:openerp /opt/oe7 -R   //將OE安裝目錄的所有者遞歸授予openerp
#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  

現在可以通過nginx來訪問OE了
如果加上花生殼軟件,再配置路由器端口映射,外網就可以通過域名來訪問內網OE了
Copyright © Linux教程網 All Rights Reserved