15%

Hemat 15% di Semua Layanan Hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode:

Skills
Memulai
01.11.2024

Cara Menginstal dan Mengamankan phpMyAdmin di Ubuntu (Panduan Lengkap)

phpMyAdmin adalah salah satu alat open-source paling banyak digunakan untuk mengelola database MySQL dan MariaDB melalui antarmuka grafis berbasis browser. Baik Anda seorang pengembang, administrator sistem, atau pemilik situs web, ini secara dramatis menyederhanakan operasi database yang kompleks — dari menjalankan kueri SQL hingga mengimpor/mengekspor data — tanpa memerlukan keahlian command-line.

Namun, karena phpMyAdmin dapat diakses melalui URL publik secara default, membiarkannya tidak aman adalah risiko serius. Panduan komprehensif ini memandu Anda melalui instalasi phpMyAdmin di Ubuntu 20.04/22.04, mengonfigurasinya dengan Apache, dan mengamankannya terhadap akses tidak sah menggunakan beberapa lapisan keamanan.

Daftar Isi

  1. Prasyarat
  2. Langkah 1 — Perbarui Sistem dan Indeks Paket
  3. Langkah 2 — Instal phpMyAdmin
  4. Langkah 3 — Konfigurasi Apache untuk phpMyAdmin
  5. Langkah 4 — Amankan phpMyAdmin dengan HTTP Basic Authentication
  6. Langkah 5 — Batasi Akses berdasarkan Alamat IP (Opsional tetapi Direkomendasikan)
  7. Langkah 6 — Aktifkan SSL untuk Enkripsi Lalu Lintas
  8. Langkah 7 — Akses phpMyAdmin
  9. Pemecahan Masalah Umum
  10. Kesimpulan

Prasyarat {#prerequisites}

Sebelum Anda memulai, pastikan persyaratan berikut terpenuhi:

  • Server yang menjalankan Ubuntu 20.04 atau 22.04 (fisik atau virtual)
  • MySQL atau MariaDB terinstal dan berjalan aktif
  • Server web Apache2 terinstal
  • Akun pengguna dengan hak istimewa sudo
  • Nama domain atau alamat IP statis yang menunjuk ke server Anda
  • (Direkomendasikan) Sertifikat SSL yang valid untuk akses HTTPS terenkripsi

> Tip: Jika Anda belum memiliki lingkungan server, pertimbangkan AlexHost VPS Hosting — paket VPS Linux yang dikelola sepenuhnya atau tidak dikelola dengan penyediaan instan, akses root, dan penyimpanan SSD, ideal untuk menjalankan phpMyAdmin dengan aman.

Langkah 1 — Perbarui Sistem dan Indeks Paket {#step-1}

Selalu mulai dengan menyegarkan daftar paket Anda dan menerapkan pembaruan sistem yang tertunda. Ini memastikan Anda menginstal versi phpMyAdmin terbaru yang tersedia dan menghindari konflik ketergantungan.

sudo apt update && sudo apt upgrade -y

Langkah 2 — Instal phpMyAdmin {#step-2}

Instal phpMyAdmin menggunakan repositori APT Ubuntu resmi:

sudo apt install phpmyadmin -y

Selama instalasi, wizard konfigurasi interaktif akan muncul. Ikuti langkah-langkah ini dengan hati-hati:

2.1 — Pilih Server Web

Anda akan diminta untuk memilih server web untuk dikonfigurasi secara otomatis:

Please choose the web server that should be automatically configured to run phpMyAdmin.

  [*] apache2
  [ ] lighttpd

Gunakan spacebar untuk memilih apache2, kemudian tekan Tab untuk menyoroti <Ok> dan tekan Enter.

2.2 — Konfigurasi Database dengan dbconfig-common

Selanjutnya, Anda akan ditanya apakah akan mengonfigurasi database untuk phpMyAdmin menggunakan dbconfig-common:

Configure database for phpmyadmin with dbconfig-common?

Pilih Ya. Anda kemudian akan diminta untuk memasukkan kata sandi aplikasi MySQL untuk pengguna database internal phpMyAdmin. Masukkan kata sandi yang kuat atau biarkan kosong agar satu kata sandi dihasilkan secara otomatis.

2.3 — Verifikasi Instalasi

Setelah instalasi selesai, konfirmasi phpMyAdmin terinstal:

dpkg -l phpmyadmin

Anda harus melihat baris yang menunjukkan versi paket yang terinstal.

Langkah 3 — Konfigurasi Apache untuk phpMyAdmin {#step-3}

Dalam beberapa konfigurasi Ubuntu, file konfigurasi Apache phpMyAdmin tidak diaktifkan secara otomatis. Periksa dan aktifkan secara manual.

3.1 — Aktifkan Konfigurasi phpMyAdmin

sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
sudo a2enconf phpmyadmin

3.2 — Verifikasi File Konfigurasi

Buka file konfigurasi untuk meninjau isinya:

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

File harus berisi direktif berikut (atau serupa):

Alias /phpmyadmin /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>
    Options Indexes FollowSymLinks
    DirectoryIndex index.php

    <IfModule mod_authz_core.c>
        # Apache 2.4
        <RequireAny>
            Require all granted
        </RequireAny>
    </IfModule>
</Directory>

<Directory /usr/share/phpmyadmin/setup>
    <IfModule mod_authz_core.c>
        # Apache 2.4
        <RequireAny>
            Require all granted
        </RequireAny>
    </IfModule>
</Directory>

Simpan dan tutup file dengan CTRL+X, kemudian Y, kemudian Enter.

3.3 — Restart Apache

Terapkan perubahan konfigurasi:

sudo systemctl restart apache2

Verifikasi Apache berjalan tanpa kesalahan:

sudo systemctl status apache2

Langkah 4 — Amankan phpMyAdmin dengan HTTP Basic Authentication {#step-4}

Secara default, siapa pun yang mengetahui alamat IP server Anda dapat mencapai halaman login phpMyAdmin. Menambahkan lapisan HTTP Basic Authentication membuat gerbang kata sandi kedua sebelum pengguna bahkan melihat formulir login phpMyAdmin.

4.1 — Instal apache2-utils

sudo apt install apache2-utils -y

4.2 — Buat File Kata Sandi dan Pengguna

Buat file .htpasswd dan tambahkan pengguna administratif pertama Anda. Ganti your_admin_user dengan nama pengguna pilihan Anda:

sudo mkdir -p /etc/phpmyadmin
sudo htpasswd -c /etc/phpmyadmin/.htpasswd your_admin_user

Anda akan diminta untuk memasukkan dan mengkonfirmasi kata sandi. Untuk menambahkan pengguna tambahan nanti (tanpa bendera -c, yang akan menimpa file):

sudo htpasswd /etc/phpmyadmin/.htpasswd another_user

4.3 — Perbarui Konfigurasi Apache phpMyAdmin

Edit file konfigurasi phpMyAdmin untuk memberlakukan autentikasi:

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

Temukan blok <Directory /usr/share/phpmyadmin> dan tambahkan baris berikut di dalamnya:

<Directory /usr/share/phpmyadmin>
    Options Indexes FollowSymLinks
    DirectoryIndex index.php

    # HTTP Basic Authentication
    AuthType Basic
    AuthName "Restricted Access — Authorized Personnel Only"
    AuthUserFile /etc/phpmyadmin/.htpasswd
    Require valid-user

    <IfModule mod_authz_core.c>
        <RequireAny>
            Require valid-user
        </RequireAny>
    </IfModule>
</Directory>

Simpan dan tutup file.

4.4 — Restart Apache

sudo systemctl restart apache2

Sekarang, menavigasi ke /phpmyadmin akan terlebih dahulu meminta kredensial autentikasi HTTP sebelum menampilkan halaman login phpMyAdmin.

Langkah 5 — Batasi Akses berdasarkan Alamat IP (Opsional tetapi Direkomendasikan) {#step-5}

Untuk perlindungan yang lebih kuat, batasi akses phpMyAdmin hanya ke alamat IP terpercaya tertentu. Ini sangat berguna jika Anda selalu mengakses server Anda dari IP tetap (seperti jaringan kantor atau VPN).

Edit konfigurasi Apache phpMyAdmin:

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

Modifikasi blok <Directory> untuk menyertakan pembatasan berbasis IP:

<Directory /usr/share/phpmyadmin>
    Options Indexes FollowSymLinks
    DirectoryIndex index.php

    AuthType Basic
    AuthName "Restricted Access"
    AuthUserFile /etc/phpmyadmin/.htpasswd

    <RequireAll>
        Require valid-user
        Require ip 203.0.113.50
        # Add more trusted IPs below:
        # Require ip 198.51.100.0/24
    </RequireAll>
</Directory>

Ganti 203.0.113.50 dengan alamat IP atau subnet terpercaya aktual Anda. Simpan file dan restart Apache:

sudo systemctl restart apache2

> Catatan: Jika alamat IP Anda sering berubah, pertimbangkan menggunakan VPN dengan IP statis, atau andalkan HTTP Basic Authentication saja dikombinasikan dengan SSL.

Langkah 6 — Aktifkan SSL untuk Enkripsi Lalu Lintas {#step-6}

Mengirim kredensial database melalui HTTP biasa adalah risiko keamanan kritis. Anda harus selalu mengakses phpMyAdmin melalui HTTPS. Ada dua pendekatan utama:

Opsi A — Gunakan Sertifikat SSL Let’s Encrypt (Gratis)

Jika Anda memiliki nama domain yang menunjuk ke server Anda, instal Certbot:

sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d yourdomain.com

Certbot akan secara otomatis mengonfigurasi Apache untuk mengarahkan HTTP ke HTTPS dan menginstal sertifikat gratis yang dapat diperbaharui secara otomatis.

Opsi B — Gunakan Sertifikat SSL Komersial

Untuk lingkungan produksi yang menangani data sensitif, sertifikat SSL yang dikeluarkan secara komersial memberikan sinyal kepercayaan yang lebih kuat dan perlindungan garansi. Anda dapat memperoleh sertifikat SSL terpercaya langsung dari AlexHost SSL Certificates, dengan opsi mulai dari Domain Validation (DV) hingga sertifikat Extended Validation (EV).

Setelah menginstal sertifikat SSL Anda, pastikan URL phpMyAdmin Anda menggunakan https://:

https://yourdomain.com/phpmyadmin

Langkah 7 — Akses phpMyAdmin {#step-7}

Dengan instalasi dan langkah-langkah keamanan di tempat, buka browser Anda dan navigasikan ke:

https://your_server_ip_or_domain/phpmyadmin

Anda akan mengalami dua prompt autentikasi secara berurutan:

  1. Prompt HTTP Basic Authentication — Masukkan nama pengguna dan kata sandi yang Anda buat dengan htpasswd
  2. Halaman login phpMyAdmin — Masukkan nama pengguna MySQL/MariaDB Anda (misalnya, root) dan kata sandinya

Setelah login berhasil, Anda akan memiliki akses penuh ke database MySQL Anda melalui antarmuka grafis phpMyAdmin.

Pemecahan Masalah Umum {#troubleshooting}

phpMyAdmin Mengembalikan Kesalahan 404 Not Found

Konfigurasi Apache mungkin tidak ditautkan atau diaktifkan. Jalankan:

sudo a2enconf phpmyadmin
sudo systemctl reload apache2

Juga verifikasi symlink ada:

ls -la /etc/apache2/conf-available/phpmyadmin.conf

“Tidak Dapat Terhubung ke Server MySQL” Kesalahan

Periksa bahwa MySQL/MariaDB berjalan:

sudo systemctl status mysql
# or for MariaDB:
sudo systemctl status mariadb

Jika terhenti, mulai:

sudo systemctl start mysql

HTTP 500 Internal Server Error

Ini sering menunjukkan modul PHP hilang. Instal ekstensi PHP yang diperlukan:

sudo apt install php-mbstring php-zip php-gd php-json php-curl -y
sudo systemctl restart apache2

Halaman Kosong Setelah Login

Hapus cache browser Anda, atau periksa log kesalahan Apache untuk detail:

sudo tail -f /var/log/apache2/error.log

Ringkasan Praktik Keamanan Terbaik

Sebelum go live, tinjau daftar periksa keamanan ini:

Langkah KeamananStatus
HTTP Basic Authentication diaktifkan
SSL/HTTPS dikonfigurasi
Pembatasan IP diterapkan (jika berlaku)
Login root MySQL dinonaktifkan dari jarak jauh
URL phpMyAdmin diubah dari default /phpmyadminDirekomendasikan
Pembaruan sistem reguler dijadwalkan
Firewall (UFW) dikonfigurasiDirekomendasikan

15%

Hemat 15% di Semua Layanan Hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode:

Skills
Memulai