1、介绍

pgAdmin是PostgreSQL及其相关数据库管理系统的开源管理和开发平台。用Python和jQuery编写,它支持PostgreSQL中的所有功能。

您可以使用pgAdmin执行从编写基本SQL查询到监视数据库和配置高级数据库体系结构的所有操作。

既可以部署为web模式通过浏览器访问,也可以部署为桌面模式独立运行。

安装环境:centos7.8 + pgadmin4.15 + python3.8.1 + httpd2.4.41

2、下载pgadmin4

下载地址:https://www.postgresql.org/ftp/pgadmin/pgadmin4/

HGCMM使用的是4.15,文件名称:pgadmin4-4.15.tar.gz

3、安装python3.8.1

Centos7 编码编译python3.8

如果使用相对路径的python,可以不用做软连接和环境变量,只指定LD_LIBRARY_PATH即可

4、python安装依赖包

4.1、安装虚拟环境

#Python目录 /opt/python381
[root@baidu1 python381]# ./bin/pip3 install virtualenv#如果提示需要升级pip,那就按照命令升级
/opt/py381env/bin/python -m pip install --upgrade pip

4.2、创建虚拟环境

[root@baidu1 python381]# pwd
/opt/python381
[root@baidu1 python381]# ./bin/virtualenv -p ./bin/python3 --always-copy --clear /opt/py381env
created virtual environment CPython3.8.1.final.0-64 in 158mscreator CPython3Posix(dest=/opt/py381env, clear=False, no_vcs_ignore=False, global=False)seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/root/.local/share/virtualenv)added seed packages: pip==20.2.4, setuptools==50.3.2, wheel==0.35.1activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
[root@baidu1 python381]# 

--always-copy:可执行文件拷贝副本,而不是软链接。

4.3、进入虚拟环境

[root@baidu1 python381]# source /opt/py381env/bin/activate
(py381env) [root@baidu1 python381]# which python
/opt/py381env/bin/python
(py381env) [root@baidu1 python381]# which pip3
/opt/py381env/bin/pip3

4.4、安装pgAdmin及其依赖项

#修改2个依赖模块
(py381env) [root@baidu1 python381]# vi /opt/pgadmin4/requirements.txt #Werkzeug>=0.15.0
Werkzeug==0.16.0#psycopg2>=2.8
psycopg2-binary>=2.8#install
(py381env) [root@baidu1 python381]# pip3 install -r /opt/pgadmin4/requirements.txt
...
Successfully installed...#错误情况1
Collecting psycopg2>=2.8Using cached psycopg2-2.8.6.tar.gz (383 kB)ERROR: Command errored out with exit status 1:
Error: pg_config executable not found.
#解决办法(官方不在推荐下载psycopg2,使用psycopg2-binary替代,正在开发psycopg3)
psycopg2-binary>=2.8#错误情况2File "/opt/py381env/lib/python3.8/site-packages/flask_wtf/recaptcha/widgets.py", line 5, in <module>from werkzeug import url_encode
ImportError: cannot import name 'url_encode' from 'werkzeug' (/opt/py381env/lib/python3.8/site-packages/werkzeug/__init__.py)
#解决办法:Werkzeug==0.16.0

5、配置pgadmin4

5.1、创建pgadmin存储目录,日志/会话/存储

mkdir -p /var/lib/pgadmin4/sessions
mkdir -p /var/lib/pgadmin4/storage
mkdir -p /var/log/pgadmin4

将这些目录的所有权更改为非root用户和组。这是必要的,因为它们目前由root用户拥有,但我们将从非root用户拥有的虚拟环境安装pgAdmin,
安装过程涉及在这些目录中创建一些文件。但是,在安装之后,我们会将所有权更改为www-data用户和组,以便将其提供给Web:

chown -R see:see /var/lib/pgadmin4
chown -R see:see /var/log/pgadmin4

确保它具有允许其正确提供Web界面所需的权限和配置。
pgAdmin的主配置文件config.py,它将在任何其他配置文件之前被读取。其内容可用作可在pgAdmin的其他配置文件中指定的其他配置设置的参考点,但为避免无法预料的错误,您不应编辑config.py文件本身。
我们将对一个名为的新文件添加一些配置更改,该文件config_local.py将在主文件之后读取。

(py381env) [root@baidu1 python381]# vim /opt/pgadmin4/web/config_local.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'
SERVER_MODE = True

以下是这五个指令的作用:

  • LOG_FILE:这定义了将存储pgAdmin日志的文件。
  • SQLITE_PATH:pgAdmin将用户相关数据存储在SQLite数据库中,该指令将pgAdmin软件指向此配置数据库。由于此文件位于持久目录/var/lib/pgadmin4/下,因此升级后您的用户数据不会丢失。
  • SESSION_DB_PATH:指定将用于存储会话数据的目录。
  • STORAGE_DIR:定义pgAdmin将存储其他数据的位置,例如备份和安全证书。
  • SERVER_MODE:设置此指令以True告知pgAdmin在服务器模式下运行,而不是桌面模式。
(py381env) [root@baidu1 python381]# python3 /opt/pgadmin4/web/setup.py
Email address: 345731923@qq.com
Password:
Retype password:
...
pgAdmin 4 - Application Initialisation
======================================#退出虚拟环境
(py381env) [root@baidu1 python381]# deactivate
[root@baidu1 python381]# #测试(只限本机),浏览器访问127.0.0.1:5050
(py381env) [root@baidu1 python381]# python3 /opt/pgadmin4/web/pgAdmin4.py

这样,pgAdmin就配置完成了。

6、配置Apache httpd

6.1、pip安装mod_wsgi

yum install -y httpd httpd-devel
[root@baidu1 python381]# pwd
/opt/python381
[root@baidu1 python381]# source /opt/py381env/bin/activate
(py381env) [root@baidu1 python381]# pip3 install mod_wsgi
Collecting mod_WsgiUsing cached mod_wsgi-4.7.1-cp38-cp38-linux_x86_64.whl
Installing collected packages: mod-Wsgi
Successfully installed mod-Wsgi-4.7.1#wsgi位置
(py381env) [root@baidu1 python381]# mod_wsgi-express install-module
LoadModule wsgi_module "/usr/lib64/httpd/modules/mod_wsgi-py38.cpython-38-x86_64-linux-gnu.so"
WSGIPythonHome "/opt/python381"
(py381env) [root@baidu1 python381]# 

6.2、源码编译Apache httpd

Apache httpd 源码编译安装

6.3、修改httpd.conf

<IfModule unixd_module>
#前面授权的用户
User see
Group see# for pgadmin4
LoadModule wsgi_module /usr/lib64/httpd/modules/mod_wsgi-py38.cpython-38-x86_64-linux-gnu.so
WSGIPythonHome "/opt/py381env"
Listen 6060Define ROOT "/opt"
<VirtualHost *:6060>WSGIScriptAlias / ${ROOT}/pgadmin4/web/pgAdmin4.wsgiWSGIDaemonProcess pgadmin processes=1 threads=25 <Directory ${ROOT}/pgadmin4/web>Require all granted</Directory>
</VirtualHost>

保存退出。

7、启动

7.1、使用普通用户启动

sudo ./bin/apachectl -f ./conf/httpd.conf -k start#页面报错查看日志
tail -f ./logs/error.log

7.2、打开浏览器,输入http://localhost:6060即可看到pgadmin4界面

#Apache httpd日志错误:the CSRF token do not match

解决办法:这种情况一般出现在离线版的pgadmin,原因是Apache httpd依赖apr、apr-util、pcre,如果环境变量找不到这几个就会出现token无法验证的情况。

#[mpm_worker:alert] [pid 7967:tid 281473025372592] (11)Resource temporarily unavailable: AH03142: apr_thread_create: unable to create worker thread

解决办法:环境变量没有配置apr、apr-uitl、prce的lib

[wsgi:alert] [pid 15183:tid 281472937192016] (13)Permission denied: mod_wsgi (pid=15183): Couldn't bind unix domain socket '/run/httpd/wsgi.15183.0.1.sock'.

解决办法:没有权限设置sock文件,设置一个属性即可。WSGISocketPrefix /var/run/wsgi

详情见:https://modwsgi.readthedocs.io/en/master/user-guides/configuration-issues.html

pgadmin4 本地安装部署相关推荐

  1. Windows本地安装部署easymock

    在前后端分离的开发方式下,后端如果暂时没数据,前端为了开发方便可以使用模拟数据来对付一下,目前提供模拟数据的平台已经有不少,大多数都是自带Api管理的,比如Yapi.sosoApi.eoLinker. ...

  2. windows本地安装部署 Easy Mock

    文章目录 1. MongoDB.Redis安装 1.1 MongoDB安装 1.2 Redis安装 2 安装部署Easy-Mock 在前后端分离的开发方式下,后端如果暂时没数据,前端为了开发方便可以使 ...

  3. windows本地安装部署 Easy-Mock

    目录 一.背景: 二.准备: 三.安装: 3-1.先装node.js 3-2.安装MongoDB 3-3.Redis安装 四.部署Easy-Mock 集万家之精华 最详细的本地部署 Easy-Mock ...

  4. win10本地安装部署ClickHouse

    ClickHouse可以在任何具有x86_64,AArch64或PowerPC64LE CPU架构的Linux,FreeBSD或Mac OS X上运行. 目前在win10系统上面运行,需要安装win1 ...

  5. 2021年大数据Flink(三):​​​​​​​Flink安装部署 Local本地模式

    目录 Flink安装部署 Local本地模式 原理 操作 测试 Flink安装部署 Flink支持多种安装模式 - Local-本地单机模式,学习测试时使用 - Standalone-独立集群模式,F ...

  6. 012 基于以太访的本地文件hash存储查找Dapp实例(合约安装部署)

    文章是我一边学习区块链技术,一边记录下来的内容,所有内容都经过测试,其实是我为了给自己留的参考文档,呵呵 下面开始进行一个Dapp的开发,请使用root用户操作. 1.学习总结 要开发一个Dapp需要 ...

  7. [AI画图本地免安装部署]Windows 10 Nvidia平台部署AUTOMATIC1111 版本 stable diffusion 免安装版

    文章目录 [AI画图本地免安装部署]Windows 10 Nvidia平台部署AUTOMATIC1111 版本 stable diffusion 免安装版 1. 网络准备 1. 下载资源 2. 开始部 ...

  8. erpnext v13 安装部署 + VSCode本地开发环境配置

    ERPNext Version-13 安装生产环境 参考链接 https://discuss.erpnext.com/t/install-frappe-erpnext-v13-beta-from-sc ...

  9. PostgreSQL 安装部署

    文章目录 前言 官网 服务器&环境说明 客户端 1.Docker 部署 1.1.自定义网络 1.2.部署服务 1.3.部署客户端 pgadmin 2.yum 安装 安装日志插件 wal2jso ...

  10. 【SVN】1. SVN 安装部署

    一. SVN概述 1. SVN 简介   Subversion 版本控制系统 简称 SVN.   SVN 是一个跨平台开放源代码的集中式版本控制系统,可以实现文件及目录的保存及版本回溯.   SVN ...

最新文章

  1. gentoo 安装opencv
  2. Java多线程间的通信
  3. Magicodes.IE 2.5版本发布
  4. Idea的debug断点调试
  5. MapReduce中的排序(附代码)
  6. JVM与计算机之间的关系
  7. 5 添加数据获得id_D3库实践笔记之元素定位与数据绑定 |可视化系列33
  8. DM642图像处理程序的主要结构
  9. 计算机配件详情图解,电脑装机教程,详细教您怎么组装电脑
  10. python replace_Python replace()方法
  11. 游戏开发者“谈虎色变”的游戏审批流程到底是怎么一回事?
  12. matlab串联矩阵如何表示,MATLAB串联矩阵
  13. *关键字retry:很像goto语句,跳到标记处
  14. mysql记录历史价格_mysql历史订单
  15. homeassistant几种安装方式对比,树莓派4docker安装记录
  16. VueCLI(脚手架)快速使用
  17. jqGrid 表格底部汇总、合计行footerrow处理
  18. 利用python爬取某直播网站实时弹幕并分析
  19. Octopus FS 论文阅读 (一)
  20. J2EE程序框架学习总结

热门文章

  1. 鸿蒙天钟壁纸,鸿蒙2.0桌面小工具时钟,日历显示不出来
  2. 电子科大+矩阵理论+真题总结
  3. Win10屏幕自带的截图,同时保存多个截图
  4. 坦克大战小游戏的实现
  5. 子网掩码计算java,JAVA获取子网掩码源代码
  6. 低启动0.7V升压芯片
  7. 无线怎么测试软件,WiFi分析仪软件
  8. 【FiddlerScript】利用FiddlerScript抓包保利威下载
  9. vue 日期多选插件
  10. java将数字转为大写(1转为一)