Установка Pgadmin4 на сервере с ispmanager 6
Для управления PostgreSQL в панели ispmanager 6, можно использовать веб-приложение Pgadmin4.
Авторизация в Pgadmin4 выполняется под одним пользователем, после чего можно подключиться к PostrgreSQL под нужным пользователем.
Сначала потребуется установить само приложение Pgadmin4:
apt install pgadmin4-web
rpm install pgadmin4-web
Сконфигурируйте установленный Pgadmin4:
/usr/pgadmin4/bin/setup-web.shИзмените стандартный порт Pgadmin4 в файле config_local.py, указав директиву DEFAULT_SERVER_PORT. Например, так будет выглядеть строка для порта 3000:
DEFAULT_SERVER_PORT = 3000Создайте конфигурационный файл для Pgadmin4 в каталоге Nginx:
touch /etc/nginx/vhosts-includes/pgadmin4-nginx.confРазместите следующую конфигурацию в созданном файле:
location = /pgadmin4 {
return 301 /pgadmin4/;
}
location /pgadmin4/ {
proxy_pass http://127.0.0.1:3000/pgadmin4/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Script-Name /pgadmin4;
proxy_redirect http://127.0.0.1:3000/pgadmin4/ /pgadmin4/;
proxy_redirect http://127.0.0.1:3000 /;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 300s;
proxy_connect_timeout 75s;
proxy_cookie_path /pgadmin4 /pgadmin4;
}Если вы указали другой порт для работы Pgweb, измените его для директивы proxy_pass.
Перезапустите Nginx:
service nginx restartТеперь веб-интерфейс Pgadmin4 доступен по пути /pgadmin4 для адреса сервера и любого сайта в этой панели, например https://192.168.0.10/pgadmin4 или https://domain.com/pgadmin4.
Чтобы создать кнопку для перехода веб-интерфейс в разделе Все разделы, создайте два файла:
touch /usr/local/mgr5/etc/xml/ispmgr_mod_pgadmin.xml
touch /usr/local/mgr5/addon/myaddon.shВ файле /usr/local/mgr5/etc/xml/ispmgr_mod_pg.xml разместите следующую конфигурацию:
<?xml version="1.0" encoding="UTF-8"?>
<mgrdata>
<mainmenu level="admin+">
<modernmenu>
<node name="my_pgadmin4" customicon="/manimg/icons/pg.svg">
<node name="open_pgadmin4" function="https://<ip-адрес_сервера>/pgadmin4" />
</node>
</modernmenu>
</mainmenu>
<handler name="myaddon.sh" type="xml">
<func name="open_pgadmin4" />
</handler>
<lang name="en">
<messages name="desktop">
<msg name="modernmenu_my_pgweb">PostgreSQL</msg>
<msg name="modernmenu_open_pgadmin4">Pgadmin4</msg>
</messages>
</lang>
</mgrdata>В значении function можно использовать любой сайт, который есть в панели - в этом случае Pgadmin4 будет открываться по адресу этого сайта и будет защищен SSL-сертификатом сайта, если он установлен.
В файл /usr/local/mgr5/addon/myaddon.sh запишите только одну строку:
#!/bin/bashПерезапустите панель:
/usr/local/mgr5/sbin/mgrctl -m ispmgr -R