Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I'm trying to set up phpPgAdmin on my test machine so that I can interface with PostgreSQL without always having to use the psql CLI. I have PostgreSQL 9.1 installed via the RPM repository, while I installed phpPgAdmin 5.0.4 "manually" (by extracting the archive from the phpPgAdmin website). For the record, my host OS is CentOS 6.2.

I made the following configuration changes already:

PostgreSQL

  • Inside pg_hba.conf, I changed all METHODs to md5.
  • I gave the postgres account a password
  • I added a new account named webuser with a password (note that I did not do anything else to the account, so I can't exactly say that I know what permissions it has and all)

phpPgAdmin config.inc.php

  • Changed the line $conf['servers'][0]['host'] = ''; to $conf['servers'][0]['host'] = '127.0.0.1'; (I've also tried using localhost as the value there).
  • Set $conf['extra_login_security'] to false.

Whenever I try to log in to phpPgAdmin, I get "Login failed", even if I use successful credentials (ones that work in psql). I've tried to go through some of the steps noted in Question 3 in the FAQ, but it hasn't worked out well so far there. It likely does not help that this is my first day working with PostgreSQL. I'm farily familiar with MySQL, but I have to use PostgreSQL for the project I'm working on.

Could anyone offer some help for how to set up phpPgAdmin on CentOS 6.2? If I've done something terribly wrong in my configuration so far, it's no big deal to blow something/everything away, as it's not like I've stored any data there yet!

I appreciate any insight you may have!

share|improve this question

2 Answers 2

up vote 1 down vote accepted

Well, I figured it out - it was a combination of inexperience with PostgreSQL and very non-descriptive errors from phpPgAdmin.

Turns out I did not have TCP/IP access enabled, which meant that no PHP applications could access the database(s). To fix this, I had to make two changes:

  • It seemed to work better if I set listen_addresses to '*' in postgresql.conf. I'm not sure if that's entirely necessary or not, but on a well-firewalled machine like this one is, it shouldn't be a problem.
  • I had to run the command setsebool -P httpd_can_network_connect_db 1 from a terminal window to get Apache to actually get with the program and connect. I don't remember if I had to restart PostgreSQL after this step, but it probably wouldn't hurt.

One final note: I saw a few things suggesting changing a line tcpip_socket=true in postgresql.conf. This apparently does not work in PostgreSQL 9.1. In fact, it refused to start after I added that. So don't do it.

Anyways, hopefully this can help someone who runs into the same issues I did!

share|improve this answer
    
On systems with Security Enhanced Linux (SELinux), the setting the httpd_can_network_connect_db flag with setsebool is necessary. –  postrational Dec 29 '13 at 23:35

I was unable to set up phpPgAdmin until I see your solution. To complete your solution :

  • it is not usefull to set listen_address to '*' if your phpPgAdmin server is on the same computer than your postgresql server (9.2 for me), you can set it to localhost.
  • the only thing that is usefull is to set up the SELinux boolean.
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.