由於自己並非資訊相關科系畢業,基礎知識與技能相當貧乏,透過此次學習Odoo系統基礎建置與開發,我才初次接觸了如何在Windows系統透過VM來使用Linux系統,以及終端機指令的操作,來一步一步建置Odoo系統,包括所需的Python套件、PostgreSQL資料庫系統、pgAdmin資料庫管理工具、Odoo系統資料夾結構、Odoo系統設定文件、PyCharm整合開發環境、系統更新與維護方式等等,需要了解與學習的技術非常非常的多,自己也僅學習使用了一小部分的工具與技巧而已。
系統開發由於牽涉到許多資料夾結構與不同文件如csv、py、xml等,因此未來使用Git做為示範檔案存放空間的需求或許也將越來越迫切,現階段仍純粹在網誌整理、發布文章;本系列一共六篇學習筆記,為花費大量時間綜合整理Peter Wu老師課堂教學、《Odoo快速入門與實戰》簡體書,以及零散的網路教學文章而得,前五篇的學習筆記完全操作使用Odoo社群版,第六篇的學習筆記則加入「康虎雲報表」的安裝與教學,可至「康虎軟件工作室」官方網站下載相關軟體,配合學習筆記的說明來安裝使用。
自學Odoo系統的建置開發相當不容易:在台灣,Odoo系統的知名度與普及性遠不如SAP、鼎新、Oracle等大廠,資訊廠商與開發人員的數量也相對稀少,就連參考書籍也完全沒有繁體中文的版本,僅有少數英文書與簡體書可以購買(而且這些書都寫得很糟),加上這幾年Odoo系統的快速發展,不同的版本之間有不小的變動,學會的技術可能過幾年就完全不能用了…。綜合上述許多原因,即便本系列學習筆記已經整理很清楚了,對於完全零經驗的開發者而言,相信仍舊難以閱讀、理解。
目前Odoo系統在歐美與中國大陸的資源、社群與討論,都比台灣頻繁、密集得多,想要入門Odoo系統的學習者建議還是需要老師來帶領,才有辦法掌握操作、管理、開發的各項眉眉角角。
l 建議使用Debian或Ubuntu操作系統,因為Odoo的開發團隊一直將Debian做為參考部屬平台,而且其SaaS應用也是基於Debian。
Odoo 12、PostgreSQL 11在終端機輸入指令安裝與設定
l 建議安裝Odoo雙位數版本。
l Step 1更新應用程式來源清單:
sudo apt-get update
sudo apt-get update
l Step 2安裝更新:
sudo apt-get -y upgrade
sudo apt-get -y upgrade
l Step 3.1安裝Odoo 12所需的套件:
sudo apt install git python3-pip build-essential wget python3-dev python3-venv python3-wheel libxslt-dev libzip-dev libldap2-dev libsasl2-dev python3-setuptools node-less
Step 3.2使用pip3安裝Python套件:
pip3 install Babel decorator docutils ebaysdk feedparser gevent greenlet html2text Jinja2 lxml Mako MarkupSafe mock num2words ofxparse passlib Pillow psutil psycogreen psycopg2-binary pydot pyparsing PyPDF2 pyserial python-dateutil python-openid pytz pyusb PyYAML qrcode reportlab requests six suds-jurko vatnumber vobject Werkzeug XlsxWriter xlwt xlrd
sudo apt install git python3-pip build-essential wget python3-dev python3-venv python3-wheel libxslt-dev libzip-dev libldap2-dev libsasl2-dev python3-setuptools node-less
Step 3.2使用pip3安裝Python套件:
pip3 install Babel decorator docutils ebaysdk feedparser gevent greenlet html2text Jinja2 lxml Mako MarkupSafe mock num2words ofxparse passlib Pillow psutil psycogreen psycopg2-binary pydot pyparsing PyPDF2 pyserial python-dateutil python-openid pytz pyusb PyYAML qrcode reportlab requests six suds-jurko vatnumber vobject Werkzeug XlsxWriter xlwt xlrd
l Step 4安裝Odoo 12所需的網頁工具:
sudo apt-get install -y npm
sudo ln -s /usr/bin/nodejs /usr/bin/node
sudo npm install -g less less-plugin-clean-css
sudo apt-get install node-less
sudo python3 -m pip install libsass
sudo apt-get install -y npm
sudo ln -s /usr/bin/nodejs /usr/bin/node
sudo npm install -g less less-plugin-clean-css
sudo apt-get install node-less
sudo python3 -m pip install libsass
l Step 5安裝PostgreSQL 11:
sudo apt-get install curl ca-certificates gnupg
curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
sudo apt-get update
sudo apt-get install postgresql-11 pgadmin4
sudo apt-get install curl ca-certificates gnupg
curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
sudo apt-get update
sudo apt-get install postgresql-11 pgadmin4
l Step 6建立Odoo 12使用者資料庫(ubuntu_user_name以timmy為例):
sudo su - postgres
cd
createuser -s odoo
createuser -s timmy
exit
sudo su - postgres
cd
createuser -s odoo
createuser -s timmy
exit
l Step 7以odoo為例,建立使用者和群組:
sudo adduser --system --home=/opt/odoo --group odoo
sudo adduser --system --home=/opt/odoo --group odoo
l Step 8安裝Gdata:
cd /opt/odoo
sudo wget https://pypi.python.org/packages/a8/70/bd554151443fe9e89d9a934a7891aaffc63b9cb5c7d608972919a002c03c/gdata-2.0.18.tar.gz
sudo tar zxvf gdata-2.0.18.tar.gz
sudo chown -R odoo: gdata-2.0.18
sudo -s
cd gdata-2.0.18/
python setup.py install
exit
cd /opt/odoo
sudo wget https://pypi.python.org/packages/a8/70/bd554151443fe9e89d9a934a7891aaffc63b9cb5c7d608972919a002c03c/gdata-2.0.18.tar.gz
sudo tar zxvf gdata-2.0.18.tar.gz
sudo chown -R odoo: gdata-2.0.18
sudo -s
cd gdata-2.0.18/
python setup.py install
exit
l Step 9從GitHub下載Odoo 12:
cd /opt/odoo
sudo su - odoo -s /bin/bash
git clone https://www.github.com/odoo/odoo --depth 1 --branch 12.0 --single-branch
exit
cd /opt/odoo
sudo su - odoo -s /bin/bash
git clone https://www.github.com/odoo/odoo --depth 1 --branch 12.0 --single-branch
exit
l Step 10建立Odoo 12的Log檔:
sudo mkdir /var/log/odoo
sudo chown -R odoo:root /var/log/odoo
sudo mkdir /var/log/odoo
sudo chown -R odoo:root /var/log/odoo
l Step 11建立custom資料夾存放客製化開發的模組,並檢視/opt/odoo/odoo路徑的所有目錄和檔案權限是否皆為odoo:
cd /opt/odoo/odoo
sudo mkdir custom
sudo chown -R odoo.odoo custom
ls -l
cd /opt/odoo/odoo
sudo mkdir custom
sudo chown -R odoo.odoo custom
ls -l
l Step 12.1編輯Odoo 12設定檔:
sudo apt-get install vim
sudo vim /etc/odoo.conf
Step 12.2加入以下指令,完成後輸入:wq離開編輯畫面:
[options]
; This is the password that allows database operations:
; admin_passwd = admin
db_host = False
db_port = False
db_user = odoo
db_password = False
; logfile = /var/log/odoo/odoo-server.log
addons_path = /opt/odoo/odoo/addons,/opt/odoo/odoo/custom
Step 12.3開啟Odoo 12設定檔權限:
sudo chown odoo: /etc/odoo.conf
sudo apt-get install vim
sudo vim /etc/odoo.conf
Step 12.2加入以下指令,完成後輸入:wq離開編輯畫面:
[options]
; This is the password that allows database operations:
; admin_passwd = admin
db_host = False
db_port = False
db_user = odoo
db_password = False
; logfile = /var/log/odoo/odoo-server.log
addons_path = /opt/odoo/odoo/addons,/opt/odoo/odoo/custom
Step 12.3開啟Odoo 12設定檔權限:
sudo chown odoo: /etc/odoo.conf
l Step 13安裝WKHTMLTOPDF:
cd /opt/odoo
sudo wget https://builds.wkhtmltopdf.org/0.12.1.3/wkhtmltox_0.12.1.3-1~bionic_amd64.deb
sudo apt install ./wkhtmltox_0.12.1.3-1~bionic_amd64.deb
sudo cp /usr/local/bin/wkhtmltoimage /usr/bin/wkhtmltoimage
sudo cp /usr/local/bin/wkhtmltopdf /usr/bin/wkhtmltopdf
cd /opt/odoo
sudo wget https://builds.wkhtmltopdf.org/0.12.1.3/wkhtmltox_0.12.1.3-1~bionic_amd64.deb
sudo apt install ./wkhtmltox_0.12.1.3-1~bionic_amd64.deb
sudo cp /usr/local/bin/wkhtmltoimage /usr/bin/wkhtmltoimage
sudo cp /usr/local/bin/wkhtmltopdf /usr/bin/wkhtmltopdf
l Step 14.1開啟Odoo 12伺服器,若成功執行,畫面將顯示如下圖:
cd /opt/odoo/odoo
./odoo-bin
Step 14.2在瀏覽器瀏覽Odoo 12的頁面:
http://localhost:8069/
Step 14.3關閉Odoo 12伺服器:
按ctrl + c鍵
cd /opt/odoo/odoo
./odoo-bin
Step 14.2在瀏覽器瀏覽Odoo 12的頁面:
http://localhost:8069/
Step 14.3關閉Odoo 12伺服器:
按ctrl + c鍵
PostgreSQL 11在終端機輸入指令設定
l Step 1.1修改PostgreSQL 11設定:
cd /etc/postgresql/11/main
sudo vim pg_hba.conf
Step 1.2修改以下指令,按i鍵以插入模式編輯,原peer改為trust如下,按esc鍵退出模式,完成後輸入:wq離開編輯畫面:
local all postgres trust
local all all trust
Step 1.3繼續修改PostgreSQL 11設定:
sudo vim postgresql.conf
Step 1.4修改以下指令,按i鍵以插入模式編輯,取消標註並將原'localhost'改為'*'如下,按esc鍵退出模式,完成後輸入:wq離開編輯畫面:
listen_addresses = '*'
cd /etc/postgresql/11/main
sudo vim pg_hba.conf
Step 1.2修改以下指令,按i鍵以插入模式編輯,原peer改為trust如下,按esc鍵退出模式,完成後輸入:wq離開編輯畫面:
local all postgres trust
local all all trust
Step 1.3繼續修改PostgreSQL 11設定:
sudo vim postgresql.conf
Step 1.4修改以下指令,按i鍵以插入模式編輯,取消標註並將原'localhost'改為'*'如下,按esc鍵退出模式,完成後輸入:wq離開編輯畫面:
listen_addresses = '*'
l Step 2設定odoo使用者密碼以利後續設定pgAdmin
4:
sudo -u postgres psql
ALTER USER odoo WITH ENCRYPTED PASSWORD 'odoo';
\q
sudo -u postgres psql
ALTER USER odoo WITH ENCRYPTED PASSWORD 'odoo';
\q
l Step 3重新啟動:
sudo /etc/init.d/postgresql restart
sudo /etc/init.d/postgresql restart
pgAdmin 4設定
l 開啟pgAdmin 4,再點選Add New Server,設定完成後點選Save:
點選General,Name設定為odoo12
點選Connection,Host name/address設定為localhost
Username設定為odoo
Password設定為odoo
點選General,Name設定為odoo12
點選Connection,Host name/address設定為localhost
Username設定為odoo
Password設定為odoo
PyCharm在終端機輸入指令安裝與設定
l 在終端機輸入指令安裝PyCharm:
sudo snap install pycharm-community --classic
sudo snap install pycharm-community --classic
l 在終端機開啟整個工作目錄(Working directory)的權限:
sudo chmod -R 777 /opt/odoo/odoo
sudo chmod -R 777 /opt/odoo/odoo
l 開啟Pycharm,再點選Create New Project,設定完成後點選Create並Yes:
Location設定為/opt/odoo/odoo
Base interpreter設定為/usr/bin/python3.6
Location設定為/opt/odoo/odoo
Base interpreter設定為/usr/bin/python3.6
l 點選Run > Edit Configurations... > + > Python,設定完成後點選OK:
Name設定為odoo12
Script path設定為/opt/odoo/odoo/odoo-bin
Parameters設定為-c /etc/odoo.conf
Python interpreter設定為Python 3.6
Working directory設定為/opt/odoo/odoo
Name設定為odoo12
Script path設定為/opt/odoo/odoo/odoo-bin
Parameters設定為-c /etc/odoo.conf
Python interpreter設定為Python 3.6
Working directory設定為/opt/odoo/odoo
l Google搜尋pycharm odoo template,或直接到https://github.com/mohamedmagdy/odoo-pycharm-templates下載setting.jar,點選File > Import Setting...,選擇setting.jar並點選OK,再點選OK匯入Live templates (schemes),此時PyCharm會關閉並重新啟動。
l 點選File > Settings... > Editor > Code Style > File and Code
Templates > Python Script,Enable Live
Templates打勾,加入以下文字,設定完成後點選OK:
# -*- coding: utf-8 -*-
# Author: Timmy Nueh
# -*- coding: utf-8 -*-
# Author: Timmy Nueh
l 點選Run > Run 'odoo12',若成功執行,畫面將顯示如下圖,在瀏覽器輸入localhost:8069才能成功瀏覽Odoo 12的頁面,之後可由左下方綠色與紅色按鈕開啟與關閉。
Sublime Text在終端機輸入指令安裝
l 參考官方(https://www.sublimetext.com/docs/3/linux_repositories.html)指示,在終端機輸入指令安裝Sublime Text:
wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add -
sudo apt-get install apt-transport-https
echo "deb https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list
sudo apt-get update
sudo apt-get install sublime-text
wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add -
sudo apt-get install apt-transport-https
echo "deb https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list
sudo apt-get update
sudo apt-get install sublime-text
補充-從別台電腦接收檔案的技巧
l Step 1.1設定網路:
sudo apt install net-tools
Step 1.2輸入ifconfig指令,於此例中,顯示介面名稱為enp0s3:
ifconfig
cd /etc/network
sudo vim interfaces
Step 1.3加入以下指令,按i鍵以插入模式編輯,加入後顯示如下,按esc鍵退出模式,完成後輸入:wq離開編輯畫面:
auto lo
iface lo inet loopback
auto enp0s3
iface enp0s3 inet dhcp
sudo apt install net-tools
Step 1.2輸入ifconfig指令,於此例中,顯示介面名稱為enp0s3:
ifconfig
cd /etc/network
sudo vim interfaces
Step 1.3加入以下指令,按i鍵以插入模式編輯,加入後顯示如下,按esc鍵退出模式,完成後輸入:wq離開編輯畫面:
auto lo
iface lo inet loopback
auto enp0s3
iface enp0s3 inet dhcp
l Step 2壓縮檔案,在想要產生壓縮檔案的路徑下輸入:sudo tar cvf FileName.tar
DirName
sudo tar cvf openacademy.tar openacademy
sudo tar cvf openacademy.tar openacademy
l Step 3接收別台電腦的檔案,輸入:scp 管理者帳號@IP位址:檔案位置 存放檔案的路徑:
scp odoo@192.168.31.20:/Users/odoo/Desktop/openacademy.tar /opt/odoo/odoo/tmp
scp odoo@192.168.31.20:/Users/odoo/Desktop/openacademy.tar /opt/odoo/odoo/tmp
l Step 4解壓縮檔案,在想要解壓縮檔案的路徑下輸入:sudo tar xvf DirName/FileName.tar:
sudo tar xvf /opt/odoo/odoo/tmp/openacademy.tar
sudo tar xvf /opt/odoo/odoo/tmp/openacademy.tar
補充-Odoo Server正式機連線操作
l Step 1在終端機輸入指令登入Odoo Server正式機:
ssh 使用者帳號@伺服器IP
ssh 使用者帳號@伺服器IP
l Step 2登入之後,在終端機輸入指令開關Odoo Server正式機:
sudo /etc/init.d/odoo-server start
sudo /etc/init.d/odoo-server stop
sudo /etc/init.d/odoo-server restart
sudo /etc/init.d/odoo-server start
sudo /etc/init.d/odoo-server stop
sudo /etc/init.d/odoo-server restart
l Step 3在終端機輸入指令登出Odoo Server正式機:
exit
exit
沒有留言:
張貼留言