安装Odoo
安装与第一章相似,这里按照生产环境的标准做了一定的修改:
- 安装依赖
|
sudo apt-get update sudo apt-get install -y git python3 postgresql nano virtualenv \ gcc python3-dev libxml2-dev libxslt1-dev \ libevent-dev libsasl2-dev libldap2-dev libpq-dev \ libpng-dev libjpeg-dev \ xfonts-75dpi xfonts-base wget xz-utils |
- 安装wkhtmltopdf
|
wget "https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.xenial_amd64.deb" -O /tmp/wkhtml.deb sudo dpkg -i /tmp/wkhtml.deb sudo apt-get -fy install |
- 添加程序运行用户及数据库所需用户(这里均使用 odoo)
|
sudo groupadd odoo sudo useradd -m odoo -g odoo sudo -u postgres createuser odoo sudo -u postgres createdb -O odoo odoo_project |
- 使用 odoo 用户配置项目文件
|
sudo usermod -s /bin/bash odoo # 修改 bash,启用自动补全 sudo su - odoo mkdir ~/odoo-prod cd ~/odoo-prod mkdir -p project/src cd project/src # 下载源码 git clone -b 13.0 --depth 1 --single-branch https://github.com/odoo/odoo.git odoo # 添加配置虚拟环境、安装依赖 virtualenv -p python3 ~/env-odoo-13.0 # source ~/env-odoo-13.0/bin/activate ~/env-odoo-13.0/bin/pip3 install -r odoo/requirements.txt |
- 添加启动文件
|
mkdir ~/odoo-prod/project/bin cat>~/odoo-prod/project/bin/start-odoo<<'EOF' #!/bin/sh PYTHON=~/env-odoo-13.0/bin/python3 ODOO=~/odoo-prod/project/src/odoo/odoo-bin CONF=~/odoo-prod/project/production.conf ${PYTHON} ${ODOO} -c ${CONF} "$@" EOF chmod +x ~/odoo-prod/project/bin/start-odoo |
- 创建其它文件夹
|
cd ~/odoo-prod/project/ mkdir local-addons filestore logs |
- 配置.gitignore 文件
|
cat>.gitignore<<EOF # dotfiles, with exceptions: .* !.gitignore # python compiled files *.py[co] # emacs backup files *~ # not tracked subdirectories /src/ /filestore/ /logs/ EOF |
- 以 root 用户卸载 gcc
|
bin/start-odoo -d odoo_project --save -i base --stop-after-init # 初始化项目生成配置文件 sudo apt-get remove gcc -y |
PostgreSQL
在线获取推荐配置:http://pgtune.leopard.in.ua/

- DB Version:使用你所安装的数据库版本(默认Debian Stretch为9.6,Ubuntu 18.04为10.5)
- OS Type: Linux。
- DB Type:选择Online transaction processing system,因为Odoo使用了大量的事务。
- Total Memory (RAM):填写你想为PostgreSQL分配的内存,如果你使用一台独立的服务机则接近它的所有内存(参见下一段中有关独立数据库服务器的内容了解更多详情)。
- Number of CPUs (core):这个参数的值为你想要为PostgreSQL分配的CPU数量/核数。
- Number of Connections:你的数据库服务可以接受的最大并发数。
- Data Storage:数据存储设备的类型。例如,SSD或HDD。
生产环境配置文件参照进行如下操作:
- 在开发环境的基础上新建一个生产环境的配置文件:
|
$ cd ~/odoo-prod/project $ cp development.conf production.conf |
- 编辑生产环境配置production.conf 文件。
- 修改addons_path来匹配生产环境的根路径:
|
addons_path = /home/odoo/odoo-prod/project/src/odoo/addons, /home/odoo/odoo-prod/project/src/odoo/odoo/addons, /home/odoo/odoo-prod/project/src/local-addons |
- 修改数据路径:
|
data_dir = /home/odoo/odoo-prod/project/filestore |
- 修改服务服务日志路径来匹配生产环境的根路径:
|
logfile = /home/odoo/odoo-prod/project/logs/odoo.log |
- 配置日志轮询:
- 配置日志处理器:
|
log_level = warn log_handler = :WARNING,werkzeug:CRITICAL,odoo.service.server:INFO |
- 调整数据库连接参数:
|
db_host = False db_maxconn = 64 db_name = odoo-project db_password = False db_port = False db_template = template1 db_user = False |
- 配置数据库过滤器并禁用数据库列出显示:
|
dbfilter = odoo-project$ list_db = False |
- 使用pwgen生成的随机密码来修改master密码
|
admin_password = 使用一个随机密码 |
- 配置Odoo来以worker进程运行:
|
workers = 4 # limit_memory_hard: 4GB limit_memory_hard = 4294967296 # limit_memory_soft: 640MB limit_memory_soft = 671088640 limit_request = 8192 limit_time_cpu = 120 limit_time_real = 300 |
- 仅监听本地网卡:
|
http_interface = 127.0.0.1 |
- 保存该文件并将其添加至Git仓库:
|
$ git add production.conf $ git commit -m "add production configuration file" |
数据库及文件备份
|
@daily su postgres -c pg_dumpall | gzip >\ /backups/postgresql-$(date +%u).dump.gz @daily tar czf /backups/odoo-filestore-$(date +%u).tgz \ /home/odoo/odoo-prod/project/filestore |
配置系统服务
你需要执行如下步骤配置systemd来启动Odoo:
- 使用root权限(sudo su),创建一个名为/lib/systemd/system/odoo.service的文件并添加如下内容:
|
[Unit] Description=Odoo 12.0 After=postgresql.service [Service] Type=simple User=odoo Group=odoo WorkingDirectory=/home/odoo/odoo-prod/project ExecStart=/home/odoo/odoo-prod/project/bin/start-odoo [Install] WantedBy=multi-user.target |
- 使用root权限,注册该服务:
|
# systemctl enable odoo.service |
- 使用root权限,启动服务:
- 可运行如下命令来停止服务: