Phppgadmin
Contents |
Installation
To install phpPgAdmin, install the phppgadmin packages in Official Repositories.
Configuration
Ensure you do not have an older copy of phppgadmin.
rm -r /srv/http/phppgAdmin
Copy the example configuration file to your httpd configuration directory.
cp /etc/webapps/phppgadmin/apache.example.conf /etc/httpd/conf/extra/httpd-phppgadmin.conf
Add the following lines to /etc/httpd/conf/httpd.conf:
# phpPgAdmin configuration Include conf/extra/httpd-phppgadmin.conf
Add the following lines to /etc/httpd/conf/httpd.conf:
# Use for PHP 5.x: LoadModule php5_module modules/libphp5.so AddHandler php5-script php
Add index.php after "DirectoryIndex index.html"
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
In /usr/share/webapps/phppgadmin/.htaccess, comment out deny from all. The line should look like this:
#deny from all
Otherwise you'll get an error similar to "Error 403 - Access forbidden!" when you attempt to access your phppgadmin installation.
Your /etc/httpd/conf/extra/httpd-phppgadmin.conf should have the following information:
Alias /phppgadmin "/usr/share/webapps/phppgadmin"
<Directory "/usr/share/webapps/phppgadmin">
AllowOverride All
Options FollowSymlinks
Order allow,deny
Allow from all
</Directory>
Open your /etc/php/php.ini and go to the line containing open_basedir and add the path(s) to your phppgAdmin installation so it has the following:
:/usr/share/webapps/phppgadmin:/etc/webapps/
For example, mine contains the following:
open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/phppgadmin:/etc/webapps
You need the pgsql module, so uncomment in /etc/php/php.ini:
;extension=pgsql.so
- to
extension=pgsql.so
Accessing your phpPgAdmin installation
Finally your phppgadmin installation is complete. Before start using it you need to restart your apache server by following command:
# systemctl restart httpd.service
You can access your phppgadmin installation using the following url:
http://localhost/phppgadmin/
or
http://localhost/phppgadmin/index.php
Note: 'localhost' is your hostname.
If you want to access it using:
http://localhost/phppgadmin
in '/etc/httpd/conf/extra/httpd-phppgadmin.conf' change:
Alias /phppgadmin/ "/usr/share/webapps/phppgadmin/"
to
Alias /phppgadmin "/usr/share/webapps/phppgadmin"
Lighttpd Configuration
The php setup for lighttpd is exactly the same as for apache. Make an alias for phppgadmin in your lighttpd config.
alias.url = ( "/phppgadmin" => "/usr/share/webapps/phppgadmin/")
Then enable mod_alias, mod_fastcgi and mod_cgi in your config ( server.modules section )
Update open_basedir in /etc/php/php.ini and add "/usr/share/webapps/".
open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/
Make sure lighttpd is setup to serve php files, Lighttpd#FastCGI
Restart lighttpd and browse to http://localhost/phppgadmin/index.php
NGINX Configuration
Also similar to apache configuration (and Lighttpd, for that matter).
Create a symbolic link to the /usr/share/webapps/phppgadmin directory from whichever directory your vhost is serving files from, e.g. /srv/http/<domain>/public_html/
sudo ln -s /usr/share/webapps/phppgadmin /srv/http/<domain>/public_html/phppgadmin
You can also setup a sub domain with a server block like so (if using php-fpm):
server {
server_name phppgadmin.<domain.tld>;
access_log /srv/http/<domain>/logs/phppgadmin.access.log;
error_log /srv/http/<domain.tld>/logs/phppgadmin.error.log;
location / {
root /srv/http/<domain.tld>/public_html/phppgadmin;
index index.html index.htm index.php;
}
location ~ \.php$ {
root /srv/http/<domain.tld>/public_html/phppgadmin;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /srv/http/<domain.tld>/public_html/phppgadmin/$fastcgi_script_name;
include fastcgi_params;
}
}
Troubleshooting Login disallowed for security reasons
If extra login security is true, then logins via phpPgAdmin with no password or certain usernames (pgsql, postgres, root, administrator) will be denied. Only set this false once you have read the FAQ and understand how to change PostgreSQL's pg_hba.conf to enable passworded local connections.
# nano /usr/share/webapps/phppgadmin/conf/config.inc.php
change the following line
$conf['extra_login_security'] = true;
to
$conf['extra_login_security'] = false;
Troubleshooting Access Denied (403)
You will need to edit the .htaccess file located at
/etc/webapps/phppgsql/.htaccess
to
Allow from <ip>
where <ip> is your current ip (or use 127.0.0.1 if you are on the same box) and then
# systemctl restart httpd
in order to access phppgadmin.