Status: Deprecated
This article covers a version of Ubuntu that is no longer supported. If you are currently operate a server running Ubuntu 12.04, we highly recommend upgrading or migrating to a supported version of Ubuntu:
Upgrade to Ubuntu 14.04.
Upgrade from Ubuntu 14.04 to Ubuntu 16.04
Migrate the server data to a supported version
Reason:
Ubuntu 12.04 reached end of life (EOL) on April 28, 2017 and no longer receives security patches or updates. This guide is no longer maintained.
See Instead:
This guide might still be useful as a reference, but may not work on other Ubuntu releases. If available, we strongly recommend using a guide written for the version of Ubuntu you are using. You can use the search functionality at the top of the page to find a more recent version.
About phpPgAdmin
phpPgAdmin is a php-based web application that provides a GUI interface for the postgresql system. It performs a similar function to phpMyAdmin, which allows users to manipulate database information in a visual program in MySQL.
Step One—Install phpPgAdmin
Start off by ensuring that the apt-get repository is up to date:
sudo apt-get update
Once the process has completed, go ahead and install postgresql, helpful additional dependencies, and phpgadmin. During its installation, phpPgAdmin will also install the required php and apache packages.
sudo apt-get install postgresql postgresql-contrib phppgadmin
Start Apache:
sudo service apache2 start
Step Two—Adjust The Security Settings
Once phpgadmin Is installed, you may be able to access it by going to youripaddress/phpPgAdmin.
You can run the following command to reveal your server’s IP address.
ifconfig eth0 | grep inet | awk '{ print $2 }'
You may find, however, that attempting to reach the phpPgAdmin page may result in a forbidden 403 error.
In order to make this page accessible, we should make it available to all visitors (don’t worry, we’ll lock it down in the next step):
sudo nano /etc/apache2/conf.d/phppgadmin
Within the file find the following section and uncomment the line, “allow from all”. The section should look like this:
order deny,allow deny from all allow from 127.0.0.0/255.0.0.0 ::1/128 allow from all
Configure the .htaccess Authentication
With the .htaccess file allowed, we can proceed to set up a native user whose login would be required to even access the phpPgAdmin login page.
Start by creating the .htaccess authentication section your site’s configuration file. For example’s sake, I will use the default site:
sudo nano /etc/apache2/sites-enabled/000-default
Follow up by setting up the user authorization. Create a new section within the virtual host file, pasting the following information in:
<Directory "/usr/share/phpPgAdmin"> AuthUserFile /etc/phpPgAdmin/.htpasswd AuthName "Restricted Area" AuthType Basic require valid-user </Directory>
Below you’ll see a quick explanation of each line
AuthUserFile: This line designates the server path to the password file (which we will create in the next step.)
AuthType: This refers to the type of authentication that will be used to the check the passwords. The passwords are checked via HTTP and the keyword Basic should not be changed.
AuthName: This is text that will be displayed at the password prompt. You can put anything here.
Require valid-user: This line tells the .htaccess file that only users defined in the password file can access the phpPgAdmin login screen.
Create the htpasswd file
Now we will go ahead and create the valid user information.
Start by creating a htpasswd file. Use the htpasswd command, and place the file in a directory of your choice as long as it is not accessible from a browser. Although you can name the password file whatever you prefer, the convention is to name it .htpasswd.
sudo htpasswd -c /etc/phpPgAdmin/.htpasswd username
A prompt will ask you to provide and confirm your password.
Once the username and passwords pair are saved you can see that the password is encrypted in the file.
FInish up by restarting apache:
sudo service apache2 restart
Accessing phpPgAdmin
phpPgAdmin will now be much more secure since only authorized users will be able to reach the login page. Accessing youripaddress/phpPgAdmin should display a screen like
Fill it in with the username and password that you generated. After you login you can access phpPgAdmin with your Postgres username and password.
Postscript—How to Create a Postgres User
Change the authentication method in the Authentication Configuration File:
sudo nano /etc/postgresql/9.1/main/pg_hba.conf
The change can be made in the following line:
# "local" is for Unix domain socket connections only local all all md5
To begin creating users, first switch into the default superuser and create the database that the user will log into:
sudo su - postgres
Subsequently, create a new database where you will store your tables:
createdb newdb
Although the database has been created, the only user with access to it is the default postgres user. We can allow other users to access and manipulate this database by creating new users.
Once logged in as the default superuser, you can move forward to create more roles in your PostgreSQL system.
To outfit your user with a password, you can add the option -P to the createuser command:
createuser -P
Enter name of role to add: newuser Enter password for new role: Enter it again: Shall the new role be a superuser? (y/n) y Password: enter the superuser’s password here
You can then log into postgres in one of several ways.
If you are logging in using the peer identification, you can simply type the following command, specifying the database that you are logging into:
psql newdb
If you are logging into using the md5 identification, you can include the user that you prefer to log in as:
psql –U newuser -W newdb
By Etel Sverdlov