Odoo(以前称为OpenERP)是一个开源的业务应用程序套件,包括客户关系管理(CRM),销售渠道,项目管理,制造,发票,会计,电子商务和库存工具,仅举几例。Odoo团队创建了34个主要应用程序,社区成员开发了超过5,500个应用程序,涵盖了广泛的业务需求。
部署后,Odoo允许管理员安装任何模块组合,并根据业务需求配置/定制它,范围从小型商店到企业级公司。
本教程介绍了如何使用Git源代码在一小时内安装和配置Odoo,以便于升级,维护和自定义。
sudo
命令的非root账号的Ubuntu 16.04服务器。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器。sudo apt update && sudo apt upgrade
在安装Odoo之前,我们将设置一些基本的防火墙规则,以允许SSH连接和访问Odoo服务器。在此示例中,我们将使用Odoo的默认端口8069
,但这可能是您稍后在配置文件中指定的任何端口。如果您计划运行任何其他服务,也可以在此处添加其端口。
sudo ufw allow ssh
sudo ufw allow 8069/tcp
sudo ufw enable
安装PostgreSQL数据库,Python和其他必要的服务器库:
sudo apt install git python-pip postgresql postgresql-server-dev-9.5 python-all-dev python-dev python-setuptools libxml2-dev libxslt1-dev libevent-dev libsasl2-dev libldap2-dev pkg-config libtiff5-dev libjpeg8-dev libjpeg-dev zlib1g-dev libfreetype6-dev liblcms2-dev liblcms2-utils libwebp-dev tcl8.6-dev tk8.6-dev python-tk libyaml-dev fontconfig
postgres
用户:sudo su - postgres
createuser odoo -U postgres -dRSP
按CTRL + D退出postgres
用户会话。
注意 如果要在同一个腾讯云CVM服务器上运行多个Odoo实例,请记住检查PostgreSQL客户端配置文件(截至本教程发布之日,其位于
/etc/postgresql/9.5/main/pg_hba.conf
中)并根据您的需要进行修改。
为了将Odoo与其他服务分开,请创建一个新的Odoo系统用户来运行其进程:
sudo adduser --system --home=/opt/odoo --group odoo
注意 如果您在同一个腾讯云CVM服务器上运行多个Odoo版本,则可能需要为每个实例使用不同的用户和目录。
对于记录的,Ubuntu 16.04默认使用systemd
和journald
。考虑到这一点,您可以通过多种方式设置Odoo 10日志。我们将在本教程中考虑两种情况。您选择的选项取决于您的特定需求:
sudo mkdir /var/log/odoo
要仅使用journald
用于日志记录,您不需要创建任何目录。
将Odoo文件克隆到您的服务器上:
sudo git clone https://www.github.com/odoo/odoo --depth 1 --branch 10.0 --single-branch /opt/odoo
注意 使用git提供了极大的灵活性。当有新的升级时,请拉出新分支。您甚至可以在生产版本旁边安装不同的版本,只需更改目标目录和
--branch X.x
标志即可。在升级之前,请记住对数据库和自定义文件进行完整备份。想要了解什么是git,请参考这篇Git使用教程。
在准备好使用Odoo应用程序之前,您需要安装一些依赖项。我们将使用Python包管理器,pip
代替apt
以保证您安装正确的版本。我们也不会使用Ubuntu的Wkhtmltopdf和node-Less的打包版本。
请务必按照本节中的步骤作为有限的非root用户(而非odoo
用户)。
安装所需的Python库:
sudo pip install -r /opt/odoo/doc/requirements.txt
sudo pip install -r /opt/odoo/requirements.txt
这些命令使用随Odoo安装提供的requirements.txt
文件,以确保您获得应用程序所依赖的软件包的正确版本。
nodejs
安装脚本:sudo curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
apt
更新安装nodejs
:sudo apt install -y nodejs
npm
,Node.js包管理器:sudo npm install -g less less-plugin-clean-css
cd /tmp
sudo wget https://downloads.wkhtmltopdf.org/0.12/0.12.1/wkhtmltox-0.12.1_linux-trusty-amd64.deb
dpkg
命令安装包:sudo dpkg -i wkhtmltox-0.12.1_linux-trusty-amd64.deb
sudo cp /usr/local/bin/wkhtmltopdf /usr/bin
sudo cp /usr/local/bin/wkhtmltoimage /usr/bin
注意 虽然wkhtmltopdf版本0.12.2.4在Ubuntu官方16.04仓库可用,但是我们不建议从那里安装它,由于大量的依赖关系,包括:
xserver
,gstreamer
,libcups
,wayland
,qt5
等等。项目页面上还没有正式的Xenial软件包,但是Ubuntu 14.04的Trusty软件包在本出版物中是兼容的。
odoo-server.conf
sudo cp /opt/odoo/debian/odoo.conf /etc/odoo-server.conf
[options]
admin_passwd = admin
db_host = False
db_port = False
db_user = odoo
db_password = FALSE
db_password = FALSE
addons_path = /opt/odoo/addons
;Uncomment the following line to enable a custom log
;logfile = /var/log/odoo/odoo-server.log
xmlrpc_port = 8069
admin_passwd = admin
- 这是允许数据库操作的密码。一定要将admin
更改为更安全的内容。db_host = False
- 除非您计划连接到其他数据库服务器地址,否则请保持此行不变。db_port = False
- Odoo使用PostgreSQL默认端口5432
,只有在使用自定义PostgreSQL设置时才更改此设置。db_user = odoo
- PostgreSQL数据库用户的名称。在这种情况下,我们使用默认名称,但如果您在创建用户时使用了其他名称,请在此处替换。db_password = FALSE
- 更改FALSE
为您之前创建的PostgreSQL密码。addons_path =
- 修改此行以阅读:addons_path = /opt/odoo/addons
。如果您使用自定义模块,请添加</path/to/custom/modules>
替换您自己的路径。logfile = /var/log/odoo/odoo-server.log
。如果您打算仅使用journald
用于记录,则可以跳过此行。xmlrpc_port = 8069
。只有在计划在同一服务器上运行多个Odoo实例(或版本)时才有意义。对于正常安装,您可以跳过此行,并且此Odoo实例将默认连接到端口8069
。
注意
如配置日志部分中所述,在Ubuntu 16.04中有很多Odoo日志记录选项。此配置文件假定除了自定义日志路径之外,您还将使用Ubuntu系统日志。创建一个名为systemd的单元,odoo-server
以允许您的应用程序作为服务运行。在/lib/systemd/system/odoo-server.service
中创建一个新文件并添加以下内容:
[Unit]
Description=Odoo Open Source ERP and CRM
Requires=postgresql.service
After=network.target postgresql.service
[Service]
Type=simple
PermissionsStartOnly=true
SyslogIdentifier=odoo-server
User=odoo
Group=odoo
ExecStart=/opt/odoo/odoo-bin --config=/etc/odoo-server.conf --addons-path=/opt/odoo/addons/
WorkingDirectory=/opt/odoo/
StandardOutput=journal+console
[Install]
WantedBy=multi-user.target
此文件中最相关的行是StandardOutput=journal+console
。如上例所示,Odoo日志将完全由系统日志管理(“ 配置日志”部分中的选项2 )。如果需要单独的日志文件,请省略该行并进行配置相应的odoo-server.conf
,指定日志文件的位置。请记住,journald
将始终捕获主要的Odoo服务活动(服务启动,停止,重新启动,错误),使用单独的日志文件将仅排除日志“信息”消息,如Web服务器消息,呈现引擎等。
odoo-server
服务权限和所有权,以便只有root可以写入,而odoo
用户只能读取和执行它。sudo chmod 755 /lib/systemd/system/odoo-server.service
sudo chown root: /lib/systemd/system/odoo-server.service
odoo
用户将运行该应用程序,因此相应地更改其所有权。sudo chown -R odoo: /opt/odoo/
odoo
用户也设置为日志目录的所有者(仅当您决定使用单独的日志文件时才适用):sudo chown odoo:root /var/log/odoo
sudo chown odoo: /etc/odoo-server.conf
sudo chmod 640 /etc/odoo-server.conf
sudo systemctl start odoo-server
sudo systemctl status odoo-server
sudo journalctl -u postgresql
sudo systemctl stop odoo-server
sudo systemctl status odoo-server
您的输出应该类似于:
odoo-server
设备以启动和停止服务器:sudo systemctl enable odoo-server
sudo journalctl -u odoo-server
输出应包含一条消息,指示Odoo已成功启动。
在更新Odoo系统之前,您应该检查一切是否按预期工作,尤其是第三方模块。最安全的方法是使用测试环境,这只是一个单独的Odoo安装。
根据您的服务器资源,安全性问题和测试第二次安装的范围可以与生产实例一起或在其他位置(远程或本地)进行。出于本教程的目的,我们将使用与生产环境在同一服务器上运行的测试环境。
为了在生产的同时使用测试环境,我们需要使用不同的TCP端口进行服务器连接:
sudo ufw allow 8080/tcp
一个独立的数据库用户没有必要像以前一样使用密码:
sudo su - postgres
createuser odoo-te -U postgres -dRS
按CTRL + D退出postgres
用户会话。
使用与生产用户不同的odoo用户非常重要:
sudo adduser --system --home=/opt/odoo-te --group odoo-te
对于测试环境,建议使用单独的日志文件:
sudo mkdir /var/log/odoo-te
克隆与旧生产实例不同的更新的Odoo源:
sudo git clone https://www.github.com/odoo/odoo --depth 1 --branch 10.0 --single-branch /opt/odoo-te
使用相同服务器的优点是已经满足所有依赖项。接下来是相应地配置服务器。
logfile
和指定的通信端口:
[options] admin_passwd = admin db_host = False db_port = False db_user = odoo-te db_password = FALSE addons_path = /opt/odoo-te/addons logfile = /var/log/odoo-te/odoo-server-te.log xmlrpc_port = 8080
设置测试环境的权限:
sudo chmod 755 /lib/systemd/system/odoo-server-te.service
sudo chown root: /lib/systemd/system/odoo-server-te.service
sudo chown -R odoo-te: /opt/odoo-te/
sudo chown odoo-te:root /var/log/odoo-te
sudo chown odoo-te: /etc/odoo-server-te.conf
sudo chmod 640 /etc/odoo-server-te.conf
现在,您可以启动新的Odoo服务并验证错误的日志条目:
sudo systemctl start odoo-server-te
sudo systemctl status odoo-server-te
sudo journalctl -u postgresql
sudo cat /var/log/odoo-te/odoo-server-te.log
此时,您有一个完全独立的Odoo安装。接下来的步骤将设置您的测试环境以复制生产环境。
odoo-server-te
服务并使用Odoo图形界面恢复生产数据库。请注意,这次您将使用端口8080,因为测试环境正在运行:
http://your_domain_or_IP_address:8080/web/database/manager
如果所有测试都通过,您可以更新生产安装。
如果您计划将Odoo 10用于您的业务,您可能希望配置SSL / TLS加密以启用与服务器的安全连接。自建服务器难免会遇到这样的问题,配置SSL很麻烦,虽然对一部分人来说这也是一种乐趣,但是如果您在生产环境使用,我还是建议您直接使用云关系型数据库,云关系型数据库让您在云中轻松部署、管理和扩展的关系型数据库,提供安全可靠、伸缩灵活的按需云数据库服务。腾讯云关系型数据库提供 MySQL、SQL Server、MariaDB、PostgreSQL 数据库引擎,并针对数据库引擎的性能进行了优化。云关系型数据库是一种高度可用的托管服务,提供容灾、备份、恢复、监控、迁移等数据库运维全套解决方案,可将您从耗时的数据库管理任务中解放出来,让您有更多时间专注于您的应用和业务。想要了解更多关于SSL证书的内容请前往腾讯云+社区学习更多知识。
有关此主题的其他信息,您可能需要参考以下资源。虽然提供这些是希望它们有用,但请注意,我们无法保证外部托管材料的准确性或及时性。
欢迎您使用腾讯云免费的开发者专属在线实验平台进行试验。更多云计算教程,请前往腾讯云+社区学习。
参考文献:《Install Odoo 10 on Ubuntu 16.04》
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。