phpPgAdmin adalah alat administrasi berbasis web untuk mengelola database PostgreSQL, dan sangat mirip dengan phpMyAdmin, alat berbasis web untuk mengelola MySQL (MariaDB).
Jika Anda memiliki pengalaman kerja di phpMyAdmin, maka sangat mudah bagi Anda untuk memahami fungsionalitas phpPgAdmin.
Panduan ini akan membantu Anda untuk menginstal phpPgAdmin pada Debian 9 / Ubuntu 16.04 / LinuxMint 18.
Instal PostgreSQL
Sebelum menyiapkan phpPgAdmin, lihat bagaimana cara menginstal PostgreSQL di Debian 9 / Ubuntu 16.04 / LinuxMint 18.
Periksa layanan PostgreSQL berjalan di server. Dengan perintah
sudo systemctl status postgresql
Jika layanan PostgreSQL berjalan, maka output hasil perintah diatas seperti dibawah ini :
● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Thu 2017-09-21 11:15:41 CDT; 2 days ago
Main PID: 829 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 4915)
CGroup: /system.slice/postgresql.service
Sep 21 11:15:41 mydebian systemd[1]: Starting PostgreSQL RDBMS...
Sep 21 11:15:41 mydebian systemd[1]: Started PostgreSQL RDBMS.
Instal phpPgAdmin
phpPgAdmin secara default sudah ada di repositori, jadi, Anda bisa menginstalnya menggunakan perintah install apt-get. Dan berikut perintahnya :
sudo apt-get install -y phppgadmin apache2
Konfigurasi PostgreSQL
PostgreSQL secara default hanya terhubung dengan localhost (127.0.0.1) saja. Maka dai itu, supaya aplikasi diluar bias terhubung dan bias mengakses database, kita perlu mengkonfigurasi. Caranya dengan mengubah file postgresql.conf, berikut perintahnya :
nano /etc/postgresql/9.6/main/postgresql.conf
Pada baris :
#listen_addresses = 'localhost'
Ubah menjadi :
listen_addresses = '192.168.1.5'
ganti alamat ip yang digunakan. Setelah itu simpan konfigurasinya.
Secara default, PostgreSQL hanya menerima otentikasi dari localhost. Jika Anda ingin menghubungkan PostgreSQL dari perangkat lain, Anda perlu mengedit file pg_hba.conf. berikut perintahnya
sudo nano /etc/postgresql/9.6/main/pg_hba.conf
Ubah sesuai kebutuhan anda, dan berikut contoh
# IPv4 local connections:
host all all 127.0.0.1/32 md5
host all all 192.168.1.0/24 md5
Mengkonfigurasi Apache
Karena pembatasan, phpPgAdmin hanya bisa diakses melalui localhost. Jika Anda ingin mengakses antarmuka web phpPgAdmin dari perangkat eksternal, Anda perlu mengedit file konfigurasi apache (phppgadmin.conf).
sudo nano /etc/apache2/conf-enabled/phppgadmin.conf
dan akan muncul konfigurasi seperti ini :
Alias /phppgadmin /usr/share/phppgadmin
<Directory /usr/share/phppgadmin>
<IfModule mod_dir.c>
DirectoryIndex index.php
</IfModule>
AllowOverride None
# Only allow connections from localhost:
Require local
<IfModule mod_php.c>
php_flag magic_quotes_gpc Off
php_flag track_vars On
#php_value include_path .
</IfModule>
<IfModule !mod_php.c>
<IfModule mod_actions.c>
<IfModule mod_cgi.c>
AddType application/x-httpd-php .php
Action application/x-httpd-php /cgi-bin/php
</IfModule>
<IfModule mod_cgid.c>
AddType application/x-httpd-php .php
Action application/x-httpd-php /cgi-bin/php
</IfModule>
</IfModule>
</IfModule>
</Directory>
Rubah seperti konfigurasi dibawah ini, atau sesuai keinginan anda :
Alias /phppgadmin /usr/share/phppgadmin
<Directory /usr/share/phppgadmin>
<IfModule mod_dir.c>
DirectoryIndex index.php
</IfModule>
AllowOverride None
# Only allow connections from localhost:
# Require local
Require all granted
<IfModule mod_php.c>
php_flag magic_quotes_gpc Off
php_flag track_vars On
#php_value include_path .
</IfModule>
<IfModule !mod_php.c>
<IfModule mod_actions.c>
<IfModule mod_cgi.c>
AddType application/x-httpd-php .php
Action application/x-httpd-php /cgi-bin/php
</IfModule>
<IfModule mod_cgid.c>
AddType application/x-httpd-php .php
Action application/x-httpd-php /cgi-bin/php
</IfModule>
</IfModule>
</IfModule>
</Directory
Untuk melihat perubahan, restart service nya, dengan perintah :
sudo systemctl restart postgresql
sudo systemctl restart apache2
Mengakses phpPgAdmin
Sekarang akses phpPgAdmin dari browser web Anda, URL akan menjadi:
http://ip-address-anda/phppgadmin
Atau:
http://localhost/phppgamin
jika berhasil akan muncul halaman utama seperti gambar dibawah ini :
Jangan login dulu, karena masih ada beberapa konfigurasi yang harus ditetapkan.
Mengkonfigurasi phpPgAdmin
Jika Anda ingin mengelola beberapa contoh PostgreSQL dari konsol web tunggal, ikuti langkah ini. Jika tidak, Anda bisa melewati langkah ini.
Edit file /etc/phppgadmin/config.inc.php.
sudo nano /etc/phppgadmin/config.inc.php
Tambahkan contoh PostgreSQL Anda di sini.
// Display name for the server on the login screen
$conf['servers'][0]['desc'] = 'PostgreSQL - Debian';
$conf['servers'][1]['desc'] = 'PostgreSQL - Ubuntu';
// Hostname or IP address for server. Use '' for UNIX domain socket.
// use 'localhost' for TCP/IP connection on this computer
$conf['servers'][0]['host'] = 'localhost';
$conf['servers'][1]['host'] = '192.168.1.6';
// Database port on server (5432 is the PostgreSQL default)
$conf['servers'][0]['port'] = 5432;
$conf['servers'][1]['port'] = 5432;
// Database SSL mode
// Possible options: disable, allow, prefer, require
// To require SSL on older servers use option: legacy
// To ignore the SSL mode, use option: unspecified
$conf['servers'][0]['sslmode'] = 'allow';
$conf['servers'][1]['sslmode'] = 'allow';
phpPgAdmin tidak akan mengizinkan pengguna tanpa password atau nama pengguna tertentu (pgsql, postgres, root, administrator) untuk login. Untuk mengesampingkan keamanan ekstra ini, ubahlah menjadi false.
$conf['extra_login_security'] = false;
Setting ini hanya menyembunyikan database pengguna lain dari daftar database. Namun, pengguna lain juga bisa mendapatkan data (dari database lain) dengan menggunakan query SQL.
$conf['owned_only'] = true;
Uji Coba phpPgAdmin
Sekarang, segarkan halaman untuk melihat perubahan yang Anda buat pada phpPgAdmin.
Klik server yang tercantum di panel kiri untuk masuk ke PostgreSQL. Log in menggunakan database user.
Anda sekarang mendapatkan daftar database.
Sama halnya Anda bisa login ke hal lain juga. Masuk ke beberapa contoh PostgreSQL menggunakan phpPgAdmin.
Anda juga bias login ke beberapa PostgreSQL menggunakan phpPgAdmin