Sep 24, 2008

How To Install PostgreSQL And phpPgAdmin Support In XAMPP

XAMPP is an easy to install Apache distribution containing MySQL, PHP and Perl, plus many additional modules. The whole package is well integrated and can save a lot of time and hassle for the inexperienced web developer. It's available on four platforms Windows, GNU/Linux, Mac OS X and Solaris which gives a lot practical benefit to those who use it.

PostgreSQL is a well known database that may be more suitable for some tasks or workloads than others. phpPgAdmin is a web-based administration tool for PostgreSQL, exactly as phpMyAdmin for MySQL.

1. Install PostgreSQL and phpPgAdmin in Windows :

1.1 Install PostgreSQL
Assuming you have already download and installed XAMPP into c:\XAMPP, go and get the latest version of PostgreSQL for Windows. Download the version with the installer, not the one with only binaries.

Usually, it's a .zip package, extract it and install Microsoft Visual C++ 2005 redistributable vcredist_x86.exe first!

Now, double-click postgresql-8.3.msi, choose your install language, then have a look at installation notes as you may find useful info there.

Change the default install folder to c:\xampp\pgsql
The default install options in the following step are OK, but select everything you are unsure.

Enter a password for the user account "postgres" and leave everything as is in Service Configuration, then proceed to the next step. (You will need that password for future upgrades)

In Initialize Database Cluster:
  • Enable "Accept connections on all addresses, not just localhost" if you want.
  • Choose a different Encoding for both Server and Client (i.e: UTF8 for unicode support)
  • Enter a password for the DB administrator account "postgres".
Proceed as PL/pgsql is enabled by default in Procedural Langauges, then select Contrib Modules you want (select everything if you are unsure). Click on Install.

1.2 Install phpPgAdmin
Go and get the latest phpPgAdmin zip package and extract it into C:\xampp\phpPgAdmin\ . Make sure the files and folders extracted are in that folder, not within another sub-folder.

Then open "config.inc.php" found in C:\xampp\phpPgAdmin\conf\ and set "extra_login_security" to false
$conf['extra_login_security'] = false;

Now, open c:\xampp\php\php.ini and make sure "extension=php_pgsql.dll" is uncommented

Finally, open c:\xampp\apache\conf\extra\httpd-xampp.conf and in section <IfModule mime_module> add
Alias /phppgadmin "c:/xampp/phpPgAdmin/"
<Directory "c:/xampp/phpPgAdmin">
    AllowOverride AuthConfig
    Order allow,deny
    Allow from all
</Directory>

That's all, you can now access phpPgAdmin from your web browser with http://localhost/phppgadmin/

Notes:
  • For more info about PostgreSQL Installer visit http://pginstaller.projects.postgresql.org/FAQ_windows.html
  • You may use Stack Builder shipped with PostgreSQL to add new functionalities.
  • Visit the phpPgAdmin FAQ for any further info http://phppgadmin.sourceforge.net/?page=faq

For Ubuntu Linux users I recommend this article.
Bookmark and Share

20 comments:

Anonymous said...

spot on, one thing different in my install, was the location of the php.ini file. The one being used resides in c:\xampp\apache\bin\

cph said...

great! it works.
thank you very much.

Anonymous said...

help!! in the initialize database cluster. I encountered an error saying.. "THe PostgreSQL data directory must be on a NTFS formatted volume. If you wish to install the data directory on another type of partition.. etctec"

Mohammed Berdai said...

The message is clear, you need an NTFS partition for that.

NTFS offers advanced access control and security.

Anonymous said...

when i type this in my web browser -> http://localhost/phppgadmin/
it can't establish connection to the server at localhost. (The installation was successful. I followed your instruction)

Mohammed Berdai said...

Did you make sure the Apache web server was running?

Anonymous said...

how would i know if it is already running?

Anonymous said...

ok. i got. its already working. thanks :D

lonthox said...

My C partition is on FAT32, but I have NTFS partition on drive E.
Does your instruction work on other drive (i.e: drive E) instead of drive C?

Mohammed Berdai said...

Yes, if you install everything on drive E you should replace C:/ with E:/ in the text you added into <IfModule mime_module>

Anonymous said...

I got an attention...

Access forbidden!
You don't have permission to access the requested object. It is either read-protected or not readable by the server.

Mohammed Berdai said...

I'm afraid I can't help with that error. Did you receive it when you were trying to install PostgreSQL or afterwards when developing ?

Anonymous said...

reg: [You don't have permission to access the requested object. It is either read-protected or not readable by the server.]

Directory "E:/xampp/phpPgAdmin"
// E: NTFS but C FAT32

phpPgAdmin must be in the same partition as apache

Harsha said...

thanks a lot dude
its working

Mohammed Berdai said...

@Anonymous: Thanks :)
@Harsha: You're welcome! :)

Fabio LED said...

Help here
run next error started

cannot modify header information - headers already sent by (output started)
erro Misc.php 342
Misc on line 359

Anonymous said...

Because you use XAMPP 1.7.2 with PHP 5.3!
So I uninstall 1.7.2 and install 1.7.1

Anonymous said...

hi anonymous, how did you know 1.7.2 is not working with phppgadmin? and why?

Anonymous said...

Try it, and you'll know

Mohammed Berdai said...

Content of this blog has moved to my personal blog at http://berdai.blogspot.com/

Thanks!

Post a Comment

Note: Only a member of this blog may post a comment.