在CentOS 7和Fedora 33/32/31/30上安装pgAdmin 4

时间:2020-02-23 14:32:10  来源:igfitidea点击:

pgAdmin是领先的开源功能丰富的PostgreSQL管理和开发平台,可在Linux,Unix,Mac OS X和Windows上运行。pgAdmin可用于管理PostgreSQL 9.2及更高版本。随着pgAdmin 4的发行,从Bootstrap 3迁移到Bootstrap4. 在本文中,我们将在CentOS 7和Fedora 33/32/31/30上安装pgAdmin 4.

CentOS 7/Fedora 33/32/31/30上的pgAdmin4要求

我们需要先在系统上安装PostgreSQL,然后才能安装pgAdmin4.

在CentOS 7上安装pgAdmin 4

在安装PostgreSQL之后,我们可以在CentOS 7上开始安装pgAdmin4. 我们需要添加PostgreSQL RPM存储库,这应该在安装PostgreSQL时完成。

sudo yum -y install epel-release
sudo yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

然后安装pgAdmin软件包:

sudo yum -y update
sudo yum -y install pgadmin4

安装pgAdmin Fedora

通过运行以下命令将PostgreSQL Yum存储库添加到Fedora系统:

Fedora 33:

sudo dnf install https://download.postgresql.org/pub/repos/yum/reporpms/F-33-x86_64/pgdg-fedora-repo-latest.noarch.rpm

Fedora 32:

sudo dnf install https://download.postgresql.org/pub/repos/yum/reporpms/F-32-x86_64/pgdg-fedora-repo-latest.noarch.rpm

Fedora 31:

sudo dnf install https://download.postgresql.org/pub/repos/yum/reporpms/F-31-x86_64/pgdg-fedora-repo-latest.noarch.rpm

Fedora 30:

sudo dnf install https://download.postgresql.org/pub/repos/yum/reporpms/F-30-x86_64/pgdg-fedora-repo-latest.noarch.rpm

Fedora 29:

sudo dnf install https://download.postgresql.org/pub/repos/yum/reporpms/F-29-x86_64/pgdg-fedora-repo-latest.noarch.rpm

添加存储库后,更新系统软件包,然后安装pgadmin4

sudo dnf -y update && sudo dnf -y install pgadmin4

安装的依赖项中有" pgadmin4-web"和" httpd" Web服务器。

在CentOS 7/Fedora 33/32/31/30上配置pgAdmin 4

现在我们已经安装了pgAdmin 4,让我们对其进行配置。

1.启动并启用httpd服务以在启动时启动

sudo systemctl start httpd && sudo systemctl enable httpd

我们可以通过运行以下命令确认服务状态:

sudo systemctl status httpd

2.重命名pgAdmin Apache配置示例

sudo cp /etc/httpd/conf.d/pgadmin4.conf.sample /etc/httpd/conf.d/pgadmin4.conf

3.编辑文件以添加VirtualHost部分,如下所示:

对于CentOS 7:

<VirtualHost *:80>
ServerName pgadmin.example.com
LoadModule wsgi_module modules/mod_wsgi.so
WSGIDaemonProcess pgadmin processes=1 threads=25
WSGIScriptAlias /pgadmin4 /usr/lib/python2.7/site-packages/pgadmin4-web/pgAdmin4.wsgi

<Directory /usr/lib/python2.7/site-packages/pgadmin4-web
	WSGIProcessGroup pgadmin
	WSGIApplicationGroup %{GLOBAL}
	<IfModule mod_authz_core.c>
		# Apache 2.4
		Require all granted
	</IfModule>
	<IfModule !mod_authz_core.c>
		# Apache 2.2
		Order Deny,Allow
		Deny from All
		Allow from 127.0.0.1
		Allow from ::1
	</IfModule>
</Directory>
</VirtualHost>

对于Fedora 31/30/29无需更改

# pgAdmin VirtualHost
LoadModule wsgi_module modules/mod_wsgi.so
WSGIDaemonProcess pgadmin processes=1 threads=25
WSGIScriptAlias /pgadmin4 /usr/lib/python3.7/site-packages/pgadmin4-web/pgAdmin4.wsgi

<Directory /usr/lib/python3.7/site-packages/pgadmin4-web
	WSGIProcessGroup pgadmin
	WSGIApplicationGroup %{GLOBAL}
	<IfModule mod_authz_core.c>
		# Apache 2.4
		Require all granted
	</IfModule>
	<IfModule !mod_authz_core.c>
		# Apache 2.2
		Order Deny,Allow
		Deny from All
		Allow from 127.0.0.1
		Allow from ::1
	</IfModule>
</Directory>

确认配置语法以防止任何错误,然后重新启动httpd服务。

$sudo httpd -t
Syntax OK
$sudo systemctl restart httpd

4.创建pgAdmin数据目录:

sudo mkdir -p /var/lib/pgadmin4//var/log/pgadmin4/

5.编辑config_local.py并添加以下设置。在大多数情况下,默认文件位置应适当:

对于CentOS 7:

sudo vi /usr/lib/python2.7/site-packages/pgadmin4-web/config_distro.py

对于Fedora 30/29:

sudo vi /usr/lib/python3.7/site-packages/pgadmin4-web/config_distro.py

加:

LOG_FILE = '/var/log/pgadmin4/pgadmin4.log'
SQLITE_PATH = '/var/lib/pgadmin4/pgadmin4.db'
SESSION_DB_PATH = '/var/lib/pgadmin4/sessions'
STORAGE_DIR = '/var/lib/pgadmin4/storage'

6.运行以下命令创建配置数据库:

对于CentOS 7:

sudo python /usr/lib/python2.7/site-packages/pgadmin4-web/setup.py

对于Fedora 30/29:

sudo python3 /usr/lib/python3.7/site-packages/pgadmin4-web/setup.py

这将要求我们输入用于初始pgAdmin用户帐户的"电子邮件地址"和"密码"。

Email address: theitroad@localhost 
Password: <INPUT PASSWORD>
Retype password:<Confirm PASSWORD>
pgAdmin 4 - Application Initialisation
======================================

将pgAdmin目录的权限设置为apache用户

sudo chown -R apache:apache /var/lib/pgadmin4 /var/log/pgadmin4

配置SELinux

如果我们以强制模式运行SELinux,请创建并应用策略以允许Apache用户访问pgAdmin目录。

sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/lib/pgadmin4(/.*)?"
sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/log/pgadmin4(/.*)?"
sudo restorecon -R /var/lib/pgadmin4/
sudo restorecon -R /var/log/pgadmin4/

重新启动httpd服务。

sudo systemctl restart httpd

访问pgAdmin 4 Web界面

如果我们有活动的防火墙服务,请允许http端口

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload

打开" http://pgadmin.example.com/pgadmin4"以使用上面在步骤" 6"中创建的凭据登录pgAdmin。

在pgAdmin的第一页上,单击"添加新服务器",添加一个PostgreSQL服务器以使用pgAdmin进行管理。这可以是本地或者远程PostgreSQL服务器。

在"常规"部分下,为服务器命名和描述。

在Connectiontab下,提供访问详细信息数据库主机,数据库用户和密码。

完成后,单击"保存"按钮以保存配置。如果成功添加服务器,则该名称将出现在左侧边栏中。选择服务器以查看数据库摘要信息并进行更改。