You are on page 1of 9

7/22/2014 How To Install PostgreSQL 9.3 And phpPgAdmin In CentOS 6.

5 | Unixmen

How To Install PostgreSQL 9.3 And


phpPgAdmin In CentOS 6.5
by SK

Share this Article: 251 2 19 0 0 1

PostgreSQL is a powerful, open-source object-relational database system. It runs on all major


operating systems, including Linux, UNIX (AIX, BSD, HP-UX, SGI IRIX, Mac OS, Solaris, Tru64), and
Windows OS. In this handy tutorial, let us see how to install PostgreSQL on CentOS 6.5 server. This
tutorial is same for other RPM based distros like RHEL/Scientific Linux 6.x and Fedora.

Install PostgreSQL
First, add the PostgreSQL repository depending upon your server architecture.

For 32bit:

rpm -Uvh http://yum.postgresql.org/9.3/redhat/rhel-6-i386/pgdg-centos93-9.3-1.noarch.rpm

For 64bit:

rpm -Uvh http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-centos93-9.3-1.noarch.rpm

For other distros, head over to the following link and install the relevant repository.

http://www.unixmen.com/install-postgresql-9-3-phppgadmin-centos-6-5/ 1/9
7/22/2014 How To Install PostgreSQL 9.3 And phpPgAdmin In CentOS 6.5 | Unixmen

PostgreSQL 9.3 RPM Repository

Update the repository list using command:

yum update

Now, Install postgresql with the following command:

yum install postgresql93-server postgresql93-contrib

Initialize postgresql database using following command:

service postgresql-9.3 initdb

Then, start postgresql service and make it to start automatically on every reboot.

/etc/init.d/postgresql-9.3 start
chkconfig postgresql-9.3 on

Next, adjust iptables to access postgresql from outbound.

vi /etc/sysconfig/iptables

Add the following line:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT

Save and exit the file. Restart iptables service.

service iptables restart

Access PostgreSQL command prompt


The default database name and database user are postgres. Switch to postgres user to perform
postgresql related operations:

su - postgres

To login to postgresql, enter the command:

psql
http://www.unixmen.com/install-postgresql-9-3-phppgadmin-centos-6-5/ 2/9
7/22/2014 How To Install PostgreSQL 9.3 And phpPgAdmin In CentOS 6.5 | Unixmen

psql (9.3.4)
Type "help" for help.

postgres=#

To exit from posgresql, type \q.

Set postgres user password:

Login to postgresql and set postgres password with following command:

postgres=# \password postgres


Enter new password:
Enter it again:
postgres=# \q

To install PostgreSQL Adminpack, enter the command in postgresql prompt:

postgres=# CREATE EXTENSION adminpack;


CREATE EXTENSION

Create New User and Database


For example, here I create a new user called senthil with password centos and database called
mydb.

Switch to postgres user with command:

su - postgres

Create user senthil.

$ createuser senthil

Create database:

$ createdb mydb

Set password and Grant access to the database mydb for senthil:

$ psql

http://www.unixmen.com/install-postgresql-9-3-phppgadmin-centos-6-5/ 3/9
7/22/2014 How To Install PostgreSQL 9.3 And phpPgAdmin In CentOS 6.5 | Unixmen

psql (9.3.4)
Type "help" for help.

postgres=# alter user senthil with encrypted password 'centos';


ALTER ROLE

postgres=# grant all privileges on database mydb to senthil;


GRANT
postgres=#

Delete Users and Databases


To delete the database, switch to postgres user:

su - postgres

Enter command:

$ dropdb <database-name>

To delete a user, enter the following command:

$ dropuser <user-name>

Configure PostgreSQL-MD5 Authentication


By default, Posgresql uses ident authentication, so that the local system users can be granted
access to databases own by them. If you want to set MD5 authentication to require users to enter
passwords.

Open up the /var/lib/pgsql/9.3/data/pg_hba.conf file:

vi /var/lib/pgsql/9.3/data/pg_hba.conf

Add or Modify the lines as shown below

[...]
# TYPE DATABASE USER ADDRESS METHOD

# "local" is for Unix domain socket connections only


local all all md5
# IPv4 local connections:
http://www.unixmen.com/install-postgresql-9-3-phppgadmin-centos-6-5/ 4/9
7/22/2014 How To Install PostgreSQL 9.3 And phpPgAdmin In CentOS 6.5 | Unixmen

host all all 127.0.0.1/32 md5


host all all 192.168.1.0/24 md5
# IPv6 local connections:
host all all ::1/128 md5
[...]

Restart postgresql service to apply the changes:

/etc/init.d/postgresql-9.3 restart

Configure PostgreSQL-Configure TCP/IP


By default, TCP/IP connection is disabled, so that the users from another computers cant access
postgresql. To allow to connect users from another computers, Edit
file/var/lib/pgsql/9.3/data/postgresql.conf:

vi /var/lib/pgsql/9.3/data/postgresql.conf

Find the lines:

[...]
#listen_addresses = 'localhost'
[...]
#port = 5432
[...]

Uncomment both lines and set the IP address of your postgresql server or set * to listen from all
clients as shown below:

listen_addresses = '*'
port = 5432

Restart postgresql service to save changes:

/etc/init.d/postgresql-9.3 restart

Manage PostgreSQL with phpPgAdmin


phpPgAdmin is a web-based administration utility written in PHP for managing PosgreSQL.

phpPgAdmin is available only in PostgreSQL RPM repository. If you didnt add PostgreSQL repository,
you should add EPEL repository.
http://www.unixmen.com/install-postgresql-9-3-phppgadmin-centos-6-5/ 5/9
7/22/2014 How To Install PostgreSQL 9.3 And phpPgAdmin In CentOS 6.5 | Unixmen

Follow the below link to install EPEL repository on CentOS.

Install EPEL repository on CentOS/RHEL/Scientific Linux 6

Update the repository using command:

yum update

Now, Install phpPgAdmin, enter the following command:

yum install phpPgAdmin httpd

phpPgAdmin is case sensitive. Use upper and lower cases as shown in the above command.

By default, you can access phppgadmin usinghttp://localhost/phpPgAdmin from your local system
only. To access remotely, do the following.

Open up the file /etc/httpd/conf.d/phpPgAdmin.conf:

vi /etc/httpd/conf.d/phpPgAdmin.conf

Find the line:

deny from all

And, change it to look like below.

allow from all

Start or Restart Apache service:

service httpd start


chkconfig httpd on

Configure phpPgAdmin
open the file /etc/phpPgAdmin/config.inc.php:

vi /etc/phpPgAdmin/config.inc.php

Find the following line:

http://www.unixmen.com/install-postgresql-9-3-phppgadmin-centos-6-5/ 6/9
7/22/2014 How To Install PostgreSQL 9.3 And phpPgAdmin In CentOS 6.5 | Unixmen

$conf['servers'][0]['host'] = '';

Change it as shown below:

$conf['servers'][0]['host'] = 'localhost';

And find the line:

$conf['extra_login_security'] = true;

Change the value to false:

$conf['extra_login_security'] = false;

Find the line:

$conf['owned_only'] = false;

Set the value as true.

$conf['owned_only'] = true;

Save and close the file. Restart postgresql service and Apache services.

/etc/init.d/postgresql-9.3 restart
service httpd restart

Now open your browser and navigate to http://ip-address/phpPgAdmin. You will be pleased
when you see the following screen.

http://www.unixmen.com/install-postgresql-9-3-phppgadmin-centos-6-5/ 7/9
7/22/2014 How To Install PostgreSQL 9.3 And phpPgAdmin In CentOS 6.5 | Unixmen

Login with users that youve created earlier. I already have created a user called senthil with
password centos before, so I log in with user senthil.

http://www.unixmen.com/install-postgresql-9-3-phppgadmin-centos-6-5/ 8/9
7/22/2014 How To Install PostgreSQL 9.3 And phpPgAdmin In CentOS 6.5 | Unixmen

This is how my phpPgAdmin dashboard looked.

Thats it. Now youll able to perform create, delete and alter databases graphically using phpPgAdmin
easily.

For questions please refer to our Q/A forum at :http://ask.unixmen.com/

http://www.unixmen.com/install-postgresql-9-3-phppgadmin-centos-6-5/ 9/9

You might also like