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!


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!


Running on a server with GitLab-CE, the message I receive on the log file was:

tail -f -n 8 /var/log/postgresql/postgresql-*-main.log
......
2019-07-24 16:33:15.073 EDT [9640] postgres@template1 LOG:  provided user name (postgres) and authenticated user name (gitlab-www) do not match
2019-07-24 16:33:15.073 EDT [9640] postgres@template1 FATAL:  Peer authentication failed for user "postgres"
2019-07-24 16:33:15.073 EDT [9640] postgres@template1 DETAIL:  Connection matched pg_hba.conf line 85: "local   all             postgres                                peer"

so, I connect to psql via cli and create the missing role/user (in my case gitlab-www):

# sudo -u postgres psql
CREATE USER "gitlab-www" WITH PASSWORD 'YouKnow..' CREATEDB CREATEROLE SUPERUSER LOGIN;

And then, the login process open it's doors.