Difference between revisions of "PhpPgAdmin"

From ArchWiki
Jump to: navigation, search
m (Lonaowna moved page Phppgadmin to PhpPgAdmin over redirect: proper capitalization)
(cleanup, update)
Line 1: Line 1:
 
[[Category:Web Server]]
 
[[Category:Web Server]]
==Installation==
+
{{lowercase title}}
To install [http://phppgadmin.sourceforge.net/doku.php?id=start phpPgAdmin], install the {{Pkg|phppgadmin}} packages in [[Official Repositories]].
+
  
==Configuration==
+
[http://phppgadmin.sourceforge.net/ phpPgAdmin] is a web-based tool to help manage PostgreSQL databases using an Apache/PHP frontend. It requires a working [[LAMP]] setup.
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.
+
== Installation ==
cp /etc/webapps/phppgadmin/apache.example.conf /etc/httpd/conf/extra/httpd-phppgadmin.conf
+
  
Add the following lines to {{ic|/etc/httpd/conf/httpd.conf}}:
+
Install the {{Pkg|phppgadmin}} package from the [[official repositories]].
# phpPgAdmin configuration
+
Include conf/extra/httpd-phppgadmin.conf
+
  
Add the following lines to {{ic|/etc/httpd/conf/httpd.conf}}:
+
== Configuration ==
# Use for PHP 5.x:
+
LoadModule php5_module        modules/libphp5.so
+
AddHandler php5-script php
+
  
Add index.php after "DirectoryIndex index.html"
+
===Apache===
{{bc|1=
+
Copy the example Apache configuration file to your Apache configuration directory:
# DirectoryIndex: sets the file that Apache will serve if a directory
+
# cp /etc/webapps/phppgadmin/apache.example.conf /etc/httpd/conf/extra/httpd-phppgadmin.conf
# is requested.
+
#
+
<IfModule dir_module>
+
    DirectoryIndex index.html index.php
+
</IfModule>
+
}}
+
  
In {{ic|/usr/share/webapps/phppgadmin/.htaccess}}, comment out ''deny from all''. The line should look like this:
+
And include it in {{ic|/etc/httpd/conf/httpd.conf}}:
  #deny from all
+
  # phpPgAdmin configuration
 +
Include conf/extra/httpd-phppgadmin.conf
  
Otherwise you'll get an error similar to "Error 403 - Access forbidden!" when you attempt to access your phppgadmin installation.
+
By default, everyone can see the phpPgAdmin page, to change this, edit {{ic|/etc/httpd/conf/extra/httpd-phpmyadmin.conf}} to your liking. For example, if you only want to be able to access it from the same machine, replace {{ic|Allow from all}} by {{ic|Allow from localhost}}.
  
Your {{ic|/etc/httpd/conf/extra/httpd-phppgadmin.conf}} should have the following information:
+
===PHP===
{{bc|1=
+
You need to enable the {{ic|pgsql}} extension in PHP by editing {{ic|/etc/php/php.ini}} and uncommenting the following line:
        Alias /phppgadmin "/usr/share/webapps/phppgadmin"
+
extension=pgsql.so
        <Directory "/usr/share/webapps/phppgadmin">
+
                AllowOverride All
+
                Options FollowSymlinks
+
                Order allow,deny
+
                Allow from all
+
        </Directory>
+
}}
+
  
Open your {{ic|/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:
+
===phpPgAdmin configuration===
:/usr/share/webapps/phppgadmin:/etc/webapps/
+
phpPgAdmin's configuration file is located at {{ic|/etc/webapps/phppgadmin/config.inc.php}}. If you have a local MySQL server, it should be usable without making any modifications.
  
For example, mine contains the following:
+
If your PostgreSQL server is not on the localhost, edit the following line:
  open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/phppgadmin:/etc/webapps
+
  $conf['servers'][0]['host'] = '';
 
+
You need the pgsql module, so uncomment in {{ic|/etc/php/php.ini}}:
+
  ;extension=pgsql.so
+
:to
+
  extension=pgsql.so
+
  
 
==Accessing your phpPgAdmin installation==
 
==Accessing your phpPgAdmin installation==
 
+
Your phpPgAdmin installation is now complete. Before start using it you need to restart your apache server by following command:
Finally your phppgadmin installation is complete. Before start using it you need to restart your apache server by following command:
+
 
+
 
  # systemctl restart httpd.service
 
  # systemctl restart httpd.service
  
You can access your phppgadmin installation using the following url:
+
You can access your phpPgAdmin installation by going to http://localhost/phppgadmin/
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==
 
==Lighttpd Configuration==

Revision as of 21:26, 12 January 2014

phpPgAdmin is a web-based tool to help manage PostgreSQL databases using an Apache/PHP frontend. It requires a working LAMP setup.

Installation

Install the phppgadmin package from the official repositories.

Configuration

Apache

Copy the example Apache configuration file to your Apache configuration directory:

# cp /etc/webapps/phppgadmin/apache.example.conf /etc/httpd/conf/extra/httpd-phppgadmin.conf

And include it in /etc/httpd/conf/httpd.conf:

# phpPgAdmin configuration
Include conf/extra/httpd-phppgadmin.conf

By default, everyone can see the phpPgAdmin page, to change this, edit /etc/httpd/conf/extra/httpd-phpmyadmin.conf to your liking. For example, if you only want to be able to access it from the same machine, replace Allow from all by Allow from localhost.

PHP

You need to enable the pgsql extension in PHP by editing /etc/php/php.ini and uncommenting the following line:

extension=pgsql.so

phpPgAdmin configuration

phpPgAdmin's configuration file is located at /etc/webapps/phppgadmin/config.inc.php. If you have a local MySQL server, it should be usable without making any modifications.

If your PostgreSQL server is not on the localhost, edit the following line:

$conf['servers'][0]['host'] = ;

Accessing your phpPgAdmin installation

Your phpPgAdmin installation is now 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 by going to http://localhost/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.