phpMyAdmin adalah sebuah aplikasi web open source yang dirancang untuk mengelola MySQL database atau MariaDB database melalui antarmuka pengguna grafis.
phpMyAdmin memungkinkan pengguna untuk melakukan berbagai tugas administrasi database melalui web browser tanpa perlu menggunakan perintah SQL secara langsung di server lewat command line.
Dengan menggunakan phpMyAdmin, pengguna dapat membuat, mengedit, dan menghapus basis data, tabel, kolom, serta mengelola pengguna dan hak akses.
Apache
sudo apt install apache2 php8.3 php8.3-fpm libapache2-mod-php8.3 php8.3-cli php8.3-common php8.3-mbstring php8.3-gd php8.3-intl php8.3-xml php8.3-mysql php8.3-zip
Download phpMyAdmin
Download phpMyAdmin versi 5.2.3. Untuk phpMyAdmin versi lain atau yang terbaru download di phpmyadmin.net.
wget https://files.phpmyadmin.net/phpMyAdmin/5.2.3/phpMyAdmin-5.2.3-all-languages.tar.gz -O phpmyadmin-v5.2.3.tar.gz
Mengekstrak file phpMyAdmin*.tar.gz.
tar xzvf phpmyadmin-v5.2.3.tar.gz
Memindahkan direktori hasil ekstrak ke /var/www/phpmyadmin.
cd phpMyAdmin-5.2.3-all-languages sudo mkdir /var/www/phpmyadmin sudo mv * /var/www/phpmyadmin/ sudo rm -r ../phpMyAdmin-5.2.3-all-languages/
Konfigurasi phpMyAdmin
Berpindah ke direktori phpmyadmin dan menduplikasi file contoh konfigurasi phpMyAdmin.
cd /var/www/phpmyadmin sudo cp config.sample.inc.php config.inc.php
Mengubah user dan group direktori phpmyadmin.
sudo chown -R www-data:www-data /var/www/phpmyadmin
sudo find /var/www/phpmyadmin -type d -exec chmod 775 {} \;
sudo find /var/www/phpmyadmin -type f -exec chmod 664 {} \;
Generate random string dengan menggunakan openssl. String yang dihasilkan akan dimasukkan sebagai nilai dari variabel opsi blowfish_secret.
openssl rand -base64 32
Contoh hasil generate random string. Salin string yang dihasilkan.
4EbT1IkS/K0pRGsmfsJOhOqnbpaUPJtc47wXovZnkcc=
Membuka file konfigurasi config.inc.php.
sudo nano config.inc.php
Paste random string pada variabel blowfish_secret.
$cfg['blowfish_secret'] = 'UHXZEoPdA+2TIvdQxWRGXh/LoIFa4lK/OikjYorP12xTgZaU948u7sgLOrpruPFpsAyUwMzfR0OB6xqz3YRtJw==';
Menonaktifkan akses user root database dengan menambahkan AllowRoot false di bawah opsi AllowPassword.
$cfg['Servers'][$i]['AllowNoPassword'] = false; $cfg['Servers'][$i]['AllowRoot'] = false;
/** * Servers configuration */ $cfg['ShowCreateUser'] = false; $cfg['AllowArbitraryServer'] = false; $cfg['AllowThirdPartyFraming'] = false; $cfg['ShowPhpInfo'] = false; $cfg['ShowChgPassword'] = false; $cfg['LoginCookieStore'] = 0; $cfg['TempDir'] = '/tmp'; // Enable reCAPTCHA (opsional) $cfg['CaptchaLoginPublicKey'] = 'YOUR_PUBLIC_KEY'; $cfg['CaptchaLoginPrivateKey'] = 'YOUR_PRIVATE_KEY';
Kemudian Save dan Exit dari nano
Hapus folder setup
sudo rm -r /var/www/phpmyadmin/setup
Konfigurasi Web Server Apache
URL untuk mengakses phpMyAdmin akan menggunakan IP address dan port misalnya 53000.
Membuat konfigurasi virtual host untuk phpMyAdmin.
sudo nano /etc/apache2/sites-available/phpmyadmin.conf
Masukkan konfigurasi virtual host untuk phpMyAdmin. Ganti IP_SERVER dengan Public IP VPS.
Listen 53000
<VirtualHost *:53000>
ServerName IP_SERVER
DocumentRoot /var/www/phpmyadmin
<Directory /var/www/phpmyadmin>
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog /var/log/apache2/phpmyadmin_error.log
CustomLog /var/log/apache2/phpmyadmin_access.log combined
</VirtualHost>
Menonaktifkan informasi web server apache2 dan ketika terjadi error.
sudo nano /etc/apache2/conf-available/security.conf
ServerTokens Prod ServerSignature Off
Cek apakah tidak ada kesalahan konfigurasi
sudo apache2ctl -t
Mengaktifkan konfigurasi virtual host phpmyadmin.conf, restart Apache service, dan menampilkan status Apache service.
sudo a2ensite phpmyadmin.conf sudo systemctl restart apache2 sudo systemctl status apache2
Akses http://IP_SERVER:53000, hasilnya halaman login phpMyAdmin.

NGINX
sudo apt install nginx php8.3 php8.3-fpm libapache2-mod-php8.3 php8.3-cli php8.3-common php8.3-mbstring php8.3-gd php8.3-intl php8.3-xml php8.3-mysql php8.3-zip
Konfigurasi NGINX
Sama seperti di Apache, URL aksesnya IP dan port 53000. Membuat konfigurasi server block untuk phpMyAdmin.
sudo nano /etc/nginx/sites-available/phpmyadmin.conf
Masukkan konfigurasi server block untuk phpMyAdmin.
server {
listen 53000;
server_name IP_SERVER;
root /var/www/phpmyadmin;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
try_files $fastcgi_script_name =404;
include fastcgi_params;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
fastcgi_index index.php;
fastcgi_param DOCUMENT_ROOT $realpath_root;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
}
location /phpmyadmin/ {
root /var/www;
}
access_log /var/log/nginx/phpmyadmin_access.log;
error_log /var/log/nginx/phpmyadmin_error.log;
}
Menonkatifkan informasi nginx
sudo nano /etc/nginx/nginx.conf
Hapus simbol pagar untuk mengaktifkan.
http {
..........................
server_tokens off;
..........................
}
Mengaktifkan konfigurasi server block, menguji konfigurasi, dan restart service nginx.
sudo ln -s /etc/nginx/sites-available/phpmyadmin.conf /etc/nginx/sites-enabled sudo systemctl restart php8.3-fpm sudo systemctl restart nginx sudo systemctl status nginx
Akses http://IP_SERVER:53000, hasilnya halaman login phpMyAdmin.
Kesimpulan
Instalasi phpMyAdmin pada dasarnya adalah proses menghubungkan aplikasi PHP dengan web server. Apache menawarkan integrasi yang lebih sederhana melalui paket repositori dan dukungan otomatisnya.
Sementara NGINX memberikan performa lebih baik namun memerlukan konfigurasi manual pada server block .
Selalu ingat untuk mengamankan akses phpMyAdmin. Langkah minimum yang perlu kamu lakukan adalah mengaktifkan HTTPS menggunakan Certbot atau CloudFlare untuk mengenkripsi lalu lintas data, serta membatasi akses login hanya dari IP tertentu melalui konfigurasi firewall.

