Skip to content
VDS · Basis data

phpMyAdmin dan Adminer: panel database

Cara menginstal panel web untuk database di VDS dan mengamankannya agar tidak menjadi pintu masuk: akses password, pembatasan alamat, alternatif.

Diperbarui 23 Agustus 2026

Panel web memang praktis untuk pengeditan sekali jalan dan melihat tabel. Namun panel juga menjadi penyebab paling umum server diretas: URL /phpmyadmin di-brute-force secara otomatis, dan formulir loginnya memberi akses langsung ke data.

Adminer: satu file

Adminer adalah satu file PHP dan mendukung MySQL, PostgreSQL, serta SQLite. Tidak ada yang perlu dipasang:

mkdir -p /var/www/tools
curl -L -o /var/www/tools/adminer.php \
  https://github.com/vrana/adminer/releases/latest/download/adminer.php
chown www-data:www-data /var/www/tools/adminer.php

Anda memerlukan PHP-FPM yang berjalan. Sebaiknya ganti nama file menjadi sesuatu yang tidak mudah ditebak — ini bukan perlindungan, tetapi menghilangkan pemindaian massal.

phpMyAdmin

apt install -y phpmyadmin

Paket ini terhubung ke Apache secara otomatis; untuk Nginx, tentukan path-nya secara manual:

location /db-panel {
    alias /usr/share/phpmyadmin;
    index index.php;
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_param SCRIPT_FILENAME $request_filename;
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
    }
}

Perlindungan wajib

Jangan pernah memasang panel tanpa ketiga hal ini.

Akses hanya dari alamat Anda:

location /db-panel {
    allow 203.0.113.10;
    deny all;
}

Kata sandi tambahan di level web server:

apt install -y apache2-utils
htpasswd -c /etc/nginx/.htpasswd admin
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;

Dan yang ketiga, hanya HTTPS: sertifikat Let's Encrypt. Tanpanya, kata sandi database dikirim dalam teks polos.

Pilihan terbaik: tidak ada panel yang terbuka ke luar

Jika alamat Anda dinamis, jangan buka panel sama sekali. Siapkan SSH tunnel dan bekerja dengan klien desktop — DBeaver, TablePlus, HeidiSQL:

ssh -L 3307:127.0.0.1:3306 root@YOUR_ADDRESS -N

Detailnya — akses jarak jauh. Dengan cara ini, tidak ada yang terbuka ke luar selain SSH, dan Anda tidak perlu panel sama sekali.

Kesalahan umum

GejalaPenyebab
Browser mengunduh adminer.phpPHP tidak terhubung ke path ini
#1045 Access deniedPengguna database terikat ke host yang berbeda
Impor dump besar terputusupload_max_filesize dan max_execution_time terlalu kecil; lebih baik impor dari konsol
Ribuan permintaan ke /phpmyadmin di logPemindaian rutin — panel harus ditutup
Panel berfungsi, tetapi situs tidakPool PHP-FPM bersama habis oleh permintaan berat panel

Dump melalui panel web pada database besar akan timeout. Backup yang sesungguhnya dibuat dari konsol secara terjadwal — backup database.