在CentOS 7上安装Odoo 12
Odoo是世界上最受欢迎的多合一商务软件。
它提供了一系列业务应用程序,包括CRM,,电子商务,计费,会计,制造,仓库,项目管理,库存等等,所有这些都无缝集成。
在本教程中,我们将向我们展示如何在CentOS 7计算机上的Python虚拟环境中从源代码安装Odoo 12.
准备工作
在继续本教程之前,请确保我们以具有sudo特权的用户身份登录。
安装Python 3.6和Odoo依赖关系
我们将从Software Collections(SCL)信息库安装Python 3.6packages。
通过启用SCL,我们将可以访问核心存储库中不提供的较新版本的编程语言和服务。
使用以下命令启用EPEL和SCL存储库:
sudo yum install epel-release centos-release-scl
启用存储库后,安装Python 3.6以构建Odoo依赖项所需的所有工具:
sudo yum install rh-python36 git gcc wget nodejs-less libxslt-devel bzip2-devel openldap-devel libjpeg-devel freetype-devel
在安装过程中,系统将提示我们接受GPG密钥。
创建Odoo用户
使用主目录“/opt/odoo”创建一个新的系统用户和组,以运行Odoo服务:
sudo useradd -m -U -r -d /opt/odoo12 -s /bin/bash odoo12
我们可以随意命名用户,只需确保创建具有相同名称的PostgreSQL用户即可。
安装和配置PostgreSQL
在撰写本文时,可从CentOS存储库中获得的PostgreSQL的最新版本是PostgreSQL 9.2版,Odoo并未正式支持它。
我们将从官方PostgreSQL存储库中安装PostgreSQL 10.
首先启用PostgreSQL存储库:
sudo yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm
安装PostgreSQL服务器并创建一个新的PostgreSQL数据库集群:
sudo yum install postgresql10-server postgresql10-develsudo /usr/pgsql-10/bin/postgresql-10-setup initdb
安装完成后,启用并启动PostgreSQL服务:
sudo systemctl enable postgresql-10sudo systemctl start postgresql-10
创建一个与先前创建的系统用户同名的PostgreSQL用户,在本例中为'odoo12':
sudo su - postgres -c "createuser -s odoo12"
安装Wkhtmltopdf
“ wkhtmltox”包提供了一组开源命令行工具,可以将HTML渲染为PDF和各种图像格式。
为了打印PDF报告,我们将需要“ wkhtmltopdf”工具。
Odoo的推荐版本是“ 0.12.1”,在CentOS 7官方存储库中不可用。
使用以下wget命令下载推荐的版本:
wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.1/wkhtmltox-0.12.1_linux-centos7-amd64.rpm
下载完成后,输入以下命令安装“ rpm”软件包:
sudo yum localinstall wkhtmltox-0.12.1_linux-centos7-amd64.rpm
安装和配置Odoo 12
在开始安装过程之前,请确保切换到用户“ odoo12”:
sudo su - odoo12
首先从Odoo GitHub存储库克隆Odoo 12源代码:
git clone https://www.github.com/odoo/odoo --depth 1 --branch 12.0 /opt/odoo12/odoo
启用软件集合,以便我们可以访问python 3.6二进制文件:
scl enable rh-python36 bash
使用以下命令为Odoo安装创建一个新的Python虚拟环境:
cd /opt/odoo12python3 -m venv venv
激活环境:
source venv/bin/activate
安装所有必需的Python模块:
pip3 install -r odoo/requirements.txt
如果在安装过程中遇到任何编译错误,请确保安装了“安装Python 3.6和Odoo依赖关系”部分中列出的所有必需依赖关系。
安装完成后,请使用以下命令停用环境:
deactivate
为自定义插件创建一个新目录:
mkdir /opt/odoo12/odoo-custom-addons
切换回sudo用户:
exit
接下来,打开文本编辑器并创建以下配置文件:
sudo nano /etc/odoo12.conf
/etc/odoo12.conf
[options] ; This is the password that allows database operations: admin_passwd = superadmin_passwd db_host = False db_port = False db_user = odoo12 db_password = False addons_path = /opt/odoo12/odoo/addons, /opt/odoo12/odoo-custom-addons
保存并关闭文件。
不要忘记将'superadmin_passwd'更改为更安全的内容。
创建一个系统单位文件
要将Odoo作为服务运行,我们将创建一个单位文件。
打开文本编辑器,然后在“/etc/systemd/system /”目录中创建一个名为“ odoo12.service”的文件:
sudo nano /etc/systemd/system/odoo12.service
粘贴以下内容:
/etc/systemd/system/odoo12.service
[Unit] Description=Odoo12 Requires=postgresql-10.service After=network.target postgresql-10.service [Service] Type=simple SyslogIdentifier=odoo12 PermissionsStartOnly=true User=odoo12 Group=odoo12 ExecStart=/usr/bin/scl enable rh-python36 -- /opt/odoo12/venv/bin/python3 /opt/odoo12/odoo/odoo-bin -c /etc/odoo12.conf StandardOutput=journal+console [Install] WantedBy=multi-user.target
保存文件并关闭编辑器。
通知Systemd我们创建了一个新的单位文件:
sudo systemctl daemon-reload
通过执行以下命令来启动并启用Odoo服务:
sudo systemctl enable odoo12sudo systemctl start odoo12
我们可以使用以下命令检查服务状态:
sudo systemctl status odoo12
● odoo12.service - Odoo12 Loaded: loaded (/etc/systemd/system/odoo12.service; disabled; vendor preset: disabled) Active: active (running) since Tue 2016-10-30 16:35:09 UTC; 6s ago Main PID: 24649 (scl) CGroup: /system.slice/odoo12.service ├─24649 /usr/bin/scl enable rh-python36 -- /opt/odoo12/venv/bin/python3 /opt/odoo12/odoo/odoo-bin -c /etc/odoo12.conf ├─24650 /bin/bash /var/tmp/scldyaa9h └─24653 /opt/odoo12/venv/bin/python3 /opt/odoo12/odoo/odoo-bin -c /etc/odoo12.conf
如果要查看Odoo服务记录的消息,可以使用以下命令:
sudo journalctl -u odoo12
测试安装
打开浏览器并输入:'http://<域或者IP地址>:8069'
假设安装成功,将显示类似于以下内容的屏幕:
如果我们无法访问该页面,则可能是防火墙阻止了端口“ 8069”。
使用以下命令打开必要的端口:
sudo firewall-cmd --permanent --zone=public --add-port=8069/tcpsudo firewall-cmd --reload