前提:云服务
服务器配置

创建系统用户和用户组:odoo16,后续操作均用odoo16执行, 不要用root
# 创建一个新的用户组,组名为 mygroup
sudo groupadd mygroup
# 创建一个新的用户,用户名为 myuser,并指定主组为 mygroup
sudo useradd -g mygroup myuser
# 设置或更改用户密码
sudo passwd myuser
一、更新软件列表
sudo apt-get update
sudo apt-get upgrade
二、Odoo16需要 Python 3.7 或更高版本才能运行,检查是否已安装

安装Python
sudo apt-get install -y python3-pip
三、安装依赖
sudo apt-get install python-dev python3-dev build-essential libjpeg-dev libpq-dev libjpeg8-dev libxml2-dev libssl-dev libffi-dev libmysqlclient-dev libxslt1-dev zlib1g-dev libsasl2-dev libldap2-dev liblcms2-dev
web依赖
sudo apt-get install -y npm
sudo ln -s /usr/bin/nodejs/usr/bin/node
sudo npm install -g less less-plugin-clean-css
sudo apt-get install -y node-less
四、安装Wkhtmltopdf, odoo报表打印必须插件
# 创建文件夹
sudo mkdir odoo16
sudo wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.bionic_amd64.deb
sudo apt-get -f install
sudo dpkg -i wkhtmltox_0.12.5-1.bionic_amd64.deb
五、安装数据库PostgreSQ
sudo apt-get install postgresql
六、创建用于处理Odoo数据库的数据库用户角色
sudo su - postgres
# 接下来,应该为不同用户定义一个密码,稍后在conf文件中需要这个密码
createuser --createdb --username postgres --no-createrole --no-superuser --pwprompt odoo16
# 为odoo16设置密码
# 将定义的用户设置为超级用户
psql
ALTER USER odoo16 WITH SUPERUSER;
# 退出psql和Postgres用户
\q
exit
七、下载odoo16源码,放在/home/odoo目录下

sudo apt-get install git
git clone --branch 16.0 --single-branch https://www.github.com/odoo/odoo.git odoo16.0
八、安装所需的Python包,Odoo需要安装一些python包,这些包列在odoo16目录下的requirement.txt文件中

cd odoo-16.0
sudo pip3 install -r requirements.txt
九、在源码根目录下创建 odoo.conf
将以下块粘贴到odoo.conf文件中,您应该更改db_password,这是您在前面的步骤中为数据库用户odoo16设置的密码
[options]
; Is This The Password That Allows Database Operations:
admin_passwd = admin
db_host = localhost
db_port = 5432
db_user = odoo16
db_password = (db_user=odoo16的密码)
addons_path = /home/odoo/odoo-16.0/addons
http_port = 8069
十、启动ODOO服务
/home/odoo/odoo-16.0/odoo-bin -c /home/odoo/odoo-16.0/odoo.conf
十一、浏览器访问ODOO16, http://云服务IP:8069

十二、设置服务自启动
1. 创建serivice文件,/etc/systemd/system/odoo16.service
输入如下内容
[Unit]
Description=odoo16
After=postgresql.service
[Service]
Type=simple
User=odoo16
Group=odoo16
ExecStart=/home/odoo/odoo-16.0/odoo-bin -c /home/odoo/odoo-16.0/odoo.conf
StandardOutput=journal+console
[Install]
WantedBy=multi-user.target
# 通知systemd我们创建了一个新的单元文件并通过执行以下命令来启动Odoo服务:
sudo systemctl daemon-reload
# 启动服务命令:
sudo systemctl start odoo16
# 使用以下命令检查服务状态:
sudo systemctl status odoo16
# 如果没有错误,您可以启用Odoo服务在启动时自动启动:
sudo systemctl enable odoo16
# 如果你想查看Odoo服务记录的消息,你可以使用下面的命令:
sudo journalctl -u odoo16
十三、错误解决
1. 系统打印报表报错:在此系统上找不到Wkhtmltopdf。报表将以html格式显示
解决措施
sudo apt-get -f install
sudo dpkg -i wkhtmltox_0.12.5-1.bionic_amd64.deb
2. 打印报表,中文字体乱码
# 安装中文字体
sudo apt-get install ttf-wqy-zenhei -y
# 重启系统,输入命令
reboot
3. 切换ODOO16用户,执行sudo命令报错:odoo16 is not in the sudoers file. This incident will be reported.

# 1.以 root 用户登录
su root
# 2.输入命令
visudo /etc/sudoers
# 在打开的文件中,添加
odoo16 ALL=(ALL:ALL) ALL
# 然后按 Ctrl+O 保存文件,如果提示输入文件名,确认或输入文件名,然后按回车
# 编辑完成后按 Ctrl+X 退出 nano
4. 停止ODOO16服务后,还是提示端口被占用(Address already in use)
# 找到ODOO服务的端口号,查看进程
sudo lsof -i:8069
# 关闭进程
sudo kill PID
# 重新启动ODOO服务即可
sudo systemctl odoo16 restart
3662

被折叠的 条评论
为什么被折叠?



