在CentOS 7服務(wù)器下安裝和配置Odoo 13

在本文中,我們將講述如何在CentOS7服務(wù)器下的Python虛擬環(huán)境中安裝配置Odoo13,源碼從Github的存儲(chǔ)庫(kù)中下載,并使用Nginx作為反向代理。

SSH登錄服務(wù)器和相關(guān)的準(zhǔn)備

通過SSHroot身份登錄到服務(wù)器:

ssh root@your_server_ip

如需檢查計(jì)算機(jī)上安裝的CentOS的版本,可以運(yùn)行以下命令:

cat /etc/redhat-release

在本案例中,我們所得到的結(jié)果如下

CentOS Linux release 7.7.1908 (Core)

CentOS 7系統(tǒng)的升級(jí)

運(yùn)行以下命令更新服務(wù)器:

yum update

更新服務(wù)器后,輸入以下內(nèi)容啟用EPEL 資源庫(kù) :

yum install epel-release

Python3.7的安裝

需要切換到root用戶:

sudo root

安裝相關(guān)編譯工具

yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
yum install libffi-devel -y

下載并解壓安裝包

cd /opt # 待安裝的目錄
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
tar -xvJf  Python-3.7.0.tar.xz

創(chuàng)建編譯安裝的目錄

mkdir /usr/local/python3

編譯并安裝

cd Python-3.7.0
./configure --prefix=/usr/local/python3
make && make install

創(chuàng)建相關(guān)的軟鏈接

ln -s /usr/local/python3/bin/python3 /usr/local/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/local/bin/pip3

驗(yàn)證python和pip的版本

python3 -V
pip3 -V

會(huì)得到以下結(jié)果:

Python 3.7.0
pip 10.0.1 from /usr/local/python3/lib/python3.7/site-packages/pip (python 3.7)

odoo相關(guān)依賴的安裝

yum install git gcc wget nodejs-less libxslt-devel bzip2-devel openldap-devel libjpeg-devel freetype-devel

創(chuàng)建Odoo的用戶

創(chuàng)建一個(gè)用于運(yùn)行Odoo名為oodo13的系統(tǒng)用戶,主目錄為/opt/odoo13

sudo useradd -m -d /opt/odoo13 -U -r -s /bin/bash odoo13

*注:

  • 這里可以隨意命名用戶,但不要忘記創(chuàng)建一個(gè)具有相同名稱的PostgreSQL用戶。

安裝和配置PostgreSQL

首先列舉出可用的軟件包:

yum list postgresql*

在本教程中,我們選用PostgreSQL 9.6版本。 若用戶沒有此版本的列表,可以使用以下命令從Postgres Yum存儲(chǔ)庫(kù)中手動(dòng)添加:

yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-redhat96-9.6-3.noarch.rpm -y

執(zhí)行以下命令安裝PostgreSQL 9.6:

yum install postgresql96 postgresql96-server postgresql96-contrib postgresql96-libs -y

初始化數(shù)據(jù)庫(kù):

/usr/pgsql-9.6/bin/postgresql96-setup initdb

開啟 PostgreSQL服務(wù):

systemctl start postgresql-9.6.service

可以配置PostgreSQL服務(wù)開機(jī)自啟:

systemctl enable postgresql-9.6.service

最后,創(chuàng)建一個(gè)PostgreSQL用戶,需要和已經(jīng)為Odoo創(chuàng)建的用戶(本例中用戶名為odoo13)使用相同的名稱。

sudo su - postgres -c "createuser -s odoo13"

Wkhtmltopdf的安裝

wkhtmltopdf軟件包是Odoo用來將PDF格式的HTML制成以便可以打印PDF報(bào)告的開源工具。 本案例中安裝0.12.5版本,該版本在CentOS 7官方存儲(chǔ)庫(kù)中不可用。 為了下載并安裝此版本,需要運(yùn)行以下命令:

cd /opt/
wget https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox-0.12.5-1.centos7.x86_64.rpm
yum localinstall wkhtmltox-0.12.5-1.centos7.x86_64.rpm

Odoo 13的安裝與配置

首先,需要更改為用戶“odoo13”:

su - odoo13

從Github的存儲(chǔ)庫(kù)中下載Odoo 13源代碼:

git clone https://www.github.com/odoo/odoo --depth 1 --branch 13.0 /opt/odoo13/odoo

下載完成后,為Odoo創(chuàng)建一個(gè)新的Python虛擬環(huán)境:

cd /opt/odoo13
python3 -m venv odoo13-venv

激活所創(chuàng)建的Python虛擬環(huán)境:

source odoo-venv/bin/activate

升級(jí)pip、setuptools,并安裝Wheel庫(kù):

pip install --upgrade pip
pip install --upgrade setuptools
pip3 install wheel

使用pip3安裝所有必需的Python模塊:

pip3 install -r odoo/requirements.txt

完成后,通過鍵入以下命令停用環(huán)境并退出:

deactivate && exit

我們將創(chuàng)建一個(gè)包含第三方插件新目錄,并將該目錄的所有者更改為odoo13:

mkdir /opt/odoo13/odoo13-custom-addons
chown odoo: /opt/odoo13/odoo13-custom-addons

修改數(shù)據(jù)庫(kù)連接的配置信息:

vi /var/lib/pgsql/9.6/data/pg_hba.conf

將數(shù)據(jù)庫(kù)訪問的配置信息修改如下:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 ident
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     postgres                                peer
#host    replication     postgres        127.0.0.1/32            ident
#host    replication     postgres        ::1/128                 iden

創(chuàng)建Odoo13的配置文件:

vi /etc/odoo13.conf

配置文件的內(nèi)容如下:

[options]
; This is the password that allows database operations:
admin_passwd = admin_password
db_host = False
db_port = False
db_user = odoo13
db_password = False
addons_path = /opt/odoo13/odoo/addons,/opt/odoo13/odoo13-custom-addons

*注:

  • 請(qǐng)記得使用自己的密碼更換admin_password的內(nèi)容。

創(chuàng)建系統(tǒng)單元文件并測(cè)試安裝

創(chuàng)建一個(gè)名為odoo13.service的服務(wù)單元文件:

sudo vi /etc/systemd/system/odoo13.service

系統(tǒng)單元文件的內(nèi)容如下:

[Unit]
Description=Odoo13
Requires=postgresql-9.6.service
After=network.target postgresql-9.6.service
[Service]
Type=simple
SyslogIdentifier=odoo13
PermissionsStartOnly=true
User=odoo13
Group=odoo13
ExecStart=/opt/odoo13/odoo13-venv/bin/python3 /opt/odoo13/odoo/odoo-bin -c /etc/odoo13.conf
StandardOutput=journal+console
[Install]
WantedBy=multi-user.target

然后重新加載守護(hù)程序,使之在systemd中創(chuàng)建的新單元:

systemctl daemon-reload

可以啟動(dòng)Odoo13的服務(wù):

systemctl start odoo13

可以查看Odoo13的服務(wù)狀態(tài):

systemctl status odoo13

得到啟動(dòng)的狀態(tài)如下

● odoo13.service - Odoo13
   Loaded: loaded (/etc/systemd/system/odoo13.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2019-11-19 15:21:40 CST; 2h 20min ago
 Main PID: 28867 (python3)
   CGroup: /system.slice/odoo13.service
           └─28867 /opt/odoo13/odoo13-venv/bin/python3 /opt/odoo13/odoo/odoo-bin -c /etc/odoo13.conf

如果沒有出現(xiàn)錯(cuò)誤,可以使用以下命令啟用Odoo13的服務(wù)開機(jī)自啟:

systemctl enable odoo13

要查看Odoo日志的消息,可以使用以下命令:

journalctl -u odoo13

開啟數(shù)據(jù)庫(kù)遠(yuǎn)程訪問

進(jìn)入修改文件目錄:

cd /var/lib/pgsql/9.6/data/

編譯配置文件:

vi pg_hba.conf

修改文件末尾處 # IPv4 local connections的內(nèi)容:

host    all             all             127.0.0.1/32            ident   # 在本行下面添加
host    all             all             0.0.0.0/0               trust   # 添加內(nèi)容

編譯配置文件:

vi postgresql.conf

修改Connection Settings為以下內(nèi)容:

# - Connection Settings -
listen_addresses = '*'          # what IP address(es) to listen on;
                                        # comma-separated list of addresses;
                                        # defaults to 'localhost'; use '*' for all
                                        # (change requires restart)

輸入以下指令進(jìn)入數(shù)據(jù)庫(kù):

su – postgres

進(jìn)入數(shù)據(jù)庫(kù)后,輸入以下指令:

-bash-4.2$ psql
psql (9.6.12)
Type "help" for help.

修改“odoo13”用戶的初始密碼:

postgres=# alter user odoo with password 'odoo';

修改密碼后,退出數(shù)據(jù)庫(kù):

postgres=# \q
-bash-4.2$ exit
Logout

測(cè)試安裝Odoo13

打開瀏覽器并輸入:http://<your_domain_or_IP_address>:8069,成功安裝則會(huì)進(jìn)入以下界面:

O13.jpg

*注:

  • 創(chuàng)建數(shù)據(jù)庫(kù)時(shí)所輸入的Master Password即為配置文件中所寫的admin_passwd

為Odoo13配置Nginx反向代理

執(zhí)行以下命令從Nginx官網(wǎng)中獲取Centos的源地址:

sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

通過yum search nginx查看是否添加源成功,如果成功則執(zhí)行下列命令安裝Nginx:

sudo yum install -y nginx

可以啟動(dòng)Nginx的服務(wù):

sudo systemctl start nginx.service

如果沒有出現(xiàn)錯(cuò)誤,可以使用以下命令啟用Nginx的服務(wù)開機(jī)自啟:

sudo systemctl enable nginx.service

修改Nginx的配置文件:

vi /usr/local/nginx/conf/nginx.conf

配置成以下內(nèi)容:

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;


upstream direction{
        server 127.0.0.1:8069; # 反向服務(wù)地址

}

    server {
        listen       80;
        server_name  _; # set all 

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
        proxy_pass http://direction; # 代理轉(zhuǎn)發(fā)
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

完成后保存文件并重新啟動(dòng)Nginx服務(wù):

sudo systemctl restart nginx.service
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容