Difference between revisions of "PhpPgAdmin"

From ArchWiki
Jump to: navigation, search
(Clean up style. see Help:Style.)
Line 1: Line 1:
 
[[Category:Web Server]]
 
[[Category:Web Server]]
 
==Installation==
 
==Installation==
To install [http://phppgadmin.sourceforge.net/doku.php?id=start phpPgAdmin], install the {{Pkg|phppgadmin}} packages with
+
To install [http://phppgadmin.sourceforge.net/doku.php?id=start phpPgAdmin], install the {{Pkg|phppgadmin}} packages in [[Official Repositories]].
<pre>
+
pacman -S phppgadmin
+
</pre>
+
  
 
==Configuration==
 
==Configuration==
 
Ensure you do not have an older copy of phppgadmin.
 
Ensure you do not have an older copy of phppgadmin.
<pre>
+
rm -r /srv/http/phppgAdmin
rm -r /srv/http/phppgAdmin
+
</pre>
+
  
 
Copy the example configuration file to your httpd configuration directory.
 
Copy the example configuration file to your httpd configuration directory.
<pre>
+
cp /etc/webapps/phppgadmin/apache.example.conf /etc/httpd/conf/extra/httpd-phppgadmin.conf
cp /etc/webapps/phppgadmin/apache.example.conf /etc/httpd/conf/extra/httpd-phppgadmin.conf
+
</pre>
+
  
 
Add the following lines to {{ic|/etc/httpd/conf/httpd.conf}}:
 
Add the following lines to {{ic|/etc/httpd/conf/httpd.conf}}:
<pre>
+
# phpPgAdmin configuration
# phpPgAdmin configuration
+
Include conf/extra/httpd-phppgadmin.conf
Include conf/extra/httpd-phppgadmin.conf
+
</pre>
+
 
+
You can type this into the terminal to produce the same effect:
+
<pre>
+
echo -e "\nInclude conf/extra/httpd-phppgadmin.conf" >> /etc/httpd/conf/httpd.conf
+
</pre>
+
  
 
Add the following lines to {{ic|/etc/httpd/conf/httpd.conf}}:
 
Add the following lines to {{ic|/etc/httpd/conf/httpd.conf}}:
<pre>
+
# Use for PHP 5.x:
# Use for PHP 5.x:
+
LoadModule php5_module        modules/libphp5.so
LoadModule php5_module        modules/libphp5.so
+
AddHandler php5-script php
AddHandler php5-script php
+
</pre>
+
  
 
Add index.php after "DirectoryIndex index.html"
 
Add index.php after "DirectoryIndex index.html"
<pre>
+
{{bc|1=
 
# DirectoryIndex: sets the file that Apache will serve if a directory
 
# DirectoryIndex: sets the file that Apache will serve if a directory
 
# is requested.
 
# is requested.
Line 43: Line 27:
 
     DirectoryIndex index.html index.php
 
     DirectoryIndex index.html index.php
 
</IfModule>
 
</IfModule>
</pre>
+
}}
  
 
In {{ic|/usr/share/webapps/phppgadmin/.htaccess}}, comment out ''deny from all''. The line should look like this:
 
In {{ic|/usr/share/webapps/phppgadmin/.htaccess}}, comment out ''deny from all''. The line should look like this:
<pre>
+
#deny from all
#deny from all
+
</pre>
+
  
 
Otherwise you'll get an error similar to "Error 403 - Access forbidden!" when you attempt to access your phppgadmin installation.
 
Otherwise you'll get an error similar to "Error 403 - Access forbidden!" when you attempt to access your phppgadmin installation.
  
 
Your {{ic|/etc/httpd/conf/extra/httpd-phppgadmin.conf}} should have the following information:
 
Your {{ic|/etc/httpd/conf/extra/httpd-phppgadmin.conf}} should have the following information:
<pre>
+
{{bc|1=
 
         Alias /phppgadmin "/usr/share/webapps/phppgadmin"
 
         Alias /phppgadmin "/usr/share/webapps/phppgadmin"
 
         <Directory "/usr/share/webapps/phppgadmin">
 
         <Directory "/usr/share/webapps/phppgadmin">
Line 61: Line 43:
 
                 Allow from all
 
                 Allow from all
 
         </Directory>
 
         </Directory>
</pre>
+
}}
  
 
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:
 
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:
<pre>
+
:/usr/share/webapps/phppgadmin:/etc/webapps/
:/usr/share/webapps/phppgadmin:/etc/webapps/
+
</pre>
+
  
 
For example, mine contains the following:
 
For example, mine contains the following:
<pre>
+
open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/phppgadmin:/etc/webapps
open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/phppgadmin:/etc/webapps
+
</pre>
+
  
 
You need the pgsql module, so uncomment in {{ic|/etc/php/php.ini}}:
 
You need the pgsql module, so uncomment in {{ic|/etc/php/php.ini}}:
Line 82: Line 60:
 
Finally your phppgadmin installation is 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:
  
<pre>
+
# systemctl restart httpd.service
# systemctl restart httpd.service
+
</pre>
+
  
 
You can access your phppgadmin installation using the following url:
 
You can access your phppgadmin installation using the following url:
 
+
http://localhost/phppgadmin/
<pre>
+
http://localhost/phppgadmin/
+
 
or
 
or
http://localhost/phppgadmin/index.php
+
http://localhost/phppgadmin/index.php
</pre>
+
  
Note: 'localhost' is the hostname in your /etc/rc.conf file.
+
Note: 'localhost' is your hostname.
  
 
If you want to access it using:
 
If you want to access it using:
  
<pre>
+
http://localhost/phppgadmin
http://localhost/phppgadmin
+
</pre>
+
  
 
in '/etc/httpd/conf/extra/httpd-phppgadmin.conf' change:
 
in '/etc/httpd/conf/extra/httpd-phppgadmin.conf' change:
  
<pre>
+
Alias /phppgadmin/ "/usr/share/webapps/phppgadmin/"
Alias /phppgadmin/ "/usr/share/webapps/phppgadmin/"
+
</pre>
+
 
+
 
to
 
to
 
+
Alias /phppgadmin "/usr/share/webapps/phppgadmin"
<pre>
+
Alias /phppgadmin "/usr/share/webapps/phppgadmin"
+
</pre>
+
  
 
==Lighttpd Configuration==
 
==Lighttpd Configuration==
Line 170: Line 135:
 
where <ip> is your current ip (or use 127.0.0.1 if you are on the same box) and then
 
where <ip> is your current ip (or use 127.0.0.1 if you are on the same box) and then
  
  rc.d restart httpd
+
# systemctl restart httpd
  
 
in order to access phppgadmin.
 
in order to access phppgadmin.

Revision as of 05:29, 23 April 2013

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 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.