在Ubuntu Server上源碼安裝OpenERP 8.0,並配置wsgi和nginx運行環境

  原文:How to install OpenERP 8.0 Alpha on a fresh Debian / Ubuntu server.

  OpenERP的安裝,可以有多種方式,通過添加源,到http://nightly.openerp.com找對應版本,然後:

$ sudo apt-get install -f openerp

  即可。這種方式會自動安裝依賴包,當然postgresql還要先裝好。

  也可以下載deb包用dpkg -i安裝。找到的引文使用bzr下載branch,發現下載addons總是出錯。我改造一下,直接用源碼安裝成功。

  打開防火牆80、22端口,我是自己測試用的,索性把防火牆關了。

  安裝用到的軟件

$ sudo apt-get install postgresql-9.3 nginx uwsgi

  安裝必要的依賴包:

$ sudo apt-get install python-dev build-essential postgresql libpq-dev uwsgi nginx bzr git graphviz ghostscript postgresql-client libxml2-dev libxslt1-dev libjpeg62-dev zlib1g-dev python-virtualenv python-pip gettext libldap2-dev libsasl2-dev uwsgi-plugin-python python-lxml python-pypdf

  最後兩個,lXml和pyPdf是我添加的。我是先通過deb方式安裝再卸載,所有依賴包都裝好了。

$ sudo mkdir /var/www
$ sudo chown www-data:www-data /var/www  ; 創建/var/www目錄並將它的所有權給www-data用戶
$ cd /srv
$ sudo mkdir openerp    ; 我們在/srv/openerp目錄下安裝
$ sudo chown MY_USERNAME openerp  ; MY_USERNAME是自己的用戶名,比如我的是mack
$ cd openerp
; $ bzr branch lp:openerp-web
; $ bzr branch lp:openobject-server server  ; 下載到server目錄,和直接下載改名方式一致
; $ bzr branch lp:openobject-addons
; 原文通過bzr下載,上面已經解釋,有問題;我直接下載源碼包
$ wget http://nightly.openerp.com/trunk/nightly/src/openerp-8.0dev-latest.tar.gz
$ tar -xvf openerp-8.0dev-latest.tar.gz
; 解壓縮
$ mv openerp-8.0dev-20140314-000102(解壓縮出來的當前版本名字) server
; 改個名字方便些,新版本也可以直接用cp複製到server就升級了。因爲下載需要時間,可以開另外一個tty終端做下面的事情。
$ sudo -u postgres -s createuser openerp -P
# ENTER DESIRED DB PASSWORD
; 創建postgres數據庫中的用戶openerp,#後面提示輸入密碼,有兩次。如果已經有了,也可以用原來的用戶,記得和下文數據庫配置對應就好。
$ sudo -u postgres -s createdb openerp_test -O openerp
; 創建openerp_test數據庫。如果不創建也可以,安裝好之後用OpenERP自己的數據庫管理功能新建數據庫。
; $ virtualenv --no-site-packages env
; $ source env/bin/activate   ; 這兩句是在虛擬環境中進行配置,我也搞不懂,我在實機上裝就不需要了。
$ pip install pypdf
$ pip install lxml  ; 原文漏了這句,搞了我好久。

  確認下載解壓改名完成

$ cd server
$ python setup.py develop
; 其實這一步也是配置環境,如果缺少依賴包會自動下載,或者根據提示自己安裝
; $ sudo ln -s /srv/openerp/openerp-web/addons/* /srv/openerp/server/openerp/addons/
; $ sudo ln -s /srv/openerp/openobject-addons/* /srv/openerp/server/openerp/addons/
; 原文是分開的三個文件夾,我這裏只有一個包,就不需要這兩句

  創建並編輯wsgi-openerp.py文件:

$ vim wsgi-openerp.py
import openerp
openerp.multi_process = True # Nah!
openerp.conf.server_wide_modules = ['web']

conf = openerp.tools.config
conf['addons_path'] = '/srv/openerp/server/openerp/addons'
conf['db_name'] = 'openerp_test'
conf['db_host'] = 'localhost'
conf['db_user'] = 'openerp'
conf['db_port'] = 5432
conf['db_password'] = 'MY_DB_PASSWORD' # 注意數據庫名、用戶名、密碼都要對應

application = openerp.service.wsgi_server.application
openerp.service.server.load_server_wide_modules()

  創建並編輯openerp.conf文件,即openerp的配置文件。這種方式直接把配置加入運行環境了。

$ vim openerp.conf
[options]
addons_path=/srv/openerp/server/openerp/addons
db_name=openerp_test
db_host=localhost
db_user=openerp
db_port=5432
db_password=MY_DB_PASSWORD  # 注意數據庫名、用戶名、密碼都要對應

  新建一個config目錄,用來放置uwsgi和nginx配置文件:

$ mkdir config

  然後在config目錄下新建並編輯uwsgi-openerp.ini文件

$ vim config/uwsgi-openerp.ini
[uwsgi]
chdir=/srv/openerp/-server/
uid=www-data
gid=www-data
# virtualenv=/srv/openerp/env ; 我沒有使用虛擬環境,所以註銷這句
socket=/srv/openerp/uwsgi.sock
wsgi-file=wsgi-openerp.py
master=True
vacuum=True
max-requests=5000
buffer-size=32768
$ vim config/nginx-openerp.conf
server {
    listen 80;
    server_name MY_HOSTNAME; # 主機名,可以隨便填,如果有機器域名就填完整域名
    client_max_body_size 50M;
    keepalive_timeout 120;

    location / {
    include uwsgi_params;
    uwsgi_read_timeout 300;
    uwsgi_pass unix:/srv/openerp/uwsgi.sock;
    }
}

  如果已經配置了nginx,那麼要注意端口配置區分開,或者使用虛擬目錄,或者用域名區分。

  把配置文件關聯起來:

$ sudo ln -s /srv/openerp/server/config/uwsgi-openerp.ini /etc/uwsgi/apps-enabled/openerp.ini
$ sudo ln -s /srv/openerp/server/config/nginx-openerp.conf /etc/nginx/sites-enabled/openerp

  將/etc/nginx/nginx.conf中的這句“server_names_hash_bucket_size 64”的註釋去掉,如果有的話:)。

  下面配置一下:

$ sudo chown -R www-data:www-data /srv/openerp
$ sudo su www-data -s /bin/bash
; 進入www-data用戶環境
$ cd /srv/openerp/openobject-server/
; $ source ../env/bin/activate 在虛擬環境下需要
$ ./openerp-server -c openerp.conf -d openerp_test -u all --stop-after-init
; 這是把配置信息寫入OpenERP,如果運行中有紅色的ERROR提示,就說明失敗了,需要再檢查。
; 配置完退出www-data用戶環境,ctrl-D或者
$ exit

  最後重起服務

$ sudo service uwsgi restart
$ sudo service nginx restart

  現在就可以訪問機器進入OpenERP網頁界面了,初次選擇數據庫爲openerp_test(如果前面建立了的話)用戶名和密碼默認都是admin。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章