Published on Aug 28 2020 in Control Panels Databases Non-Java

To use Directadmin PostgreSQL plugin you will first need to ensure PostgreSQL server is installed as well as PostgreSQL support in PHP exists. See how you can install PostgreSQL 12 and build related PHP module in Ubuntu 18.04.

To install PostgreSQL run as root:

apt update
apt -y upgrade
reboot
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" | tee  /etc/apt/sources.list.d/pgdg.list
apt -y update
apt -y install postgresql-12 postgresql-client-12

A few checks:

systemctl is-enabled postgresql
su - postgres -c 'psql -c "SELECT version()"'
su - postgres -c 'psql -tA -c "SHOW data_directory;"'

Ensure listen_addresses = '*' is in /etc/postgresql/12/main/postgresql.conf and run systemctl restart postgresql if postgresql.conf has been modified.

grep -qP '^listen_addresses\s*=\s*'\''\*'\''' /etc/postgresql/12/main/postgresql.conf || \
sed -i -r "s|^\s*#?\s*(listen_addresses\s*=\s*).*|\1'*'|" /etc/postgresql/12/main/postgresql.conf

Enabling PostgreSQL support in default PHP

This is not needed for the plugin itself but for users who may need to access their postgres databases from PHP. First test for existence of libpq-fe.h:

[ -f `pg_config --includedir`/libpq-fe.h ] && echo "devel installed" || apt -y install libpq-dev

Then update configure.php73 (as we use 7.3 in this example) or whatever your main PHP version is:

cd /usr/local/directadmin/custombuild
./build used_configs | grep 'PHP (default) configuration' | awk '{print $NF}'

mkdir -p /usr/local/directadmin/custombuild/custom/php
\cp -fp /usr/local/directadmin/custombuild/configure/php/configure.php73 /usr/local/directadmin/custombuild/custom/php

Add your --with-pgsql= and --with-pdo-pgsql= parameters to custom/php/configure.php73 and build php. In this case ‘include’ directory is in /usr/pgsql-12 so we use this value:

pg_config --includedir
perl -0777 -i.bak -pe 's|^(\./configure \\)$(?!\s*--with-pgsql)|$1\n\t--with-pgsql=/usr/include/postgresql --with-pdo-pgsql=/usr/include/postgresql \\|ms' /usr/local/directadmin/custombuild/custom/php/configure.php73
./build php d

Similarly you can add PostgreSQL support to other php versions.

Installation of the plugin is the same as shown in screencast for Centos 7. A reply from the installer is shown below.

DirectAdmin PostgreSQL plugin