安装Odoo
安装与第一章相似,这里按照生产环境的标准做了一定的修改:
- 安装依赖
123456sudo apt-get updatesudo 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
123wget "https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.xenial_amd64.deb" -O /tmp/wkhtml.debsudo dpkg -i /tmp/wkhtml.debsudo apt-get -fy install - 添加程序运行用户及数据库所需用户(这里均使用 odoo)
1234sudo groupadd odoosudo useradd -m odoo -g odoosudo -u postgres createuser odoosudo -u postgres createdb -O odoo odoo_project - 使用 odoo 用户配置项目文件
123456789101112sudo usermod -s /bin/bash odoo # 修改 bash,启用自动补全sudo su - odoomkdir ~/odoo-prodcd ~/odoo-prodmkdir -p project/srccd 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 - 添加启动文件
12345678910mkdir ~/odoo-prod/project/bincat>~/odoo-prod/project/bin/start-odoo<<'EOF'#!/bin/shPYTHON=~/env-odoo-13.0/bin/python3ODOO=~/odoo-prod/project/src/odoo/odoo-binCONF=~/odoo-prod/project/production.conf${PYTHON} ${ODOO} -c ${CONF} "$@"EOFchmod +x ~/odoo-prod/project/bin/start-odoo - 创建其它文件夹
12cd ~/odoo-prod/project/mkdir local-addons filestore logs - 配置.gitignore 文件
12345678910111213cat>.gitignore<<EOF# dotfiles, with exceptions:.*!.gitignore# python compiled files*.py[co]# emacs backup files*~# not tracked subdirectories/src//filestore//logs/EOF - 以 root 用户卸载 gcc
12bin/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。
生产环境配置文件参照进行如下操作:
- 在开发环境的基础上新建一个生产环境的配置文件:
12$ cd ~/odoo-prod/project$ cp development.conf production.conf - 编辑生产环境配置production.conf 文件。
- 修改addons_path来匹配生产环境的根路径:
1addons_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 - 修改数据路径:
1data_dir = /home/odoo/odoo-prod/project/filestore - 修改服务服务日志路径来匹配生产环境的根路径:
1logfile = /home/odoo/odoo-prod/project/logs/odoo.log - 配置日志轮询:
1logrotate = True - 配置日志处理器:
12log_level = warnlog_handler = :WARNING,werkzeug:CRITICAL,odoo.service.server:INFO - 调整数据库连接参数:
1234567db_host = Falsedb_maxconn = 64db_name = odoo-projectdb_password = Falsedb_port = Falsedb_template = template1db_user = False - 配置数据库过滤器并禁用数据库列出显示:
12dbfilter = odoo-project$list_db = False - 使用pwgen生成的随机密码来修改master密码
1admin_password = 使用一个随机密码 - 配置Odoo来以worker进程运行:
12345678workers = 4# limit_memory_hard: 4GBlimit_memory_hard = 4294967296# limit_memory_soft: 640MBlimit_memory_soft = 671088640limit_request = 8192limit_time_cpu = 120limit_time_real = 300 - 仅监听本地网卡:
1http_interface = 127.0.0.1 - 保存该文件并将其添加至Git仓库:
12$ git add production.conf$ git commit -m "add production configuration file"
数据库及文件备份
1 2 3 4 |
@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的文件并添加如下内容:
12345678910111213[Unit]Description=Odoo 12.0After=postgresql.service[Service]Type=simpleUser=odooGroup=odooWorkingDirectory=/home/odoo/odoo-prod/projectExecStart=/home/odoo/odoo-prod/project/bin/start-odoo[Install]WantedBy=multi-user.target - 使用root权限,注册该服务:
1# systemctl enable odoo.service - 使用root权限,启动服务:
1# service odoo start - 可运行如下命令来停止服务:
1# service odoo stop