Connecting Postgresql 9.0 and phpPgAdmin-5.0.3 to cPanel in Centos 6

After installing PostgreSql 9.0, compile php and apache using WHM > Easyapache --with-pgsql option

For instructions on installing PostgreSQL 9.0 in Centos 6, click here

Download phpPgAdmin 5.0.3.tar.gz to this location:

Extract the dowloaded file and rename the extracted phpPgAdmin-5.0.3 directed to phppgadmin.

Edit config.inc.php located in /usr/local/cpanel/base/3rdparty/phpPgAdmin/conf/config.inc.php

Find the line $conf['extra_login_security'] = true;

Set it to false.

Restart postgresql.
In WHM go to Restart Services > SQL Server (PgSQL)
Or in the console prompt type:
service postgresql-9.0 restart

I also restarted Apache
service httpd restart

At this point, the phpPgAdmin link shall be functional - but not the PostgreSQL link. If yo click it, cPanel will warn you that PostgreSQL is


PostgreSQL may be running but cPanel cannot find the data files.

Additional steps need to be done to connect Postgres to cPanel.

Edit pg_hba.conf located in /var/lib/pgsql/9.0/data
vi /var/lib/pgsql/9.0/data/pg_hba.conf
Find the following lines:
local all all md5
host all all md5

Change md5 to trust, thus:
local all all md5
host all all md5

This will be only temporary. In the succeeding steps "trust" shall be reverted to "m5" automatically.

Restart postgresql.

Go to SQL Services > Postgres Config

At this point, you are not ready yet to click the configuration buttons. If you do, WHM will warn that data directory could not be found.

Starting Postgresql version 9, postgresql installs files in different location and cPanel expects to find them in the old install locations.

So, we need to create symlinks from the new location to the old locations where cPanel expects to find the files.

Type the following in the console prompt (This has no equivalent in WHM):
ln -s /var/lib/pgsql/9.0/data /var/lib/pgsql
ln -s /var/lib/pgsql/9.0/backups /var/lib/pgsql

Then you can click the Install Config button and get a success confirmation message from WHM.

Re-enter the Postgres password and click Change Password.

Restart Postgresql.

If you check pg_hba.conf, you will find these llines again:
local all all md5
host all all md5

Note that trust has been reverted to md5.

Now you can access Postgresql 9.0 databases from cPanel using the PostgreSQL Databases or the phpPgAdmin link.


Installing Drush v3 in Centos 6

Here are notes I gathered on steps that successfully installed Drush version 3 in my Centos 6.

Move to home dir
cd ~

Remove current drush (if existent)
rm -rf ~/.drush/

Create drush directory (and hide it)
mkdir ~/.drush/

Move to new dir
cd ~/.drush/

Get Drush v3
curl -C - -O -s http://ftp.drupal.org/files/projects/drush-All-versions-3.0.tar.gz

Extract Drush v3
tar -xf drush*.tar.gz

Bin Drush tar
rm -f drush-All*.tar.gz

Pear install console_table
cd drush/includes
curl -C - -O -s http://download.pear.php.net/package/Console_Table-1.1.3.tgz

Extract Pear
tar -xf Console_Table*.tgz

Copy the file
cp Console_Table-1.1.3/Table.php table.inc

rm -r Console_Table-1.1.3
rm -f Console_Table*.tgz

Make drush command executable
cd ~/.drush/
chmod u+x drush/drush

Alias drush and put in bash profile
echo "alias drush='~/.drush/drush/drush'" >> ~/.bash_profile

'Source' the .bash_profile file so updates are made
source ~/.bash_profile

Make sure that we alias drush just in case source does not work
alias drush='~/.drush/drush/drush'

You should see three OK(s) below if the steps below properly executed.

Update Drush using Drush
~/.drush/drush/drush dl drush

Update drush_make and provision in drush/commands
~/.drush/drush/drush dl drush_make
~/.drush/drush/drush dl provision

Move updated additions to correct directory
mv ~/.drush/provision ~/.drush/drush/commands/
mv ~/.drush/drush_make ~/.drush/drush/commands/

You are done and drush is ready to use.


How to connect Postgresql 9.0 to an existing Webmin

If you installed Postgresql 9.0 or upgraded Postgresql to the latest version in a Linux system that has an existing Webmin application, you need to update Webmin using Module configuration for Postgresql.

Postgresql 9.0 installs files in directories different from its earlier versions.'

Here is a checklist of what need to be changed using Webmin's module configuration:

Path to psql command: /usr/pgsql-9.0/bin/psql

Command to start PostgreSQL: if [ -r /etc/rc.d/init.d/rhdb ]; then /etc/rc.d/init.d/rhdb start; else /etc/rc.d/init.d/postgresql-9.0 start; fi

Command to stop PostgreSQL: if [ -r /etc/rc.d/init.d/rhdb ]; then /etc/rc.d/init.d/rhdb stop; else /etc/rc.d/init.d/postgresql-9.0 stop; fi

Command to initialize PostgreSQL: if [ -r /etc/rc.d/init.d/rhdb ]; then /etc/rc.d/init.d/rhdb start; else /etc/rc.d/init.d/postgresql-9.0 initdb ; /etc/rc.d/init.d/postgresql-9.0 start; fi

Path to postmaster PID file: /var/run/postmaster-9.0.pid

Paths to host access config file: /var/lib/pgsql/9.0/data/pg_hba.conf

Default backup repository directory: /var/lib/pgsql/9.0/backups

Restart Webmin.

A fresh installation of Webmin however, automatically recognizes an existing Postgresql 9.0 and adjusts the Postgres paths in the initial module configuration, so the steps listed above are no longer necessary.


Installing Postgresql 9.0 in Centos 6

Installing Postgresql 9.0 in Centos 6 is done in few easy steps.

First, download the Postgresql 9.0 RPM package:
wget http://yum.pgrpms.org/9.0/redhat/rhel-6-x86_64/pgdg-centos90-9.0-5.noarch.rpm

Install the package:
rpm -i pgdg-centos90-9.0-5.noarch.rpm

To avoid conflict with older postgresql packages existing in the Centos distribution, you must tell yum to exclude these in the installation. You must edit the CentOS-Base.repo file:
vi /etc/yum.repos.d/CentOS-Base.repo

Add this line at the [base] section:

Verify that the new package is active:
yum list

Then yum install postgres:
yum install postgresql90 postgresql90-devel postgresql90-server postgresql90-libs

Initialize postgresql:
service postgresql-9.0 initdb

Then start postgresql:
service postgresql-9.0 start

You are done with the installation.

The configuration that I you still need to do is to is edit the postgresql.conf file located in /var/lib/pgsql/9.0/data/ Be sure to add this line in the config:
listen_addresses = '*'

To enable remote access, I added this to the pg_hba.conf located in the same directory:
host all all md5