在CentOS 7上安装Odoo 11
Odoo是世界上最受欢迎的多合一商务软件。
它提供了一系列业务应用程序,包括CRM,,电子商务,计费,会计,制造,仓库,项目管理,库存等等,所有这些都无缝集成。
Odoo 11需要CentOS资料库中没有的Python 3.5.
因此,我们无法通过Odoo存储库中的yum安装Odoo软件包。
我们或者在docker容器中运行Odoo,或者将其安装在Python虚拟环境中。
在本教程中,我们将引导我们如何在CentOS 7计算机上使用Git源和Python虚拟环境安装Odoo 11.
在你开始之前
以sudo用户身份登录到CentOS计算机,并将系统更新为最新的软件包:
sudo yum update
通过键入以下内容来启用EPEL存储库:
sudo yum install epel-release
我们将从Software Collections(SCL)存储库安装Python 3.5packages。
通过启用SCL,我们将可以访问核心存储库中不提供的较新版本的编程语言和服务。
使用以下命令启用SCL存储库:
sudo yum install centos-release-scl
使用以下命令安装Python 3.5软件包:
sudo yum install rh-python35
最后,安装“ git”,“ pip”以及构建Odoo依赖项所需的所有工具:
sudo yum install git gcc wget nodejs-less libxslt-devel bzip2-devel openldap-devel libjpeg-devel freetype-devel postgresql-devel
创建Odoo用户
使用主目录“/opt/odoo”创建一个新的系统用户和组,以运行Odoo服务:
sudo useradd -m -U -r -d /opt/odoo -s /bin/bash odoo
我们可以随意命名用户,只需确保创建具有相同名称的PostgreSQL用户即可。
安装和配置PostgreSQL
安装PostgreSQL服务器并创建一个新的PostgreSQL数据库集群:
sudo yum install postgresql-serversudo postgresql-setup initdb
安装完成后,启用并启动PostgreSQL服务:
sudo systemctl enable postgresqlsudo systemctl start postgresql
创建一个与先前创建的系统用户同名的PostgreSQL用户,在本例中为'odoo':
sudo su - postgres -c "createuser -s odoo"
安装Wkhtmltopdf
“ wkhtmltox”包提供了一组开源命令行工具,可以将HTML渲染为PDF和各种图像格式。
为了打印PDF报告,我们将需要“ wkhtmltopdf”工具。
Odoo的推荐版本是“ 0.12.1”,在CentOS 7官方存储库中不可用。
要下载并安装推荐的版本,请运行以下命令:
wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.1/wkhtmltox-0.12.1_linux-centos7-amd64.rpmsudo yum localinstall wkhtmltox-0.12.1_linux-centos7-amd64.rpm
安装和配置Odoo 11
我们将从GitHub存储库安装Odoo,以便我们可以更好地控制版本和更新。
我们还将使用virtualenv,它是用于创建隔离的Python环境的工具。
在开始安装过程之前,请确保我们[切换到用户]“ odoo”:
sudo su - odoo
要确认我们以“ odoo”用户身份登录,可以使用以下命令:
whoami
现在我们可以开始安装过程,首先从GitHub存储库克隆odoo:
git clone https://www.github.com/odoo/odoo --depth 1 --branch 11.0 /opt/odoo/odoo11
启用软件集合,以便我们可以访问python 3.5二进制文件:
scl enable rh-python35 bash
使用以下方法为我们的Odoo安装创建一个新的虚拟环境:
cd /opt/odoopython3 -m venv odoo11-venv
激活环境:
source odoo11-venv/bin/activate
并安装所有必需的Python模块:
pip3 install -r odoo11/requirements.txt
如果在安装过程中遇到任何编译错误,请确保安装了“开始之前”部分中列出的所有必需依赖项。
安装完成后,请停用环境并使用以下命令切换回sudo用户:
deactivate
exit
如果我们打算安装自定义模块,则最好将这些模块安装在单独的目录中。
要为定制模块创建新目录,请运行:
sudo mkdir /opt/odoo/odoo11-custom-addonssudo chown odoo: /opt/odoo/odoo11-custom-addons
接下来,我们需要创建一个配置文件:
/etc/odoo11.conf
[options] ; This is the password that allows database operations: admin_passwd = superadmin_passwd db_host = False db_port = False db_user = odoo db_password = False addons_path = /opt/odoo/odoo11/addons ; If you are using custom modules ; addons_path = /opt/odoo/odoo11/addons,/opt/odoo/odoo11-custom-addons
如果我们使用的是自定义模块,请不要忘记将'superadmin_passwd'更改为更安全的方法并调整'addons_path'。
创建一个系统单位文件
要将odoo作为服务运行,我们将在“/etc/systemd/system /”目录中创建一个“ odoo11.service”单元文件,其中包含以下内容:
/etc/systemd/system/odoo11.service
[Unit] Description=Odoo11 Requires=postgresql.service After=network.target postgresql.service [Service] Type=simple SyslogIdentifier=odoo11 PermissionsStartOnly=true User=odoo Group=odoo ExecStart=/usr/bin/scl enable rh-python35 -- /opt/odoo/odoo11-venv/bin/python3 /opt/odoo/odoo11/odoo-bin -c /etc/odoo11.conf StandardOutput=journal+console [Install] WantedBy=multi-user.target
通知'systemd'我们已经创建了一个新的单元文件,并通过执行以下命令启动Odoo服务:
sudo systemctl daemon-reloadsudo systemctl start odoo11
我们可以使用以下命令检查服务状态:
sudo systemctl status odoo11
● odoo11.service - Odoo11 Loaded: loaded (/etc/systemd/system/odoo11.service; disabled; vendor preset: disabled) Active: active (running) since Wed 2016-03-28 20:13:30 UTC; 6s ago Main PID: 16174 (scl) CGroup: /system.slice/odoo11.service ├─16174 /usr/bin/scl enable rh-python35 -- /opt/odoo/odoo11-venv/bin/python3 /opt/odoo/odoo11/odoo-bin -c /etc/odoo11.conf ├─16175 /bin/bash /var/tmp/sclihoNjg └─16178 /opt/odoo/odoo11-venv/bin/python3 /opt/odoo/odoo11/odoo-bin -c /etc/odoo11.conf
如果没有错误,我们可以启用Odoo服务,使其在启动时自动启动:
sudo systemctl enable odoo11
如果要查看Odoo服务记录的消息,可以使用以下命令:
sudo journalctl -u odoo11
测试安装
打开浏览器并输入:'http://<域或者IP地址>:8069'
假设安装成功,将显示类似于以下内容的屏幕:
如果我们无法访问该页面,则可能是防火墙阻止了8069端口。