中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在tinycolinux上編譯odoo8

發布時間:2021-07-27 16:08:24 來源:億速云 閱讀:99 作者:chen 欄目:大數據

本篇內容介紹了“如何在tinycolinux上編譯odoo8”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

odoo采用python,要談到語言的優異對比足于掀起大論戰了,我不重復那些聚焦語言內部如何pythonic的老話題,只講幾條外部特征:

1,C系和原生程序,是基本所有現實中可見系統實現的基石,但C系不一定就是最好的,都是先用起來的實用主義的產品,而python,就是所有linux發布版事實上的腳本語言環境。

2,在語言選型上,雖然工程層面是提出越來越多的腳本語言來支持各種domain,但其實歷史上還是傾向直接一門豐富langtechs語言支持庫級表達的DSL,這也是為什么歷史上眾多語言很好地完成了某領域部分的事現實上在其它領域不好用,但還是會宣稱它自己是通用腳本語言一樣。比如php不被用于作非WEB開發,其它語言不常用于自然語言處或科學計算等等,python雖然也不夠通用,但事實上它的應用領域最通用。

3,在語言選型上,工程上是提倡越來越多的語言,但具體到人和學習者,我們一般傾向于只學二門語言一門C系必學(C or c++),另一門應用腳本語言,且這二種語言形成one host one guest的only two選型特征,根據2中提到的二種語言要面向DSL包納越來越多這些特征,lua雖然精微與C一樣重正交設計易與c as hosting交互但依然需要出現c系的面向對象等CPP多范型里面的需求場景,所以除去lua,c這種較專用,重基礎和偏門的,所以在應用上我們依然需要學習python和cpp這種多范型支持的,而python即是這種langtech level和liblevel都battery included語言。

python in onlytwo as guest for c series是種混合語言系統,業界已有混合語言的實作品,下面這些產品也有python界的比對物這里只是拿來作為例子:比如制造DSL支持領域邏輯+jit的terralang,比如compiled to lua的moonscript(它提出新語言免去了直接binding的需要),還比如cython,zephir這種僅是生成C模塊作為原語言模塊的“混合語言”系統(它沒有提出新語言)。

下面就讓我們來打造tinycolinux上的lnpp appstack結構(linux+nginx+python+postgresql),并安裝odoo8,注意這里我們只精簡安裝odoo的必要模塊和web相關模塊。

編譯lnpp的python+uswgi和postgresql

接《為tinycolinux創建應用和lnmp-源碼和toolchain》文,我們這次是編譯python,除了那文中gcc中需要的tinycorelinux的tcz,我們還需要openssl-1.0.0-dev.tcz(事實上python編譯不要它但是接下來pip要用到它),解壓安裝它,下載python src,我選擇的是Python-2.7.14rc1.tgz,解壓cd到src目錄我們這里是/home/tc/Python-2.7.14rc1,sudo ./configure --prefix=/usr/local/python(你可以加條 --enable-threads未來用python啟動uswgi多線程支持會用到),sudo make install

cd /usr/local/python/bin,下載pip,wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py ,然后sudo python get-pip.py安裝pip。接下來可以安裝uswgi了sudo pip install uswgi(會用到與nginx編譯時一樣的pcre-dev.tcz),運行uswgi,顯示安裝后的uswgi版本是,ctl+c退出它,下面第二部分我們會談到以正確詳細的參數運行它。

對于pgsql我下載的是postgresql-10.1.tar.gz,按處理python src的方法處理它,會要求用到readline,在sudo ./configure --prefix=/usr/local/pgsql --disable-redline中禁用。sudo make install 編譯完。然后在/usr/local/pgsql中創建一個data文件夾,右擊權限設置為7777 組root,用戶tc[1001]。這是因為pgsql默認實際上也不允許以root方式運行。

sudo -u tc /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data --encoding=UTF8創建默認系統數據庫base,然后啟動它sudo -u tc /usr/local/pgsql/bin/pg_ctl start -D /usr/local/pgsql/data(pg_ctl start也可是postgresql),此時tc用戶對于這個數據庫的密碼為空端口為5432, sudo -u tc /usr/local/pgsql/bin/psql base可連上管理,ctl+c退出管理,進入data目錄。修改二個conf文件使得可本地用navcat等工具管理否則會出現server closed the connection unexpectedly postgresql錯誤,首先在postgresql.conf 打開listenadress="*",然后在pg_hba.conf中加一條: host all all 10.0.2.2/32 trust(10.0.2.2是tinycolinux slirp模式下的host windows地址,你也可以改成0.0.0.0)。

為什么加--encoding呢。因為不這樣做稍后在安裝完odoo在base中建立odoo數據庫時會提示:new encoding (UTF8) is incompatible with the encoding of the template database (SQL_ASCII)

在lnpp中安裝精簡odoo,python模塊和配置uswgi和nginx參數

我們先安裝odoo再來處理python,這樣運行它時可以逐個通過pip安裝缺少的python模塊,將odoo8釋放到/usr/local/nginx/html,精簡/usr/local/nginx/html/odoo/addons安裝的所有模塊,僅保留以下:

account
account_voucher
analytic
auth_crypt
auth_signup
base_action_rule
base_import
base_setup
board
bus
calendar
contacts
decimal_precision
document
edi
email_template
fetchmail
gamification
google_account
google_drive
im_chat
im_livechat
knowledge
mail
marketing
note
pad
pad_project
payment
payment_paypal
payment_transfer
procurement
product
project
report
resource
sale
sales_team
share
web
website
website_blog
website_forum
website_forum_doc
website_livechat
website_mail
website_partner
website_payment
website_report
website_sale
web_calendar
web_diagram
web_gantt
web_graph
web_kanban
web_kanban_gauge
web_kanban_sparkline
web_tests
web_view_editor

下面我們來聯合配置啟動uwsgi和python,nginx,我們還希望像lnmp一樣,分別獨立啟動nginx,mysql和php-cgi(它就相當于python中的uwsgi),先啟動uswgi:

/usr/local/python/bin/uwsgi --socket :8000 --pythonpath /usr/local/nginx/html/odoo --wsgi-file /usr/local/nginx/html/odoo/openerp-wsgi.py

實際上它也有很多變體和縮略形式(你可以參照網上建立一個小例子代替openerp-wsgi.py中的內容來分別測試):

--socket=:8000 --master --uid=tc --gid=root --wsgi-file /usr/local/nginx/html/odoo/openerp-wsgi.py --daemonize=/usr/local/python/bin/uwsgi.log

--socket=:8000 --chdir=/usr/local/nginx/html/odoo --wsgi-file openerp-wsgi.py (以上chdir也可用pythonpath代替,此pythonpath非python里面的應用模塊尋找意義上的pythonmoudlepath)

--manage-script-name --mount /yourapplication=myapp:app

-s :8000 -w uwsgi-server:application -d somelogfile

(以上參數都可寫進一個ini,然后以uswgi指定ini的方式進行,但上面我們傾向于不使用uwsgi+ini文件的方式)

可以看到上面總有靜態配置的東西,要么地址要么模塊名要么類名,而lnmp中的php-cgi后面的參數是不與任何靜態地址掛鉤的,它就是一個全局服務器將語言服務轉化成cgi或uwsgi,所以我們得改動一下,這個改動叫“uswgi的動態模式”:

/usr/local/python/bin/uwsgi --socket=:8000 --master --daemonize=/usr/local/python/bin/uwsgi.log

nginx下正確配置以配合來自上面uwsgi的“動態模式”(可以看出與靜態模式下配置條目的相對應性):

include uwsgi_params;
uwsgi_param UWSGI_CHDIR /usr/local/nginx/html/odoo;
uwsgi_param UWSGI_MODULE uwsgi-server; (不需要.py)
uwsgi_param UWSGI_CALLABLE application;
uwsgi_pass 127.0.0.1:8000;

修改/usr/local/nginx/html/odoo下的swgi-openerp.py對應于下面的一些條目,(它相當于同cd目錄下./openerp-server -c ./openerp-server.conf,openerp-server.conf中的內容即類似下面修改的得到的配置文件):

db_host = 127.0.0.1
db_port = 5432
db_user = tc
db_password = 
pg_path = /usr/local/pgsql/bin
addons_path = /usr/local/nginx/html/odoo/addons,/usr/local/pgsql/data/addons/8.0 (不設置這個,會導致 http://xxx:/web/static.... full.css 404)
data_dir = /usr/local/pgsql/data

確定python所須模塊在最后進行,注釋掉uwsgi啟動時的daemonize項,查看啟動后的輸出,并一一sudo pip install 模塊名安裝,其中pillow和pychart特殊處理如下:

.......
sudo pip install Pillow==3.4.2 (不安裝這個版本會出現cant create space錯誤)
sudo pip install http://archive.ubuntu.com/ubuntu/pool/universe/p/python-pychart/python-pychart_1.39.orig.tar.gz
.....

上述lnpp全部成功啟動會自動在/usr/local/pgsql/data下生成filestor,addons/8.0等目錄,訪問localhost,成功!!

總結起來,我們需要在tinycolinux啟動時在/opt/bootlocal.sh中以如下命令分別啟動nginx,uswgi和

/usr/local/nginx/sbin/nginx
/usr/local/python/bin/uwsgi --socket=:8000 --master --uid=tc --gid=root --daemonize=/usr/local/python/bin/uwsgi.log 
sudo -u tc /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data

好了,進入odoo怎么應用和操作又是一種境地了,odoo所有的操作中,數據都有固定的視圖,一條博文和一個文件是一樣的,一個產品和一個電腦是一樣的,faint,我記得怎么進管理模式,忘了。

“如何在tinycolinux上編譯odoo8”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

雷波县| 定陶县| 宽甸| 凌海市| 东宁县| 平谷区| 彝良县| 荆州市| 阳城县| 珠海市| 客服| 赣榆县| 尼木县| 和龙市| 治多县| 金山区| 沐川县| 永川市| 六枝特区| 安国市| 怀仁县| 佛坪县| 焉耆| 长兴县| 宣城市| 廊坊市| 页游| 黔东| 巨鹿县| 钦州市| 瑞昌市| 普陀区| 奎屯市| 衡南县| 安平县| 靖远县| 汝城县| 河曲县| 湛江市| 咸阳市| 广平县|