【轉】基於Ubuntu Server16.04 安裝Odoo11


使用 非 root 用戶 進行下面的測試:

本文使用 有sudo 權限的 odoo 用戶進行測試()
如果是 阿里雲,可以先創建 odoo 用戶

sudo adduser odoo 

2:給root 權限:

sudo vi /etc/sudoers 

修改文件如下:

# User privilege specification root ALL=(ALL:ALL) ALL odoo ALL=(ALL:ALL) ALL 

保存退出,odoo用戶就擁有了root權限。

2: 切換 用戶: su odoo
注:這里我在測試時,直接遠程Putty 用 odoo用戶登錄了.

3: 進入 odoo的 家目錄 cd ~

第一步: 更新安裝依賴並克隆Odoo源碼

sudo apt update #注:16.04下只需要輸入"sudo apt update" ,-get可以省略 sudo apt upgrade #有個地方會讓您確認是否保留當前版本 sudo apt install git # 注:16.04.3自帶了git,無需再安裝 

注:更新完畢后,最好重啟下 服務器。

sudo reboot 

:安裝nodejs:
(ubuntu14.04之后的版本)

sudo apt-get install -y npm sudo ln -s /usr/bin/nodejs /usr/bin/node sudo npm install -g less # 安裝時注意成功安裝的提示 

下載odoo源碼 ,
下面的命令會下載到odoo11的 子目錄內:

git clone https://github.com/odoo/odoo.git odoo11 -b 11.0 --depth=1 

如果是從別的電腦復制過來的可能會需要把源碼的 所有者 改為odoo 用戶:

sudo chown -R odoo odoo11 

可以用ls -all 看 目錄所屬的 用戶及組

第二步:安裝Odoo系統所需的依賴:

sudo apt-get install -y python3-pip 
sudo pip3 install Babel decorator docutils ebaysdk feedparser gevent greenlet html2text Jinja2 lxml Mako MarkupSafe mock num2words ofxparse passlib Pillow psutil psycogreen psycopg2 pydot pyparsing PyPDF2 pyserial python-dateutil python-openid pytz pyusb PyYAML qrcode reportlab requests six suds-jurko vatnumber vobject Werkzeug XlsxWriter xlwt xlrd 

注:安裝這些依賴時,注意看下載速度,有些時間段會比較慢.有時候還會無法訪問到服務器,注意成功安裝后的提示. 不行換個時間段安裝 就會發現快很多(比如早上8點前)

安裝成功后提示:Successfully installed

安裝PostgreSQL以及數據庫用戶:

sudo apt-get install -y postgresql 

在數據庫創建 odoo這個用戶():

sudo su - postgres

createuser --createdb --username postgres --no-createrole --no-superuser --pwprompt odoo Enter password for new role: ***** Enter it again:***** exit 

進入odoo源碼目錄運行odoo 並生成配置文件 (也可以自己創建一個簡單的配置文件)

cd ~/odoo11 ./odoo-bin -s 

從啟動日志可以看到,會在當前用戶根目錄 生成 配置文件 .odoorc
Using configuration file at /home/odoo/.odoorc

再開一個終端窗口,使用ps aux |grep odoo 可以看 odoo的使用情況,比如:

odoo 1010 0.9 1.6 421168 66852 pts/0 Sl+ 12:22 0:00 python3 ./odoo-bin -c /etc/odoo/odoo.conf

應該是用python3 啟動的 odoo.

netstat -ant 可以看端口使用的情況 8069是odoo,22用於ssh,5432用於postgresl :

tcp 0 0 0.0.0.0:8069 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 

如果不用隨着系統啟動啟動odoo,到這里odoo已經可以手動啟動了.
如果希望隨着系統自動啟動,請繼續看下去.

注:還可以用python3.5 odoo-bin -s 試試ps aux | grep odoo里面看到是這樣的:
odoo 1058 2.7 1.6 422340 66012 pts/0 Sl+ 12:25 0:00 python3.5 odoo-bin
用python3 和 python3.5 啟動的,好像crtl + c 關不干凈

ctrl + c 應該可以終止,不過有時候好像會停不干凈,需要reboot系統.

第三步:設置配置文件

sudo mkdir /etc/odoo sudo cp /home/odoo/.odoorc /etc/odoo/odoo.conf sudo chown -R odoo /etc/odoo 

我們還需要創建存儲Odoo日志的目錄,通常位於/var/log內:

sudo mkdir /var/log/odoo sudo chown odoo /var/log/odoo 

現在我們需要確認配置文件中一些重要的參數。

sudo vi /etc/odoo/odoo.conf 

下面是2個建議增加的值 :

[options] logfile = /var/log/odoo/odoo.log logrotate = True 

讓我們來看下配置文件中的一些解釋:
● addons_path 使用,逗號分隔的擴展路徑,會在路徑中尋找模塊,從左至右閱讀,最左側擁有最高的優先級。
● admin_passwd 是master主控密碼,用於訪問web客戶端數據庫管理。建議設置一個足夠強的密碼,設置為False能讓此功能失效。
● db_user 數據庫實例在服務器啟動序列期間進行初始化。
● dbfilter 用於篩選可訪問的數據庫,它是Pythoninterpreted正則表達式. 用於不讓用戶選擇數據庫,及未驗證的URLs正常工作,它應該以^dbname$設置, 例如 dbfilter=^odoo-prod$。 它支持%h和%d占位符, 用來HTTP請求的主機名和子域名.
● logfile Odoo服務日志寫入的地方。系統服務的日志通常位於/var/log. 留空,或者設為False,日志則會以標准方式輸出。
● logrotate = True 按天存放日志
● proxy_mode 當使用反向代理時,應當設為True。
● without_demo 在生產環境中應設為True,這樣新的數據庫中就不會有演示數據。
● workers 值為啟用的處理器數量。
● xmlrpc_port 服務監聽的端口號。默認使用8069
下面的參數也會很有幫助:
● data_dir 會話數據和附件存儲的位置,記得備份它。
● xmlrpc-interface 設置監聽的地址。默認值會監聽所有端口 0.0.0.0, 在使用反向代理時,可以設置為127.0.0.1 目的是只對本地請求響應。

通過-c參數運行服務,我們可以檢查配置的效果:

./odoo-bin -c /etc/odoo/odoo.conf

注意:因為設置了日志文件,所以不會跳出日志,
ctrl + c 應該可以終止,不過有時候好像會停不干凈,需要reboot系統.

要看 日志的話,可以 再開一個終端 ,用odoo 用戶,使用:

tail -f /var/log/odoo/odoo.log 查看 日志。 

Odoo服務 啟動后 試試看在界面 創建 數據庫

8:安裝中文字體:
sudo apt-get install ttf-wqy-zenhei -y sudo apt-get install ttf-wqy-microhei -y 
9.安裝報表所需的wkhtmltopdf
wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.2.1/wkhtmltox-0.12.2.1_linux-trusty-amd64.deb sudo dpkg -i wkhtmltox-0.12.2.1_linux-trusty-amd64.deb # 會提示要安裝xfonts-75dpi 等,這時候用apt-get -f install會安裝這2個依賴 sudo ln -s /usr/local/bin/wkhtmltopdf /usr/bin sudo ln -s /usr/local/bin/wkhtmltoimage /usr/bin 

第四步:創建 /lib/systemd/system/odoo.service 文件,讓odoo隨着系統自動啟動

由於16.04 使用了systemd作為init,因此把Odoo配置為服務,稍有不同。
要檢查您的系統是否使用systemd,運行下面的命令:
$ man init

這會打開當前使用的init系統的文檔,您能檢查到底使用的是哪種。
如果您的服務器使用的是systemd。
使用systemd init系統。要為系統增加新的服務。 創建 /lib/systemd/system/odoo.service 文件:

sudo vi /lib/systemd/system/odoo.service : 
[Unit] Description=Odoo After=postgresql.service [Service] Type=simple User=odoo Group=odoo ExecStart=/home/odoo/odoo11/odoo-bin -c /etc/odoo/odoo.conf [Install] WantedBy=multi-user.target 

我們需要注冊新的服務:

sudo systemctl enable odoo.service 

要開啟這個新服務使用下面的命令:

sudo systemctl start odoo 

檢查它的狀態:

sudo systemctl status odoo 

會看到下面這樣,其中 Active active(running)表示正確運行,而且我們可以看到是運行在python3下的

● odoo.service - Odoo
   Loaded: loaded (/lib/systemd/system/odoo.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2017-10-15 12:46:54 CST; 6s ago Main PID: 930 (python3) CGroup: /system.slice/odoo.service └─930 python3 /home/odoo/odoo11/odoo-bin -c /etc/odoo/odoo.conf Oct 15 12:46:54 iZuf6jevtfmojh35fpwxb5Z systemd[1]: Started Odoo. 

最后,如果您希望停止它,使用下面的命令:

sudo systemctl stop odoo 

也可以用 service odoo start 和 service odoo stop 來開啟停止服務。
現在可以確認我們的Odoo實例啟動了,並能響應請求。
如果Odoo正常運行,我們可以在日志文件中獲得信息。我們可以檢查Odoo是否響應HTTP請求:

curl http://localhost:8069 

要檢查日志文件,我們可以使用:

sudo less /var/log/odoo/odoo.log 

您還可以使用tail -f:

sudo tail -f /var/log/odoo/odoo.log


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM