在Ubuntu Server 14.04 LTS版上以git方式源碼安裝Odoo8.0

英文地址: http://www.theopensourcerer.com/2014/09/how-to-install-openerp-odoo-8-on-ubuntu-server-14-04-lts/
譯文地址: http://shine-it.net/index.php?topic=16623.msg29044#msg29044
轉載地址: http://jointd.com/?p=1998

2014年9月19日, Odoo官方發佈了Odoo8.0正式版本,這是一個全新的版本,整合了網站建設等多種功能。
在Linux類操作系統中, 安裝Odoo的常規辦法是從Odoo官方網站的下載庫http://nightly.openerp.com相應版本的目錄裏面下載一個.deb安裝包(用於Debian/Ubuntu類型的Linux系統)或者一個.rpm安裝包(用於Redhat/CentOS類型的Linux系統),並且運行安裝。但這種做法下,安裝的配置是按照Odoo官方的默認配置進行的,個性化設置空間小,有時候不方便管理。因此我們採取更手工化的源碼安裝方式,自己配置安裝所需的配置。
本文介紹在Ubuntu Server14.04版操作系統中通過Github以源代碼模式安裝Odoo的方法。這種做法的優點是:
當官方的源代碼升級時,或者有新的bug修正時,如果需要,我們可以在網絡連通的情況下僅僅用一個"git pull"命令就能更新本地的代碼。
請注意,未來在進行pull代碼的操作時,需要事先做好備份。有些情況下,Odoo的數據庫也需要更新。

第一步 建立服務器安裝Ubuntu Server 14.04

訪問Ubuntu官方網站服務器版頁面http://www.ubuntu.com/server下載安裝鏡像,服務器版目前已經沒有32位版本,只有64位版。或者從國內的網易源下載鏡像 :http://mirrors.163.com/ubuntu-releases/14.04/ubuntu-14.04-server-amd64.iso下載完成後將鏡像製成啓動光盤或者優盤,按照常規的方法將它安裝在電腦上,記好自己設置的用戶名和密碼。
本文以設定主機名爲odoo、用戶名爲dean爲例進行Ubuntu系統的安裝,下面各步驟中如果有的命令與主機名和用戶名相關,請讀者自行改成自己實際的主機名和用戶名。
在安裝進行到選擇預安裝的服務的步驟時,選中PostgreSQL,把Odoo所需的數據服務環境PostgreSQL數據庫一併裝好。
系統裝好重啓後用自己用戶名和密碼登錄進去,運行
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. psql –version  
命令查看版本,目前隨Ubuntu 14.04服務器版安裝的是PostgreSQL的9.3.5版本

下邊更新服務器的軟件源信息:
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. sudo apt-get update  
並且更新服務器的各個軟件包,自動查找依賴關係:
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. sudo apt-get dist-upgrade  
儘管並不總是必須的,但此時最好重啓下服務器,以使改變的內容更新。
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. sudo shutdown -r now  

第二步 創建一個系統用戶odoo,將來讓他擁有Odoo程序的權限並運行它


如果有其它未加載的磁盤,而且要安裝在其中:
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. sudo mkdir /opt
  2. sudo mount -t ext4 /dev/xvdb1 /opt
配置自動掛載:

首先使用命令 blkid 查看 分區的UUID

在文件 /etc/fstab 中加入如下配置

# /devdata was on /dev/sdb
UUID=<span style="font-family: Arial, Helvetica, sans-serif;">7016a5f8-30cd-41d7-9c62-3fdbd6b04f29</span><span style="font-family: Arial, Helvetica, sans-serif;"> </span><span style="font-family: Arial, Helvetica, sans-serif;">/opt ext4 defaults 0 0</span>



運行命令
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. sudo adduser --system --home=/opt/odoo --group odoo  
這裏添加的odoo用戶是一個系統用戶,它是用來擁有並運行各種後臺服務的一類用戶,而不是用來登錄進系統進行各種操作的個人用戶。在上述命令中指定並創建了odoo 用戶的"home", home目錄爲/opt/odoo,這裏就是我們將要把odoo程序代碼存放的位置。你可以自由選擇代碼存放的位置,但請注意下文中的一些配置文件裏面的內容是基於上述命令指定的目錄而定的,所以當讀者自行選擇代碼存放位置時,下文中的某些設置要自行修改。雖然系統用戶被禁止用於登錄,並且沒有shell,但是當我們需要以它的身份進行一些特定操作的時候,還是可以用su命令切換用戶:
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. sudo su - odoo -s /bin/bash  
這個su(Switch User)命令將把你目前的終端登錄切換到odoo用戶,並且使用/bin/bash這個shell。這命令運行後會自動把你當前所在的目錄切換到odoo用戶的home目錄/opt/odoo。當你以odoo用戶身份操作完畢後, 可以用
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. exit  
命令離開odoo用戶的shell,回到你登錄所用的用戶。

第三步 安裝和配置數據庫服務器PostgreSQL

如果你之前在安裝Ubuntu服務器過程中沒勾選一併安裝PostgreSQL,那麼可以現在安裝:
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. sudo apt-get install postgresql  
如果已經安裝過了則不必執行這個命令。
下面爲PostgreSQL數據庫添加並配置odoo用戶 :
首先切換到postgres用戶,它是PostgreSQL默認的初始用戶,以它的身份操作我們就有配置數據庫的權限:
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. sudo su - postgres  
然後以postgres的身份創建一個新的數據庫用戶odoo,odoo程序將以它的身份訪問postgreSQL數據庫,來創建和刪除數據庫文件。
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. createuser --createdb --username postgres --no-createrole --no-superuser --pwprompt odoo  
系統提示兩次輸入密碼:
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. Enter password for new role: ********  
  2. Enter it again: ********  
記住你這裏設置的密碼,後文中你會用到它。最後退出postgres用戶身份:
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. exit  

第四步 爲Ubuntu服務器安裝Python運行庫和wkhtmltopdf

Odoo8.0版本依賴的python運行庫與OpenERP7.0版本所依賴的有些不同。
運行命令
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. sudo apt-get install python-dateutil python-docutils python-feedparser python-gdata \  
  2. python-jinja2 python-ldap python-libxslt1 python-lxml python-mako python-mock python-openid \  
  3. python-psycopg2 python-psutil python-pybabel python-pychart python-pydot python-pyparsing \  
  4. python-reportlab python-simplejson python-tz python-unittest2 python-vatnumber python-vobject \  
  5. python-webdav python-werkzeug python-xlwt python-yaml python-zsi python-pyPdf \  
  6. python-decorator python-passlib python-requests  
 
Odoo8.0版改用wkhtmltopdf來輸出pdf,因此要下載wkhtmltopdf 並安裝:
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. wget http://sourceforge.net/projects/wkhtmltopdf/files/0.12.1/wkhtmltox-0.12.1_linux-trusty-amd64.deb  \
  2. (wget http://download.gna.org/wkhtmltopdf/0.12/0.12.2.1/wkhtmltox-0.12.2.1_linux-trusty-amd64.deb)
然後運行
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. sudo dpkg -i wkhtmltox-0.12.1_linux-trusty-amd64.deb  
進行安裝。
安裝完成後將可執行文件複製到 usr/bin 中
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. sudo cp /usr/local/bin/wkhtmltopdf /usr/bin/wkhtmltopdf  
更改所有者爲root用 戶,並增加可執行屬性
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. sudo chown root:root /usr/bin/wkhtmltopdf  
  2. sudo chmod +x /usr/bin/wkhtmltopdf  
測試一下,打印一個網頁到自己的home目錄:
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. wkhtmltopdf www.baidu.com ~/baidu.pdf  
如果顯示成功輸出了pdf,那麼表明wkhtmltopdf安裝成功。

安裝中文字體:
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. sudo apt-get install ttf-wqy-zenhei  
  2. sudo apt-get install ttf-wqy-microhei  
(Odoo中爲何不能加載這些字體?)
這裏安裝完了之後,所有Odoo8.0運行時依賴的項目都已安裝完成。

第五步 安裝Odoo服務器

先安裝git軟件
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. sudo apt-get install git  
切換到odoo用戶:
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. sudo su - odoo -s /bin/bash  
用git軟件從github網站的odoo8.0分支下載一套代碼(下邊的命令第一行末尾的 - 和第二行開頭的 b 之間沒有空格;命令最後一個單詞後面的一空格加一個點"."
是必須的,這個點表示"當前目錄",不是個句號):
(下載時發現不能保存到當前目錄,可以先下載至指定目錄再移動到該目錄)
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. git clone https://www.github.com/odoo/odoo --branch 8.0 --single-branch .  
或者用這個:
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. git clone -b 8.0 https://github.com/odoo/odoo.git .  
(有一百多兆東西要下載,根據你的網速,這裏會花上些時間)
下載完整的分支到當前odoo目錄:
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. git clone https://github.com/odoo/odoo.git .  
全下載好了之後 ,退出odoo用戶:
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. exit  

第六步 配置Odoo程序

Odoo默認的配置文件(/opt/odoo/debian/openerp-server.conf)包括基礎的設置內容,做一點小小改動就可以在我們的系統上很好地運行,這裏我們先把這個文件復
制到我們需要的位置/etc下:
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. sudo cp /opt/odoo/debian/openerp-server.conf /etc/odoo-server.conf  
更改它的所有權和許可:
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. sudo chown odoo: /etc/odoo-server.conf  
  2. sudo chmod 640 /etc/odoo-server.conf  
上述命令讓這個文件被odoo用戶和用戶組擁有,並且只有odoo用戶和root用戶可以讀取。
下面用文本編輯器編輯它,初學者建議使用Ubuntu自帶的nano編輯器, 以它爲例, 運行:
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. sudo nano /etc/odoo-server.conf  
然後做3處改動,
1.打開這個配置文件後,在文件頂部,找到
db_password = False
這一行,把等號後面的 False 改爲你第三步配置postgreSQL時設定的數據庫密碼。
2. 然後找到
addons_path = /usr/lib/python2.7/dist-packages/openerp/addons
這一行,改成
addons_path = /opt/odoo/addons
這樣odoo程序會到我們個性化安裝的opt/odoo/addons目錄裏面去讀取模塊。
3. 我們還要指定Odoo往哪裏寫它的日誌文件。在文件的末尾新加一行
logfile = /var/log/odoo/odoo-server.log
配置文件編輯好後,按Ctrl+O,然後回車覆蓋保存,然後Ctrl+X退出nano程序。
現在你可以試着啓動Odoo服務器,看它是否正常運行。
先切換到odoo用戶,
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. sudo su – odoo -s /bin/bash  
然後運行
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. /opt/odoo/openerp-server  
如果你得到的界面反饋是幾行字,告訴你"OpenERP is running and waiting for connections."那麼就OK了。(雖然版本升級了,但是在日誌裏面仍然把這程序叫OpenERP 而不是 Odoo)
如果有錯誤出現,你就要回頭找找看看問題出在哪。一切正常的話,按 Ctrl+C 來停止服務器,然後用
exit
命令離開odoo用戶,回到你自己登陸的shell。

第七步 安裝啓動腳本

啓動、停止odoo服務牽扯到許多模塊,需要多個步驟的操作,比較繁瑣,下邊我們安裝一個腳本,它將以批處理的方式處理這些步驟,我們只要運行這個腳本一次,它就能以正確的用戶身份批處理地運行odoo服務器的啓動和停止等動作。
odoo程序提供了一個現成的腳本,是/opt/odoo/server/install/openerp-server.init這個文件,但需要一點小改動——因爲我們不是按odoo的默認安裝方式裝的。
這裏有個修改好的腳本文件,可以下載使用:(下邊的命令第一行末尾的/和第二行開頭的o之間沒有空格)
wget http://www.theopensourcerer.com/wp-content/uploads/2014/09/odoo-server與配置文件類似,你得把下載到的這個腳本複製到/etc/init.d/並將其命名爲odoo-server:
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. sudo cp ~/odoo-server /etc/init.d/odoo-server  
然後把它改成可執行文件,由root用戶擁有:
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. sudo chmod 755 /etc/init.d/odoo-server  
  2. sudo chown root: /etc/init.d/odoo-server  
在第六步我們編輯的配置文件裏面指定了odoo 服務器的日誌文件存儲位置,現
在我們得創建那個目錄,這樣odoo服務器就能往裏面寫日誌了,同時我們還得讓這個位置能夠被odoo用戶讀寫:
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. sudo mkdir /var/log/odoo  
  2. sudo chown odoo:root /var/log/odoo  

第八步 測試服務器

要啓動Odoo服務器,輸入:
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. sudo /etc/init.d/odoo-server start  
現在你可以查看日誌文件,看服務器是否已經啓動
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. less /var/log/odoo/odoo-server.log  
(要退出less命令的查看界面,只需按一下q鍵)
如果啓動服務器過程中出現問題,你可以依據日誌文件的內容查找原因。
如果一切正常,現在就可以用網絡瀏覽器訪問odoo的web頁面,地址的格式爲:
http://Odoo服務器的IP或者域名:8069
例如Odoo服務器的IP是192.168.1.10,那麼在同一局域網的其它電腦上,打開網絡瀏覽器(由於odoo使用的是較新的HTML5標準,所以在Windows XP自帶的IE6上無法正常顯示,建議下載安裝個新版的Chrome或者Firefox瀏覽器),在地址欄輸入:
http://192.168.1.10:8069
就應該能看到Odoo的數據庫管理界面,因爲是全新安裝,一個帳套都沒建立過,所以默認會來到這個界面。
建議讀者此時修改Odoo系統的主密碼master password 並牢牢記住它,這個密碼是用來創建、複製、刪除、備份、恢復數據庫的,權力很大,最好設個強的密碼。默認
的主密碼是"admin",比較不安全。該密碼以明文方式寫在/etc/odoo-server.conf文件裏面。這也是我們爲什麼把這個文件設成只有odoo用戶和root用戶可以讀的原因。
當你在web界面上修改並且保存了新的主密碼。/etc/odoo-server.conf 這個文件會被覆蓋寫入 ,並且會多出一些選項。
下邊檢查odoo服務器是否可以被恰當地停止:
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. sudo /etc/init.d/odoo-server stop  
檢查下日誌文件,確定下服務已經停止,也可以用top命令查看Ubuntu服務器正在運行的進程表來確認。(退出top命令的查看界面也是按q鍵)

第九步 自動化Odoo的啓動和關閉

前面的步驟如果都運行正常的話,最後的步驟就是讓啓動腳本隨着Ubuntu服務器的開 、關機而自動啓動 、關閉Odoo服務。
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. sudo update-rc.d odoo-server defaults  
如果你喜歡的話,你現在就可以重啓動你的服務器,當你再登錄進來的時候,Odoo應該已經在運行了。如果你輸入
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. ps aux | grep odoo  
你將會看到像下面這樣的信息:
odoo 1491 0.1 10.6 207132 53596 ? Sl 22:23 0:02 python /opt/odoo/openerp-server -c /etc/odoo-server.conf
這顯示服務器正常運行,當然你也可以檢查日誌文件或者用網絡瀏覽器訪問的方式來驗證。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章