Ubuntu 20.04 安装Odoo17
1、升级系统
sudo apt-get update
2、更新系统
sudo apt-get upgrade
3、查看系统Python3版本
python3 -V
4、更新Python3.8到3.10
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
安装Python 3.10
sudo apt-get install python3.10 -y
安装完成后,检查新版本
python3.10 --version
设置默认版本为 Python3.10
查看系统已存在的所有python版本
ls -l /usr/bin/python*
挂载多版本
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2
设定默认版本
update-alternatives --config python3
选择默认版本,提示信息中回车即可.
修复 pip
apt install python3.10-distutils -y
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py
权限问题
python3 get-pip.py --user
检查配置文件
sudo vi /usr/local/bin/pip3
第一行是 #!/usr/bin/python3 即可.
5、安装Postgres
安装最新的Postgres
创建库
sudo sh -c 'echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
导入密钥
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
更新系统源
sudo apt-get update
安装Postgres
sudo apt-get -y install postgresql
启动命令
systemctl start | stop | restart | status postgresql
进入数据库
sudo -u postgres psql
查看Postgres版本
pg_config --version
修改数据库密码
ALTER USER postgres WITH PASSWORD '要设定的密码';
创建数据库
CREATE USER odoo WITH PASSWORD '要设定的密码';
授予数据库访问权限
ALTER USER odoo CREATEDB;
退出数据库链接
\q
开启远程访问(以下使用的是我的本地版本16,改成你自己安装的版本号即可)
vim /etc/postgresql/16/main/pg_hba.conf
修改监听以及默认端口号
vim /etc/postgresql/16/main/postgresql.conf
修改完成后重启
6、卸载postgres
完全卸载PG数据库
sudo systemctl stop postgresql ### 关闭数据库服务
sudo systemctl status postgresql ### 确认数据库服务处于关闭状态
sudo apt-get purge 'postgresql-*' ### 卸载数据库
sudo apt-get autoremove 'postgresql-*' ### 卸载数据库依赖包
sudo rm -r /etc/postgresql/ ### 删除配置文件
sudo rm -r /etc/postgresql-common/ ### 删除配置文件
sudo rm -r /var/lib/postgresql/ ### 删除数据目录
sudo userdel -r postgres ### 删除用户
sudo groupdel postgres ### 删除用户组
7、拉取Odoo最新代码
git clone https://github.com/odoo/odoo.git
安装依赖(如何requirements文件没有权限需要先赋权) 下面使用清华源安装
pip install -r requirements.txt -i https://pypi.douban.com/simple
执行上面的后可能存在后续启动时提示还是少包的问题安装即可
sudo pip install libsass PyPDF2 psycopg2-binary werkzeug passlib Pillow reportlab babel pytz
decorator python-dateutil polib docutils rjsmin MarkupSafe psutil -i https://pypi.douban.com/simple
安装openssl
sudo pip install num2words ofxparse dbfread ebaysdk firebase_admin pyOpenSSL -i https://pypi.tuna.tsinghua.edu.cn/simple
安装npm
sudo apt-get install nodejs npm -y
sudo npm install -g rtlcss
安装web依赖包
sudo npm install -g less
sudo npm install -g less-plugin-clean-css
自行修改Odoo的配置文件下的相关配置 - odoo.conf
临时启动命令
/home/tools/odoo/odoo-bin -c /home/tools/odoo/debian/odoo.conf
启动后可以看到后台log
8、安装Nginx
更新系统
更新系统
sudo apt update
安装Nginx
sudo apt install nginx -y
配置防火墙(443/80)
sudo ufw allow 80
sudo ufw allow 443
验证防火墙是否已经放开
sudo ufw status
nginx启动命令
systemctl restart nginx # 启动nginx
systemctl status nginx # 查看nginx状态
配置目录
- 所有的 Nginx 配置文件都在/etc/nginx/目录下。
- 主要的 Nginx 配置文件是/etc/nginx/nginx.conf。
- 为每个域名创建一个独立的配置文件,便于维护服务器。你可以按照需要定义任意多的 block 文件。
- Nginx 服务器配置文件被储存在/etc/nginx/sites-available目录下。在/etc/nginx/sites-enabled目录下的配置文件都将被 Nginx 使用。
- 最佳推荐是使用标准的命名方式。例如,如果你的域名是mydomain.com,那么配置文件应该被命名为/etc/nginx/sites-available/mydomain.com.conf
- 如果你在域名服务器配置块中有可重用的配置段,把这些配置段摘出来,做成一小段可重用的配置。
- Nginx 日志文件(access.log 和 error.log)定位在/var/log/nginx/目录下。推荐为每个服务器配置块,配置一个不同的access和error。
- 你可以将你的网站根目录设置在任何你想要的地方。最常用的网站根目录位置包括:
- /home/<user_name>/<site_name>
- /var/www/<site_name>
- /var/www/html/<site_name>
- /opt/<site_name>
注意:80/443端口需要进行备案后方可代理
附:启动脚本
#!/bin/bash
# Odoo服务管理脚本
# 配置部分
USER="root"
ODOO_HOME="/tools/odoo"
ODOO_SERVER="${ODOO_HOME}/odoo-bin"
CONFIGFILE="/tools/odoo/debian/odoo.conf"
PIDFILE="${ODOO_HOME}/odoo-server.pid"
LOGFILE="/var/log/odoo/odoo-server.log"
start() {
if [ -f $PIDFILE ]; then
echo "Odoo已经在运行."
else
echo "启动Odoo服务..."
nohup sudo -u $USER $ODOO_SERVER --config $CONFIGFILE --logfile $LOGFILE --pidfile $PIDFILE > /dev/null 2>&1 &
echo "Odoo服务已启动."
fi
}
stop() {
if [ -f $PIDFILE ]; then
echo "停止Odoo服务..."
PID=$(cat $PIDFILE)
sudo kill -9 $PID
sudo rm -f $PIDFILE
echo "Odoo服务已停止."
else
echo "Odoo服务未在运行."
fi
}
restart() {
echo "重启Odoo服务..."
stop
sleep 2
start
echo "Odoo服务已重启."
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo "用法: $0 {start|stop|restart}"
exit 1
esac
exit 0
附:启动命令
nohup /tools/odoo/odoo.sh start &
附:Centos系统自启服务注册
vim /etc/systemd/system/odoo.service
在编辑器中,将以下内容粘贴到文件中:
[Unit]
Description=Odoo 17
Documentation=http://www.odoo.com
[Service]
# 用于执行Odoo服务的用户
User=your_username
# Odoo二进制文件的路径
ExecStart=/path/to/odoo/odoo-bin --config=/path/odoo.conf
[Install]
WantedBy=default.target
对该文件进行赋权操作
chmod +x odoo.service
重新加载systemd服务配置:
sudo systemctl daemon-reload
添加系统自启:
sudo systemctl enable odoo.service
现在,Odoo服务已配置为开机自启动。你可以使用以下命令来管理服务:
启动服务:sudo systemctl start odoo.service
停止服务:sudo systemctl stop odoo.service
重启服务:sudo systemctl restart odoo.service
查看服务状态:sudo systemctl status odoo.service
编程之路,永无止境