pgadmin4 本地安装部署
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 本地安装部署相关推荐
- Windows本地安装部署easymock
在前后端分离的开发方式下,后端如果暂时没数据,前端为了开发方便可以使用模拟数据来对付一下,目前提供模拟数据的平台已经有不少,大多数都是自带Api管理的,比如Yapi.sosoApi.eoLinker. ...
- windows本地安装部署 Easy Mock
文章目录 1. MongoDB.Redis安装 1.1 MongoDB安装 1.2 Redis安装 2 安装部署Easy-Mock 在前后端分离的开发方式下,后端如果暂时没数据,前端为了开发方便可以使 ...
- windows本地安装部署 Easy-Mock
目录 一.背景: 二.准备: 三.安装: 3-1.先装node.js 3-2.安装MongoDB 3-3.Redis安装 四.部署Easy-Mock 集万家之精华 最详细的本地部署 Easy-Mock ...
- win10本地安装部署ClickHouse
ClickHouse可以在任何具有x86_64,AArch64或PowerPC64LE CPU架构的Linux,FreeBSD或Mac OS X上运行. 目前在win10系统上面运行,需要安装win1 ...
- 2021年大数据Flink(三):Flink安装部署 Local本地模式
目录 Flink安装部署 Local本地模式 原理 操作 测试 Flink安装部署 Flink支持多种安装模式 - Local-本地单机模式,学习测试时使用 - Standalone-独立集群模式,F ...
- 012 基于以太访的本地文件hash存储查找Dapp实例(合约安装部署)
文章是我一边学习区块链技术,一边记录下来的内容,所有内容都经过测试,其实是我为了给自己留的参考文档,呵呵 下面开始进行一个Dapp的开发,请使用root用户操作. 1.学习总结 要开发一个Dapp需要 ...
- [AI画图本地免安装部署]Windows 10 Nvidia平台部署AUTOMATIC1111 版本 stable diffusion 免安装版
文章目录 [AI画图本地免安装部署]Windows 10 Nvidia平台部署AUTOMATIC1111 版本 stable diffusion 免安装版 1. 网络准备 1. 下载资源 2. 开始部 ...
- erpnext v13 安装部署 + VSCode本地开发环境配置
ERPNext Version-13 安装生产环境 参考链接 https://discuss.erpnext.com/t/install-frappe-erpnext-v13-beta-from-sc ...
- PostgreSQL 安装部署
文章目录 前言 官网 服务器&环境说明 客户端 1.Docker 部署 1.1.自定义网络 1.2.部署服务 1.3.部署客户端 pgadmin 2.yum 安装 安装日志插件 wal2jso ...
- 【SVN】1. SVN 安装部署
一. SVN概述 1. SVN 简介 Subversion 版本控制系统 简称 SVN. SVN 是一个跨平台开放源代码的集中式版本控制系统,可以实现文件及目录的保存及版本回溯. SVN ...
最新文章
- gentoo 安装opencv
- Java多线程间的通信
- Magicodes.IE 2.5版本发布
- Idea的debug断点调试
- MapReduce中的排序(附代码)
- JVM与计算机之间的关系
- 5 添加数据获得id_D3库实践笔记之元素定位与数据绑定 |可视化系列33
- DM642图像处理程序的主要结构
- 计算机配件详情图解,电脑装机教程,详细教您怎么组装电脑
- python replace_Python replace()方法
- 游戏开发者“谈虎色变”的游戏审批流程到底是怎么一回事?
- matlab串联矩阵如何表示,MATLAB串联矩阵
- *关键字retry:很像goto语句,跳到标记处
- mysql记录历史价格_mysql历史订单
- homeassistant几种安装方式对比,树莓派4docker安装记录
- VueCLI(脚手架)快速使用
- jqGrid 表格底部汇总、合计行footerrow处理
- 利用python爬取某直播网站实时弹幕并分析
- Octopus FS 论文阅读 (一)
- J2EE程序框架学习总结