Odoo安装篇

        安装Odoo方式有好几种,已经有人将Odoo做成绿色安装版,使开发人员更专注于开发领域。但是我们着眼于能够将Odoo运用于生产环境中,所以我们还是使用最常规的方式,将Odoo安装在Ubuntu操作系统上。以下是Odoo主要依赖的环境和应用:

        1. Ubuntu 20.04

        2. Python 2.7及相关包,下载Odoo 10社区版

        3. Postgresql

        4. Nginx

        5. 配置Odoo随系统自启动,使用Nginx反向代理

        一、下载安装Ubuntu 20.04服务器版本:http://www.releases.ubuntu.com/20.04/ubuntu-20.04.2-live-server-amd64.iso 安装完成后,不忘先运行以下命令,升级系统。

$ sudo apt update

$ sudo apt upgrade

        二、安装Python 2.7及相关包

        Python 2.7现在已经不再被支持了,但我们为什么还要用它呢?Odoo10只能在Python 2.7上使用,况且Python 3和2的区别没有想像中这么大,最主要是我们在Odoo 10上修改了很多地方,无法顺利升级,尾大不掉,只能将就着用着吧。

        Unbuntu 20已经自带了Python 3,需要手动安装安装Python 2, 然后指定默认运行Python 2。

$ sudo apt install python2

$ cd /usr/bin && ls -l | grep python    

          看运行python时,指向2还是3,此时应该是3,重建软链接到Python 2        

$ sudo ln -s /usr/bin/python2 /usr/bin/python   

$ ls -l | grep python

        可通过如下方式安装Python 2的pip包管理器。

$ cd ~

$ curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py

$ sudo python get-pip.py

$ pip list 

      运行成功:

Odoo安装篇_第1张图片

        安装wkhtmltopdf:

$ curl https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.focal_amd64.deb --output wkhtml.deb
$ sudo apt install ./wkhtml.deb

        安装必需的Python包:1) 安装Python包之前,一些先决条件要先满足:

$ sudo apt install git build-essential wget python-dev python-wheel libxslt-dev libzip-dev libldap2-dev libsasl2-dev python-setuptools node-less 

        (可能有些包已经随Python一起安装成功了。)

        将Odoo 10文件从github克隆到本地:

$ sudo git clone https://www.github.com/odoo/odoo --depth 1 --branch 10.0 --single-brance ~/odoo/odoo_official

        2) 安装由github上的requirements.txt上指定包

$ cd ~/odoo/odoo_official/odoo && sudo pip install -r requirements.txt

        可能有些包无法正常安装,例如python-ladp,请运行sudo python -m pip install python-ldap,每次安装时,可能遇到的问题都不一致,实在无法一一列举,请大家在网上查找无法安装的原因。这里,我将所有安装的包给大家看看。

Odoo安装篇_第2张图片 

        三、安装Postgresql

$ sudo apt install postgresql postgresql-contrib

$ sudo su - postgres -c "createuser -s $USER"

        四、安装nginx

$ sudo apt install nginx

        五、配置Odoo

        如果一切顺利安装成功,可以尝试进入本地Odoo目录,运行以下命令:

$ ./odoo-bin --addons-path=addons

然后在浏览器上打开:server_ip:8069  将提示创建Odoo数据库和首个用户。

Odoo安装篇_第3张图片

将数据库和用户名信息填写完毕后,使用用户名和密码即可登录Odoo。

Odoo安装篇_第4张图片

        出现如此界面,恭喜,已经可以成功运行Odoo,但是这只是成功的一小步,还有几个关键步骤,Odoo就可以完美地运行在生产环境中了。 

$ cd /etc/nginx/site-enabled/ && sudo vim zherpraw

#odoo server

upstream odoo-zh {

server 127.0.0.1:8069;

}

upstream odoochat-zh {

server 127.0.0.1:8078;

}

server {

    listen      80;

    server_name zherpraw.zuh.cardolite.corp zherpraw.cardolite.com;

    rewrite     ^   https://zherpraw.cardolite.com$request_uri? permanent;

}

server {

#listen 80;

listen 443 ssl;

server_name zherpraw.zuh.cardolite.corp zherpraw.cardolite.com;

proxy_read_timeout 300000;

#proxy_connect_timeout 720s;

#proxy_send_timeout 720s;

proxy_connect_timeout 300000;

proxy_send_timeout 300000;

# Add Headers for odoo proxy mode

proxy_set_header X-Forwarded-Host $host;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header X-Forwarded-Proto $scheme;

proxy_set_header X-Real-IP $remote_addr;

# SSL parameters

ssl_certificate /etc/ssl/certs/www_xxx_renew.crt;

ssl_certificate_key /etc/ssl/private/star_xxx_com.key;

ssl on;

ssl_session_timeout 30m;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';

ssl_prefer_server_ciphers on;

# Error pages

error_page 503 /maintenance_on_zh.html;

location = /maintenance_on_zh.html {

   root /usr/local/var/www/;

}

# log

access_log /var/log/nginx/zh-access.log;

error_log /var/log/nginx/zh-error.log;

# Redirect requests to odoo backend server

location / {

   if (-f /usr/local/var/www/maintenance_on_zh.html) {

     return 503;

   }

   proxy_redirect off;

   proxy_pass http://odoo-zh;

}

location /longpolling {

     proxy_pass http://odoochat-zh;

}

# common gzip

gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;

gzip on;

}

        强烈推荐大家去申请一张合格的证书,不然经常弹出的警告框,真是让人心烦。以下是相关设置行。

ssl_certificate /etc/ssl/certs/www_xxx_renew.crt;

ssl_certificate_key /etc/ssl/private/star_xxx_com.key;

        大家也可以尝试运行 sudo nginx -t 看看是否有错误的参数。

        创建Odoo服务,随系统一起启动:

$ sudo vim /etc/odoo10.conf

[options]

addons_path = /home/ymlin/odoo/odoo_official/myaddons,/home/ymlin/odoo/odoo_official/odoo/addons

admin_passwd = xxxxxx

data_dir = /home/ymlin/odoo/odoo_official/local_data

db_host = 127.0.0.1

db_maxconn = 16

db_name = xxxxxx

db_user = ymlin

db_password = xxxxxx

db_port = False

xmlrpc = True

xmlrpc_interface =

xmlrpc_port = 8069

log_db = False

log_db_level = warning

log_handler = :INFO

log_level = info

logfile = /home/ymlin/odoo/odoo_official/log/odoo_zh.log

logrotate = False

longpolling_port = 8078

limit_memory_hard = 2684354560

limit_memory_soft = 2147483648

limit_request = 8192

limit_time_cpu = 600

limit_time_real = 1200

max_cron_threads = 1

workers = 5

proxy_mode = True

        敏感信息已屏蔽,以上设置是4G内存,可以允许30个用户同时登录的配置文件。

$ sudo vim /etc/systemd/system/odoo.service

[Unit]

Description=Odoo

Requires=postgresql.service

After=network.target postgresql.service

[Service]

Type=simple

SyslogIdentifier=ymlin

PermissionsStartOnly=true

User=ymlin

Group=ymlin

ExecStart=/usr/bin/python /home/ymlin/odoo/odoo_official/odoo/odoo-bin -c /etc/odoo10.conf -d db_name

StandardOutput=journal+console

[Install]

WantedBy=multi-user.target

        重载服务并服务Odoo:

$ sudo systemctl daemon-reload

$ sudo systemctl enable --now odoo

        检查Odoo运行状态:

$ sudo systemctl status odoo

$ tail -f ~/odoo/odoo_official/log/odoo_zh.log

Odoo安装篇_第5张图片

        至此,Odoo已经成功部署到生产环境中,下一步,就是如何创建属于自己的应用程序,敬请大家关注,持续更新中。 

        

        

你可能感兴趣的:(Odoo,python,ubuntu,nginx反向代理,postgresql)