在CentOS 7服务器下安装和配置Odoo 13
录到服务器:
ssh root@your_server_ip
1
如需检查计算机上安装的CentOS的版本,可以运行以下命令:
cat /etc/redhat-release
1
在本案例中,我们所得到的结果如下
CentOS Linux release 7.7.1908 (Core)
1
CentOS 7系统的升级
运行以下命令更新服务器:
yum update
1
更新服务器后,输入以下内容启用EPEL 资源库 :
yum install epel-release
1
Python3.7的安装
需要切换到root用户:
sudo root
1
安装相关编译工具
yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
yum install libffi-devel -y
1
2
3
下载并解压安装包
cd /opt # 待安装的目录
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
tar -xvJf Python-3.7.0.tar.xz
1
2
3
创建编译安装的目录
mkdir /usr/local/python3
1
编译并安装
cd Python-3.7.0
./configure --prefix=/usr/local/python3
make && make install
1
2
3
创建相关的软链接
ln -s /usr/local/python3/bin/python3 /usr/local/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/local/bin/pip3
1
2
验证python和pip的版本
python3 -V
pip3 -V
1
2
会得到以下结果:
Python 3.7.0
pip 10.0.1 from /usr/local/python3/lib/python3.7/site-packages/pip (python 3.7)
1
2
odoo相关依赖的安装
yum install git gcc wget nodejs-less libxslt-devel bzip2-devel openldap-devel libjpeg-devel freetype-devel
1
创建Odoo的用户
创建一个用于运行Odoo名为oodo13的系统用户,主目录为/opt/odoo13:
sudo useradd -m -d /opt/odoo13 -U -r -s /bin/bash odoo13
1
*注:
这里可以随意命名用户,但不要忘记创建一个具有相同名称的PostgreSQL用户。
安装和配置PostgreSQL
首先列举出可用的软件包:
yum list postgresql*
1
在本教程中,我们选用PostgreSQL 9.6版本。 若用户没有此版本的列表,可以使用以下命令从Postgres Yum存储库中手动添加:
yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-redhat96-9.6-3.noarch.rpm -y
1
执行以下命令安装PostgreSQL 9.6:
yum install postgresql96 postgresql96-server postgresql96-contrib postgresql96-libs -y
1
初始化数据库:
/usr/pgsql-9.6/bin/postgresql96-setup initdb
1
开启 PostgreSQL服务:
systemctl start postgresql-9.6.service
1
可以配置PostgreSQL服务开机自启:
systemctl enable postgresql-9.6.service
1
最后,创建一个PostgreSQL用户,需要和已经为Odoo创建的用户(本例中用户名为odoo13)使用相同的名称。
sudo su - postgres -c "createuser -s odoo13"
1
Wkhtmltopdf的安装
wkhtmltopdf软件包是Odoo用来将PDF格式的HTML制成以便可以打印PDF报告的开源工具。 本案例中安装0.12.5版本,该版本在CentOS 7官方存储库中不可用。 为了下载并安装此版本,需要运行以下命令:
cd /opt/
wget https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox-0.12.5-1.centos7.x86_64.rpm
yum localinstall wkhtmltox-0.12.5-1.centos7.x86_64.rpm
1
2
3
Odoo 13的安装与配置
首先,需要更改为用户“odoo13”:
su - odoo13
1
从Github的存储库中下载Odoo 13源代码:
git clone https://www.github.com/odoo/odoo --depth 1 --branch 13.0 /opt/odoo13/odoo
1
下载完成后,为Odoo创建一个新的Python虚拟环境:
cd /opt/odoo13
python3 -m venv odoo13-venv
1
2
激活所创建的Python虚拟环境:
source odoo-venv/bin/activate
1
升级pip、setuptools,并安装Wheel库:
pip install --upgrade pip
pip install --upgrade setuptools
pip3 install wheel
1
2
3
使用pip3安装所有必需的Python模块:
pip3 install -r odoo/requirements.txt
1
完成后,通过键入以下命令停用环境并退出:
deactivate && exit
1
我们将创建一个包含第三方插件新目录,并将该目录的所有者更改为odoo13:
mkdir /opt/odoo13/odoo13-custom-addons
chown odoo: /opt/odoo13/odoo13-custom-addons
1
2
修改数据库连接的配置信息:
vi /var/lib/pgsql/9.6/data/pg_hba.conf
1
将数据库访问的配置信息修改如下:
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 ident
# IPv6 local connections:
host all all ::1/128 ident
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication postgres peer
#host replication postgres 127.0.0.1/32 ident
#host replication postgres ::1/128 iden
1
2
3
4
5
6
7
8
9
10
11
12
13
创建Odoo13的配置文件:
vi /etc/odoo13.conf
1
配置文件的内容如下:
[options]
; This is the password that allows database operations:
admin_passwd = admin_password
db_host = False
db_port = False
db_user = odoo13
db_password = False
addons_path = /opt/odoo13/odoo/addons,/opt/odoo13/odoo-custom-addons
1
2
3
4
5
6
7
8
*注:
请记得使用自己的密码更换admin_password的内容。
创建系统单元文件并测试安装
创建一个名为odoo13.service的服务单元文件:
sudo vi /etc/systemd/system/odoo13.service
1
系统单元文件的内容如下:
[Unit]
Description=Odoo13
Requires=postgresql-9.6.service
After=network.target postgresql-9.6.service
[Service]
Type=simple
SyslogIdentifier=odoo13
PermissionsStartOnly=true
User=odoo13
Group=odoo13
ExecStart=/opt/odoo13/odoo13-venv/bin/python3 /opt/odoo13/odoo/odoo-bin -c /etc/odoo13.conf
StandardOutput=journal+console
[Install]
WantedBy=multi-user.target
1
2
3
4
5
6
7
8
9
10
11
12
13
14
然后重新加载守护程序,使之在systemd中创建的新单元:
systemctl daemon-reload
1
可以启动Odoo13的服务:
systemctl start odoo13
1
可以查看Odoo13的服务状态:
systemctl status odoo13
1
得到启动的状态如下
● odoo13.service - Odoo13
Loaded: loaded (/etc/systemd/system/odoo13.service; disabled; vendor preset: disabled)
Active: active (running) since Tue 2019-11-19 15:21:40 CST; 2h 20min ago
Main PID: 28867 (python3)
CGroup: /system.slice/odoo13.service
└─28867 /opt/odoo13/odoo13-venv/bin/python3 /opt/odoo13/odoo/odoo-bin -c /etc/odoo13.conf
1
2
3
4
5
6
如果没有出现错误,可以使用以下命令启用Odoo13的服务开机自启:
systemctl enable odoo13
1
要查看Odoo日志的消息,可以使用以下命令:
journalctl -u odoo13
1
开启数据库远程访问
进入修改文件目录:
cd /var/lib/pgsql/9.6/data/
1
编译配置文件:
vi pg_hba.conf
1
修改文件末尾处 # IPv4 local connections的内容:
host all all 127.0.0.1/32 ident # 在本行下面添加
host all all 0.0.0.0/0 trust # 添加内容
1
2
编译配置文件:
vi postgresql.conf
1
修改Connection Settings为以下内容:
# - Connection Settings -
listen_addresses = '*' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
1
2
3
4
5
6
输入以下指令进入数据库:
su – postgres
1
进入数据库后,输入以下指令:
-bash-4.2$ psql
psql (9.6.12)
Type "help" for help.
1
2
3
修改“odoo13”用户的初始密码:
postgres=# alter user odoo with password 'odoo';
1
修改密码后,退出数据库:
postgres=# q
-bash-4.2$ exit
Logout
1
2
3
测试安装Odoo13
打开浏览器并输入:http://<your_domain_or_IP_address>:8069,成功安装则会进入以下界面:
*注:
创建数据库时所输入的Master Password即为配置文件中所写的admin_passwd。
为Odoo13配置Nginx反向代理
执行以下命令从Nginx官网中获取Centos的源地址:
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
1
通过yum search nginx查看是否添加源成功,如果成功则执行下列命令安装Nginx:
sudo yum install -y nginx
1
可以启动Nginx的服务:
sudo systemctl start nginx.service
1
如果没有出现错误,可以使用以下命令启用Nginx的服务开机自启:
sudo systemctl enable nginx.service
1
修改Nginx的配置文件:
vi /usr/local/nginx/conf/nginx.conf
1
配置成以下内容:
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
upstream direction{
server 127.0.0.1:8069; # 反向服务地址
}
server {
listen 80;
server_name _; # set all
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://direction; # 代理转发
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
完成后保存文件并重新启动Nginx服务:
sudo systemctl restart ng
————————————————
版权声明:本文为CSDN博主「柠檬超甜的」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42552923/article/details/103151256