前言

pgAdmin4是一款为PostgreSQL设计的可靠和全面的数据库设计和管理软件,它允许你连接到特定的数据库,创建表和运行各种从简单到复杂的SQL语句。
本教程将继续沿用《Ubuntu16安装Odoo13教程详解》的部分安装方法。

 

准备

  1. 服务器:Ubuntu 16.04 server 64bit
  2. 远程工具:Xshell,或宝塔SSH终端,或服务器供应商控制面板的远程工具。

Xshell快捷键:ctrl+insert复制、shift+insert粘贴。

 

安装宝塔

宝塔是一款简单好用的服务器运维面板,本教程将用于快速创建网站,并设置pgAdmin4的反向代理。
下载并执行脚本:
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
安装成功后,将看到控制面板的访问地址和账号密码:

删除安装文件:
rm install.sh
访问控制面板,初次访问会提示安装推荐软件,选择安装Nginx 1.18(或者通过软件商店菜单搜索Nginx1.18进行安装):

 

创建odoo用户

创建一个将运行Odoo的系统用户,名为oodo,默认主目录为“/opt/odoo”。
sudo useradd -m -d /opt/odoo -U -r -s /bin/bash odoo

 

安装PostgreSQL

如果你使用外部数据库连接,可以不用安装PostgreSQL,请跳过此步骤。
安装PostgreSQL:
sudo apt install -y postgresql
创建与odoo系统用户同名的数据库用户:
sudo su - postgres -c "createuser -s odoo"

 

检查Python版本

检查Python版本:
python3 -V
检查pip3版本:
pip3 -V
pgAdmin4要求Python版本3.6及以上。如果你的版本过低,需要先更新到3.6以上版本。Ubuntu16默认已经安装了Python3.5版本和2.7版本,因此我们需要使用python3命令和pip3命令。
Ubuntu16安装Python3.6:
sudo apt-get update
sudo apt-get install -y software-properties-common python-software-properties
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install -y python3.6
删除python3.5的程序链接,并添加Python3.6的程序链接:
cd /usr/bin
sudo rm python3
sudo ln -s python3.6 /usr/bin/python3
安装pip3:
sudo apt install -y python3-pip
pip install --upgrade pip

 

安装依赖程序

安装依赖(安装pgadmin4出错fatal error: Python.h: No such file or directory,是因为缺少此依赖)
sudo apt-get install -y python3.6-dev
安装依赖(pgadmin4运行命令出错No module named ‘gdbm’,是因为缺少此依赖)
sudo apt-get install -y python3.6-gdbm
安装依赖(安装pgadmin4出错error: command ‘x86_64-linux-gnu-gcc’ failed with exit status 1,是因为缺少此依赖):
sudo apt-get install -y build-essential python3-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev zlib1g-dev

 

安装虚拟环境

使用odoo用户:
sudo su - odoo
进入odoo用户目录:
cd /opt/odoo
安装python3.6-venv(如果Ubuntu16不执行此命令,在创建虚拟环境时有可能出错:Error: Command ‘[‘/opt/odoo/pgadmin-venv/bin/python3’, ‘-Im’, ‘ensurepip’, ‘–upgrade’, ‘–default-pip’]’ returned non-zero exit status 1.):
sudo apt-get install python3.6-venv
创建虚拟环境:
python3 -m venv pgadmin-venv
激活环境:
source pgadmin-venv/bin/activate
下载pgAdmin4:
wget https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v4.23/pip/pgadmin4-4.23-py3-none-any.whl
安装pgAdmin4:
pip3 install ./pgadmin4-4.23-py3-none-any.whl
如果下载pgAdmin4速度太慢,可以在本地翻墙下载,然后通过rz命令上传至服务器。
上传文件(需要安装sudo apt-get -y install lrzsz):
rz
安装pgAdmin4:
pip3 install ./pgadmin4-4.23-py3-none-any.whl

安装后,pgAdmin4的目录为:“/opt/odoo/pgadmin-venv/lib/python3.6/site-packages/pgadmin4”

给odoo用户添加权限(如果使用odoo用户运行,需要权限):
mkdir /var/lib/pgadmin
mkdir /var/log/pgadmin
chown -R odoo /var/lib/pgadmin
chown -R odoo /var/log/pgadmin

运行pgAdmin4:
pgadmin4
运行pgAdmin4后,根据命令提示,设邮箱和密码。
也可以通过完整路径运行:
/opt/odoo/pgadmin-venv/bin/pgadmin4

如果运行出错,可以查看日志:
cat /var/log/pgadmin/pgadmin4.log

 

创建服务文件

使用nano编辑器创建pgAdmin4的服务文件:
sudo nano /etc/systemd/system/pgadmin4.service
内容如下:

[Unit]
Description=pgadmin4


[Service]
Type=simple
SyslogIdentifier=odoo
PermissionsStartOnly=true
User=odoo
Group=odoo
ExecStart=/opt/odoo/pgadmin-venv/bin/pgadmin4
StandardOutput=journal+console


[Install]
WantedBy=multi-user.target

nano常用快捷键:ctrl+o保存文件(然后回车)、ctrl+c取消操作、ctrl+x退出编辑器。

创建服务后,通知systemd更新:
sudo systemctl daemon-reload
启动pgadmin4服务,并在系统开机后启动:
sudo systemctl enable --now pgadmin4

 

常用服务命令

查看服务状态:
sudo systemctl status pgadmin4
重启服务:
sudo systemctl restart pgadmin4
停止服务:
sudo systemctl stop pgadmin4
启动服务:
sudo systemctl start pgadmin4
查看服务日志:
sudo journalctl -u pgadmin4

 

配置域名和反向代理

在你的域名控制台中,添加pgAdmin4域名解析:

在宝塔控制面板中,添加pgAdmin4网站:

打开域名设置面板,点击反向代理菜单:

设置pgAdmin4反向代理(pgAdmin4默认端口位5050):

配置成功后即可访问:
http://pg.say2020.com

 

连接本地数据库

nano /etc/postgresql/10/main/postgresql.conf
查找修改:
listen_addresses = '*'
重启PostgreSql:
sudo service postgresql restart
修改数据库用户odoo的密码:
sudo -u postgres psql postgres
alter user odoo with password '你的密码';
\q
添加本地连接: