Like phpmyadmin but for postgres


Codacy Badge StyleCI Scrutinizer Code Quality Build Status

PHP Based administration tool for PostgreSQL.

This is a hard fork of phppgadmin which aims to add the following enhancements:

  • Composer Installation and dependency management
  • Autoloading (thanks to the above)
  • Namespaced classes
  • Removal of global variables
  • Full PHP 7+ support
  • Support for PG 9.3+ features (Materialized Views, BRIN Indexes, etc)
  • Nice urls
  • Replace usage of superglobals with PSR-7 Message interfaces to carry information around.
  • Usage of Dependency Injection compliant with PSR-11 Container interface

Some of these are already in place, others are in progress.

This project is made on top of Slim Framework 3, although a big part of the code doesn't use its full features yet.


Using Composer (recommended)

Install Composer in your machine.

Install with composer running the following command in your shell (replacing whith your desired folder name)

composer create-project huasofoundries/phppgadmin6 <FOLDER> *@beta

Alternatively, clone this repo and run (inside then folder where the project was cloned)

composer install --no-dev

Rewrite Rules

As this project is built over Slim PHP v3, you'll need some rewrite rules for this software to work.


Make sure you have the RewriteEngine module active in your Apache installation.

Place an .htaccess file on your project root with the following contents

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]


Add the following vhost to your sites-enabled folder

server {
        listen 80; 
        # or whatever port you want


        root /path/to/project;

        index index.php;

        # Use this block if you're running in your domain or subdomain root
	    location / {
           try_files $uri $uri/ /index.php$is_args$args;

    	# If running inside a subfolder use instead
        #location /subfolder/ {
        #   try_files $uri $uri/ /subfolder/index.php$is_args$args;

        # pass the PHP scripts to FastCGI server listening on IP:PORT or socket
        location ~ \.php$ {
                fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;

                # Check that the PHP script exists before passing it
                try_files $fastcgi_script_name =404;

                # Bypass the fact that try_files resets $fastcgi_path_info
                # see:
                set $path_info $fastcgi_path_info;
                fastcgi_param PATH_INFO $path_info;

                fastcgi_index index.php;
                include /etc/nginx/fastcgi_params;
                fastcgi_pass unix:/run/php/php7.0-fpm.sock;
                # or fastcgi_pass; depending on your PHP-FPM pool

Please note that you have to customize your server name, php upstream (sock or IP) and optinally the subfolder you want phpPgAdmin6 to run on.