Odoo是世界上最受欢迎的多合一商务软件。它提供了一系列业务应用程序,包括CRM,网站,电子商务,计费,会计,制造,仓库,项目管理,库存等等,所有这些都无缝集成在一起。

在本教程中,我们将向您展示如何在CentOS 7计算机上的Python虚拟环境中从源代码安装 Odoo 12。

先决条件

在继续学习本教程之前,请确保您以个用户的身份使用sudo权限登录

安装Python 3.6和Odoo依赖项

我们将从软件集合(SCL)存储库中安装Python 3.6 程序包。

通过启用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存储库安装PostgreSQL10。

首先启用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-devel
sudo /usr/pgsql-10/bin/postgresql-10-setup initdb

安装完成后,启用并启动PostgreSQL服务:

sudo systemctl enable postgresql-10
sudo 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/odoo12
python3 -m venv venv

激活环境:

source venv/bin/activate

安装所有必需的Python模块:

pip3 install -r odoo/requirements.txt

如果在安装过程中遇到任何编译错误,请确保安装了Install Python 3.6 and Odoo Dependencies节中列出的所有必需依赖项。

安装完成后,请使用以下命令停用环境:

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 odoo12
sudo 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 2018-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://<your_domain_or_IP_address>:8069

假设安装成功,将出现类似于以下的屏幕:

如果您无法访问该页面,则可能是您的防火墙阻止了端口8069

使用以下命令打开所需的端口:

sudo firewall-cmd --permanent --zone=public --add-port=8069/tcp
sudo firewall-cmd --reload

结论

本教学课程引导您逐步在Python虚拟环境中的CentOS 7上安装Odoo12。

您可能还想查看我们的教程,了解有关如何为您的Odoo数据库创建自动每日备份

如果遇到任何问题,请在下面发表评论。

如果你喜欢我们的内容可以选择在下方二维码中捐赠我们,或者点击广告予以支持,感谢你的支持