Ubuntu 20.04 安装Odoo17,主要的Nginx配置


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="odoo"
ODOO_HOME="/opt/odoo"
ODOO_SERVER="${ODOO_HOME}/odoo-bin"
CONFIGFILE="/etc/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服务..."
        sudo -u $USER $ODOO_SERVER --config $CONFIGFILE --logfile $LOGFILE --pidfile $PIDFILE
    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
编程之路,永无止境

评论关闭