odoo並配置wsgi和nginx運行環境

sudo apt-get install -f openerp  python

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

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

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

  安裝用到的軟件sql

[plain]  view plain  copy
 
  在CODE上查看代碼片派生到個人代碼片
  1. $ sudo apt-get install postgresql-9.3 nginx uwsgi  

  安裝必要的依賴包:數據庫

[plain]  view plain  copy
 
  在CODE上查看代碼片派生到個人代碼片
  1. $ 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方式安裝再卸載,全部依賴包都裝好了。vim

[plain]  view plain  copy
 
  在CODE上查看代碼片派生到個人代碼片
  1. $ sudo mkdir /var/www  
  2. $ sudo chown www-data:www-data /var/www  ; 建立/var/www目錄並將它的全部權給www-data用戶  
  3. $ cd /srv  
  4. $ sudo mkdir openerp    ; 咱們在/srv/openerp目錄下安裝  
  5. $ sudo chown MY_USERNAME openerp  ; MY_USERNAME是本身的用戶名,好比個人是<span>mack</span>  
  6. $ cd openerp  
  7. ; $ bzr branch lp:openerp-web  
  8. ; $ bzr branch lp:openobject-server server  ; 下載到server目錄,和直接下載更名方式一致  
  9. ; $ bzr branch lp:openobject-addons  
  10. ; 原文經過bzr下載,上面已經解釋,有問題;我直接下載<a target="_blank" href="http://nightly.openerp.com/trunk/nightly/src/openerp-8.0dev-latest.tar.gz">源碼包</a>  
  11. $ wget http://nightly.openerp.com/trunk/nightly/src/openerp-8.0dev-latest.tar.gz  
  12. $ tar -xvf openerp-8.0dev-latest.tar.gz  
  13. ; 解壓縮  
  14. $ mv openerp-8.0dev-20140314-000102(解壓縮出來的當前版本名字) server  
  15. ; 改個名字方便些,新版本也能夠直接用cp複製到server就升級了。由於下載須要時間,能夠開另一個tty終端作下面的事情。  
[plain]  view plain  copy
 
  在CODE上查看代碼片派生到個人代碼片
  1. $ sudo -u postgres -s createuser openerp -P  
  2. # ENTER DESIRED DB PASSWORD  
  3. ; 建立postgres數據庫中的用戶openerp,#後面提示輸入密碼,有兩次。若是已經有了,也能夠用原來的用戶,記得和下文數據庫配置對應就好。  
  4. $ sudo -u postgres -s createdb openerp_test -O openerp  
  5. ; 建立openerp_test數據庫。若是不建立也能夠,安裝好以後用OpenERP本身的數據庫管理功能新建數據庫。  
  6. ; $ virtualenv --no-site-packages env  
  7. ; $ source env/bin/activate   ; 這兩句是在虛擬環境中進行配置,我也搞不懂,我在實機上裝就不須要了。  
  8. $ pip install pypdf  
  9. $ pip install lxml  ; 原文漏了這句,搞了我很久。  

  確認下載解壓更名完成bash

[plain]  view plain  copy
 
  在CODE上查看代碼片派生到個人代碼片
  1. $ cd server  
  2. $ python setup.py develop  
  3. ; 其實這一步也是配置環境,若是缺乏依賴包會自動下載,或者根據提示本身安裝  
  4. ; $ sudo ln -s /srv/openerp/openerp-web/addons/* /srv/openerp/server/openerp/addons/  
  5. ; $ sudo ln -s /srv/openerp/openobject-addons/* /srv/openerp/server/openerp/addons/  
  6. ; 原文是分開的三個文件夾,我這裏只有一個包,就不須要這兩句  

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

[plain]  view plain  copy
 
  在CODE上查看代碼片派生到個人代碼片
  1. $ vim wsgi-openerp.py  
[python]  view plain  copy
 
  在CODE上查看代碼片派生到個人代碼片
  1. import openerp  
  2. openerp.multi_process = True # Nah!  
  3. openerp.conf.server_wide_modules = ['web']  
  4.   
  5. conf = openerp.tools.config  
  6. conf['addons_path'] = '/srv/openerp/server/openerp/addons'  
  7. conf['db_name'] = 'openerp_test'  
  8. conf['db_host'] = 'localhost'  
  9. conf['db_user'] = 'openerp'  
  10. conf['db_port'] = 5432  
  11. conf['db_password'] = 'MY_DB_PASSWORD' # 注意數據庫名、用戶名、密碼都要對應  
  12.   
  13. application = openerp.service.wsgi_server.application  
  14. openerp.service.server.load_server_wide_modules()  

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

[plain]  view plain  copy
 
  在CODE上查看代碼片派生到個人代碼片
  1. $ vim openerp.conf  
[plain]  view plain  copy
 
  在CODE上查看代碼片派生到個人代碼片
  1. [options]  
  2. addons_path=/srv/openerp/server/openerp/addons  
  3. db_name=openerp_test  
  4. db_host=localhost  
  5. db_user=openerp  
  6. db_port=5432  
  7. db_password=MY_DB_PASSWORD  # 注意數據庫名、用戶名、密碼都要對應  

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

[plain]  view plain  copy
 
  在CODE上查看代碼片派生到個人代碼片
  1. $ mkdir config  

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

[plain]  view plain  copy
 
  在CODE上查看代碼片派生到個人代碼片
  1. $ vim config/uwsgi-openerp.ini  
[plain]  view plain  copy
 
  在CODE上查看代碼片派生到個人代碼片
  1. [uwsgi]  
  2. chdir=/srv/openerp/-server/  
  3. uid=www-data  
  4. gid=www-data  
  5. # virtualenv=/srv/openerp/env ; 我沒有使用虛擬環境,因此註銷這句  
  6. socket=/srv/openerp/uwsgi.sock  
  7. wsgi-file=wsgi-openerp.py  
  8. master=True  
  9. vacuum=True  
  10. max-requests=5000  
  11. buffer-size=32768  
[plain]  view plain  copy
 
  在CODE上查看代碼片派生到個人代碼片
  1. $ vim config/nginx-openerp.conf  
[plain]  view plain  copy
 
  在CODE上查看代碼片派生到個人代碼片
  1. server {  
  2.     listen 80;  
  3.     server_name MY_HOSTNAME; # 主機名,能夠隨便填,若是有機器域名就填完整域名  
  4.     client_max_body_size 50M;  
  5.     keepalive_timeout 120;  
  6.   
  7.     location / {  
  8.     include uwsgi_params;  
  9.     uwsgi_read_timeout 300;  
  10.     uwsgi_pass unix:/srv/openerp/uwsgi.sock;  
  11.     }  
  12. }  

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

  把配置文件關聯起來:

[plain]  view plain  copy
 
  在CODE上查看代碼片派生到個人代碼片
  1. $ sudo ln -s /srv/openerp/server/config/uwsgi-openerp.ini /etc/uwsgi/apps-enabled/openerp.ini  
  2. $ 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」的註釋去掉,若是有的話:)。

  下面配置一下:

[plain]  view plain  copy
 
  在CODE上查看代碼片派生到個人代碼片
  1. $ sudo chown -R www-data:www-data /srv/openerp  
  2. $ sudo su www-data -s /bin/bash  
  3. ; 進入www-data用戶環境  
  4. $ cd /srv/openerp/openobject-server/  
  5. ; $ source ../env/bin/activate 在虛擬環境下須要  
  6. $ ./openerp-server -c openerp.conf -d openerp_test -u all --stop-after-init  
  7. ; 這是把配置信息寫入OpenERP,若是運行中有紅色的ERROR提示,就說明失敗了,須要再檢查。  
  8. ; 配置完退出www-data用戶環境,ctrl-D或者  
  9. $ exit  

  最後重起服務

[plain]  view plain  copy
 
  在CODE上查看代碼片派生到個人代碼片
    1. $ sudo service uwsgi restart 
相關文章
相關標籤/搜索