Pada tutorial kali ini saya akan menunjukkan bagaimana cara melakukan instalasi menggunakan phpMyAdmin dengan nginx, MySQL, dan PHP 8.2 (LEMP) di Debian 12. Seperti kita tahu bahwa phpMyAdmin adalah aplikasi management database yang bersifat gratis dan open-source, selain itu aplikasi tersebut di tulis dengan bahasa pemograman PHP.
phpMyAdmin memiliki kelebihan menyediakan antarmuka web grafis bagi pengguna untuk mengelola basis data MySQL atau MariaDB
Beberapa Kelebihan Lain dari PHPMYADMIN
- menelusuri database dan tabel;
- membuat, menyalin, mengganti nama, mengubah, dan menghapus basis data;
- membuat, menyalin, mengganti nama, mengubah dan menghapus tabel;
- melakukan pemeliharaan meja;
- menambah, mengedit, dan menghapus bidang;
- mengeksekusi pernyataan SQL apa pun, bahkan beberapa kueri;
- membuat, mengubah, dan menghapus indeks;
- memuat file teks ke dalam tabel;
- membuat dan membaca dump tabel atau database;
- mengekspor data ke format SQL, CSV, XML, Word, Excel, PDF dan LaTeX;
- mengelola beberapa server;
- mengelola pengguna dan hak istimewa MySQL;
- memeriksa pengaturan server dan informasi runtime dengan petunjuk konfigurasi;
- memeriksa integritas referensial dalam tabel MyISAM;
- membuat kueri kompleks menggunakan Query-by-example (QBE), secara otomatis
- menghubungkan tabel-tabel yang dibutuhkan;
- membuat grafik PDF dari tata letak basis data;
- mencari secara global dalam suatu basis data atau sebagian darinya;
- mengubah data yang tersimpan ke dalam format apa pun menggunakan serangkaian fungsi yang telah ditetapkan, seperti menampilkan data BLOB sebagai gambar atau tautan unduhan;
- mengelola tabel InnoDB dan kunci asing
Prasyarat
Untuk mengikuti tutorial ini pastikan anda sudah menginstall Nginx, MySQL, dan PHP terlebih dahulu baik di komputer lokal maupun server VPS.
Langkah 1: Download dan Install phpMyAdmin di Debian 12.
Pada instalasi yang saat ini saya gunakan tidak menggunakan repositori bawaan dari APT namun saya langsung mendownload dari situs resminya phpMyAdmin langsung. Untuk mendownloadnya langkah pertama lakukan perintah berikut.
wget https://files.phpmyadmin.net/phpMyAdmin/5.2.2/phpMyAdmin-5.2.2-all-languages.zip
Setelah melakukan download langkah selanjutnya adalah melakukan ekstrak dan memindahkan ke folder Nginx di /var/www.
unzip phpMyAdmin-5.2.2-all-languages.zip
ubah nama foldenya menjadi phpMyAdmin dengan perintah berikut
mv phpMyAdmin-5.2.2-all-languages /var/www/phpmyadmin
Langkah 2: Mengunduh Ekstensi Yang Diperlukan
Karena instalasi kali ini dilakukan secara manual kita bisa mengunduh ekstensi php yang digunakan dengan cara berikut. Perhatikan juga versi php, karena saat ini saya menggunakan PHP 8.2
apt-get install php8.2 php8.2-fpm php8.2-mysql php-common php8.2-cli php8.2-common php8.2-json php8.2-opcache php8.2-readline php8.2-mbstring php8.2-xml php8.2-gd php8.2-curl php8.2-mysql -y
langkah 3: konfigurasi PHP-FPM
Setelah melakukan unduhan langkah selanjutnya adalah memastikan apakah service php-fpm sudah berjalan dengan mengecek perintah berikut.
sudo systemctl start php8.2-fpm
sudo systemctl enable php8.2-fpm
sudo systemctl status php8.2-fpm
Jika berhasil dijalankan akan terlihat seperti berikut jika sudah benar instalasinya.
● php8.2-fpm.service - The PHP 8.2 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php8.2-fpm.service; enabled; preset: enabled)
Active: active (running) since Thu 2025-01-30 22:03:42 WIB; 23min ago
Docs: man:php-fpm8.2(8)
Process: 626 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/8.2/fpm/pool.d/www.conf 82 (code=exited, status=0/SUCCESS)
Main PID: 527 (php-fpm8.2)
Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0.00req/sec"
Tasks: 3 (limit: 4644)
Memory: 38.7M
CPU: 311ms
CGroup: /system.slice/php8.2-fpm.service
├─527 "php-fpm: master process (/etc/php/8.2/fpm/php-fpm.conf)"
├─624 "php-fpm: pool www"
└─625 "php-fpm: pool www"
Jan 30 22:03:41 debian systemd[1]: Starting php8.2-fpm.service - The PHP 8.2 FastCGI Process Manager...
Jan 30 22:03:42 debian systemd[1]: Started php8.2-fpm.service - The PHP 8.2 FastCGI Process Manager.
Langkah 3: Konfigurasi Nginx
Pada tahap ini adalah mengatur block virtual server yang akan kita buat. Pertama buat file konfigurasi di folder nginx dengan perintah berikut.
sudo nano /etc/nginx/sites-available/phpmyadmin
Setelah itu konfigurasi server phpmyadmin dengan menambahkan script berikut.
server {
listen 80;
listen [::]:80;
# server_name _;
root /var/www/phpmyadmin/;
index index.php index.html index.htm index.nginx-debian.html;
location / {
try_files $uri $uri/ @phpmyadmin;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
include snippets/fastcgi-php.conf;
}
location @phpmyadmin {
rewrite /phpmyadmin/(.*)$ /phpmyadmin/index.php?/$1 last;
}
# A long browser cache lifetime can speed up repeat visits to your page
location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
access_log off;
log_not_found off;
expires 360d;
}
# disable access to hidden files
location ~ /\.ht {
access_log off;
log_not_found off;
deny all;
}
}
Jika sudah jangan lupa untuk menyimpan konfigurasi tersebut dengan cara CTRL + X dan ENTER.
langkah selanjutnya adalah membuat symbolink di folder sites-enabled dengan cara mengetikkan perintah berikut
sudo ln -s /etc/nginx/sites-available/phpmyadmin /etc/nginx/sites-enabled
Setelah semuanya selesai langkah terakhir adalah melakukan pengecekan dan melakukan reload pada nginx dengan cara berikut.
nginx -t
sudo systemctl restart nginx
Langkah 4: Kunjungi phpMyadmin
karena saat ini belum ada domain kita bisa mengunjungi dengan cara menggunakan alamat ip address dari server. Jika berhasil akan tampak seperti berikut

Silahkan login dengan username dan password dari root di MYSQL
Langkah 5: Hilangkan Warning phpMyadmin
Saat login kalian akan melihat tanda warning di bagian bawah database phpmyadmin seperti berikut.

cara mengatasinya adalah dengan cara konfigurasi file config.sample.inc.php pada direktori phpmyadmin dengan cara berikut.
sudo mv config.sample.inc.php config.inc.php
nano config.inc.php
pada bagian $cfg['blowfish_secret'] = ''"
kalian bisa isi dengan random string sebanyak 32 karakter, jika bingung kunjungi situs berikut untuk mendapatkan angka random https://passwordsgenerator.net/
Jangan lupa untuk melakukan uncommand pada bagian berikut.
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'pmapass';
/* Storage database and tables */
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
$cfg['Servers'][$i]['relation'] = 'pma__relation';
$cfg['Servers'][$i]['table_info'] = 'pma__table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma__column_info';
$cfg['Servers'][$i]['history'] = 'pma__history';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
$cfg['Servers'][$i]['recent'] = 'pma__recent';
$cfg['Servers'][$i]['favorite'] = 'pma__favorite';
$cfg['Servers'][$i]['users'] = 'pma__users';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
$cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
langkah selanjutnya adalag membuat controluser dengan cara berikut ini.
mysql -u root -p
setelah itu buatkan user pma
CREATE USER 'pma'@'%' IDENTIFIED BY 'password_here';
langkah selanjutnya adalah membuat privileges.
GRANT ALL PRIVILEGES ON *.* TO 'pma'@'%' WITH GRANT OPTION;
flush privileges;
exit;
setelah itu kembali ke konfigurasi phpmyadmin dengan cara berikut.
sudo nano /var/www/phpmyadmin/config.inc.php
Ubah bagian berikut sesuai dengan username dan password yang diubah tadi.
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'ubah_password_disini';
setelah semua konfugrasi selesai langkah selanjutnya adalah mengecek apakah masih ada warning di sana, jika masih warning coba untuk logout dan masuk kembali maka warning akan hilang, jika belum coba lihat apakah semua langkah-langkah tadi sudah benar-benar di lakukan.