Tutorial ini akan menunjukkan cara menginstal phpMyAdmin dengan Apache, MariaDB, PHP7.3 (LAMP stack) di Debian 10 Buster. phpMyAdmin adalah alat manajemen basis data berbasis web sumber terbuka dan gratis yang ditulis dalam PHP. Ini menyediakan antarmuka web grafis bagi pengguna untuk mengelola database MySQL atau MariaDB. Kita juga akan mempelajari cara mengaktifkan otentikasi dua faktor di phpMyAdmin.
phpMyAdmin memungkinkan administrator untuk:
- menelusuri database dan tabel;
- membuat, menyalin, mengganti nama, mengubah, dan melepaskan basis data;
- membuat, menyalin, mengganti nama, mengubah, dan melepaskan tabel;
- melakukan pemeliharaan meja;
- menambah, mengedit, dan melepaskan bidang;
- eksekusi pernyataan SQL apa pun, bahkan beberapa kueri;
- membuat, mengubah, dan melepaskan 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;
- mengatur beberapa server;
- mengelola pengguna dan hak istimewa MySQL;
- periksa pengaturan server dan informasi runtime dengan petunjuk konfigurasi;
- periksa integritas referensial di tabel MyISAM;
- buat kueri kompleks menggunakan Query-by-example (QBE), secara otomatis
- menghubungkan tabel yang diperlukan;
- membuat grafik PDF dari tata letak database;
- menelusuri secara global dalam database atau subsetnya;
- mengubah data yang disimpan ke dalam format apa pun menggunakan serangkaian fungsi yang telah ditentukan sebelumnya, seperti menampilkan BLOB-data sebagai gambar atau tautan unduhan;
- mengelola tabel InnoDB dan kunci asing;
Prasyarat
Untuk mengikuti tutorial ini, Anda memerlukan OS Debian 10 yang berjalan di komputer lokal Anda atau di server jauh.
Jika Anda mencari VPS (Virtual Private Server), maka Anda dapat membuat akun di Vultr melalui tautan referensi saya untuk mendapatkan kredit gratis $50 (hanya untuk pengguna baru). Dan jika Anda perlu menyiapkan phpMyAdmin dengan nama domain, sebaiknya beli nama domain dari NameCheap karena harganya murah dan mereka memberikan perlindungan privasi whois secara gratis.
Diasumsikan bahwa Anda telah menginstal LAMP stack di Debian 10. Jika belum, silakan lihat tutorial berikut.
- Cara Menginstal tumpukan LAMP (Apache, MariaDB, PHP7.3) di Debian 10 Buster
Harap dicatat bahwa Anda harus memiliki hak akses root saat menginstal perangkat lunak di Debian. Anda dapat menambahkan sudo di awal perintah, atau gunakan su -
perintah untuk beralih ke pengguna root.
Setelah itu, mari kita mulai menginstal phpMyAdmin.
Langkah 1:Unduh phpMyAdmin di Server Debian 10
phpMyAdmin tidak termasuk dalam repositori perangkat lunak Debian 10, jadi kami harus mengunduh perangkat lunak secara manual. Buka halaman unduh phpMyAdmin untuk memeriksa versi stabil terbaru. Kemudian jalankan perintah berikut untuk mendownloadnya.
wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.zip
Petunjuk:Anda selalu dapat menggunakan format URL di atas untuk mengunduh phpMyAdmin versi stabil terbaru. Cukup ganti 4.9.0.1 dengan nomor versi terbaru.
Kemudian ekstrak.
sudo apt install unzip unzip phpMyAdmin-4.9.0.1-all-languages.zip
Pindahkan phpMyadmin 4.9 ke /usr/share/
direktori.
sudo mv phpMyAdmin-4.9.0.1-all-languages /usr/share/phpmyadmin
Kemudian buat pengguna server web (www-data
) sebagai pemilik direktori ini.
sudo chown -R www-data:www-data /usr/share/phpmyadmin
Langkah 2:Buat Database dan Pengguna MariaDB untuk phpMyAdmin
Sekarang kita perlu masuk ke konsol MariaDB dan membuat database dan pengguna untuk phpMyAdmin. Secara default, paket MaraiDB di Debian menggunakan unix_socket untuk mengautentikasi login pengguna, yang pada dasarnya berarti Anda dapat menggunakan nama pengguna dan kata sandi OS untuk masuk ke konsol MariaDB. Jadi Anda dapat menjalankan perintah berikut untuk login tanpa memberikan kata sandi root MariaDB.
sudo mysql -u root
Selanjutnya, buat database baru untuk phpMyAdmin menggunakan perintah SQL berikut. Tutorial ini menamainya phpmyadmin
, Anda dapat menggunakan nama apa pun yang Anda suka untuk database.
CREATE DATABASE phpmyadmin DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Perintah SQL berikut akan membuat phpmyadmin
pengguna database dan mengatur kata sandi, dan pada saat yang sama memberikan semua izin database baru kepada pengguna baru sehingga nanti phpMyAdmin dapat menulis ke database. Ganti teks merah dengan kata sandi pilihan Anda.
GRANT ALL ON phpmyadmin.* TO 'phpmyadmin'@'localhost' IDENTIFIED BY 'your_preferred_password';
Hapus tabel hak istimewa dan keluar dari konsol MariaDB.
FLUSH PRIVILEGES; EXIT;
Langkah 3:Instal Modul PHP yang Diperlukan dan Direkomendasikan.
Jalankan perintah berikut untuk menginstal modul PHP yang diperlukan atau direkomendasikan oleh phpMyAdmin.
sudo apt install php-imagick php-phpseclib php-php-gettext php7.3-common php7.3-mysql php7.3-gd php7.3-imap php7.3-json php7.3-curl php7.3-zip php7.3-xml php7.3-mbstring php7.3-bz2 php7.3-intl php7.3-gmp
Kemudian restart Apache.
sudo systemctl restart apache2
Langkah 4:Buat Konfigurasi Apache untuk phpMyAdmin
Jika Anda ingin mengakses antarmuka web phpMyAdmin dari sub-direktori, buat cuplikan konfigurasi dengan perintah berikut.
sudo nano /etc/apache2/conf-available/phpmyadmin.conf
Tempel teks berikut ke dalam file.
# phpMyAdmin default Apache configuration Alias /phpmyadmin /usr/share/phpmyadmin <Directory /usr/share/phpmyadmin> Options SymLinksIfOwnerMatch DirectoryIndex index.php <IfModule mod_php5.c> <IfModule mod_mime.c> AddType application/x-httpd-php .php </IfModule> <FilesMatch ".+\.php$"> SetHandler application/x-httpd-php </FilesMatch> php_value include_path . php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/ php_admin_value mbstring.func_overload 0 </IfModule> <IfModule mod_php.c> <IfModule mod_mime.c> AddType application/x-httpd-php .php </IfModule> <FilesMatch ".+\.php$"> SetHandler application/x-httpd-php </FilesMatch> php_value include_path . php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/ php_admin_value mbstring.func_overload 0 </IfModule> </Directory> # Disallow web access to directories that don't need it <Directory /usr/share/phpmyadmin/templates> Require all denied </Directory> <Directory /usr/share/phpmyadmin/libraries> Require all denied </Directory> <Directory /usr/share/phpmyadmin/setup/lib> Require all denied </Directory>
Simpan dan tutup file. Kemudian aktifkan cuplikan konfigurasi ini.
sudo a2enconf phpmyadmin.conf
Kita juga perlu membuat folder temp phpMyAdmin.
sudo mkdir -p /var/lib/phpmyadmin/tmp sudo chown www-data:www-data /var/lib/phpmyadmin/tmp
Muat ulang Apache agar perubahan diterapkan.
sudo systemctl reload apache2
Sekarang Anda dapat mengakses antarmuka web phpMyAdmin di
your-server-ip/phpmyadmin
Jika phpMyAdmin diinstal pada komputer Debian lokal Anda, maka Anda dapat mengakses antarmuka web phpMyAdmin dengan mengetikkan teks berikut di bilah alamat browser.
localhost/phpmyadmin
Jika koneksi ditolak atau gagal diselesaikan, mungkin ada firewall yang mencegah permintaan HTTP. Jika Anda menggunakan firewall iptables, maka Anda perlu menjalankan perintah berikut untuk membuka port TCP 80 dan 443.
sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT
Jika Anda menggunakan firewall UFW, jalankan perintah ini untuk membuka port TCP 80 dan 443.
sudo ufw allow http sudo ufw allow https
Langkah 5:Akses phpMyAdmin Dari Sub-domain
Terkadang, Anda mungkin ingin menggunakan sub-domain untuk mengakses antarmuka web phpMyAdmin. Dengan cara ini, Anda dapat mengaktifkan HTTPS untuk mengenkripsi lalu lintas.
Pertama, kita perlu membuat virtual host Apache untuk phpMyAdmin. Cuplikan konfigurasi phpMyAdmin yang ada dapat digunakan sebagai template. Mari kita salin ke file baru.
sudo cp /etc/apache2/conf-enabled/phpmyadmin.conf /etc/apache2/sites-available/phpmyadmin.conf
Kemudian edit file baru dengan editor teks baris perintah, seperti Nano.
sudo nano /etc/apache2/sites-available/phpmyadmin.conf
Tambahkan baris berikut di awal file ini. Ganti pma.example.com dengan sub-domain pilihan Anda untuk phpMyAdmin. Jangan lupa untuk membuat catatan DNS A untuk sub-domain ini.
<VirtualHost *:80> ServerName pma.example.com DocumentRoot /usr/share/phpmyadmin ErrorLog ${APACHE_LOG_DIR}/pma.error.log CustomLog ${APACHE_LOG_DIR}/pma.access.log combined
Tambahkan baris berikut di akhir file ini.
</VirtualHost>
Simpan dan tutup file. (Untuk menyimpan file di editor teks Nano, tekan Ctrl+O
, lalu tekan Enter untuk mengonfirmasi. Untuk keluar, tekan Ctrl+X
.) Kemudian aktifkan virtual host ini.
sudo a2ensite phpmyadmin.conf
Muat ulang server web Apache agar perubahan ini diterapkan.
sudo systemctl reload apache2
Sekarang Anda seharusnya dapat mengakses antarmuka web phpMyAdmin melalui
pma.example.com
Sebelum memasukkan kredensial pengguna di formulir login, mari aktifkan HTTPS.
Langkah 6:Aktifkan HTTPS di phpMyAdmin dengan Apache
Untuk mengamankan antarmuka web phpMyadmin, kita dapat menginstal sertifikat Let's Encrypt TLS gratis. Jalankan perintah berikut untuk menginstal klien Let's Encrypt (certbot) dari repositori perangkat lunak Debian 10.
sudo apt install certbot python3-certbot-apache
Python3-certbot-apache
adalah plugin Apache untuk Certbot. Sekarang jalankan perintah berikut untuk mendapatkan dan menginstal sertifikat TLS.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --must-staple -d pma.example.com --email [email protected]
Penjelasan:
- –apache: Gunakan autentikator dan penginstal Apache
- –setuju-untuk :Setuju dengan persyaratan layanan Let's Encrypt
- –mengalihkan :Tambahkan pengalihan 301.
- –hsts :Tambahkan header Strict-Transport-Security ke setiap respons HTTP.
- –staple-ocsp :Mengaktifkan Stapel OCSP.
- –harus ditempel :Menambahkan ekstensi OCSP Must Staple ke sertifikat.
- -d flag diikuti oleh daftar nama domain, dipisahkan dengan koma. Anda dapat menambahkan hingga 100 nama domain.
- –email :Email yang digunakan untuk pendaftaran dan kontak pemulihan.
Anda akan ditanya apakah Anda ingin menerima email dari EFF (Electronic Frontier Foundation). Setelah memilih Y atau T, sertifikat TLS Anda akan otomatis diperoleh dan dikonfigurasi untuk Anda, yang ditunjukkan oleh pesan di bawah ini.
Langkah 7:Jalankan Skrip Pengaturan phpMyAdmin
Masukkan yang berikut ini di bilah alamat browser Anda.
your-server-ip/phpmyadmin/setup
atau
pma.example.com/setup
Klik New Server
tombol untuk mengkonfigurasi server.
Kemudian cukup klik tombol Apply
tombol.
Selanjutnya, klik tombol Tampilan untuk menampilkan file konfigurasi.
Dalam /usr/share/phpmyadmin/
direktori, buat file config.inc.php.
sudo nano /usr/share/phpmyadmin/config.inc.php
Salin konten config.inc.php
dari halaman setup phpMyAdmin dan paste ke /usr/share/phpmyadmin/config.inc.php
berkas.
Langkah 8:Memecahkan Masalah Kesalahan Masuk phpMyAdmin
Sekarang jika Anda mencoba masuk ke phpMyAdmin dengan akun root MariaDB, Anda mungkin melihat kesalahan berikut.
#1698 - Access denied for user 'root '@'localhost'
dan
mysqli_real_connect(): (HY000/1698): Access denied for user 'root '@'localhost'
Jika Anda login dengan pengguna phpmyadmin
, Anda tidak akan melihat kesalahan di atas. Namun, pengguna phpmyadmin
hanya dapat digunakan untuk mengelola phpmyadmin
basis data. Penyebab kesalahan adalah bahwa secara default pengguna root MariDB diautentikasi melalui plugin unix_socket, alih-alih menggunakan mysql_native_password
pengaya. Untuk mengatasi masalah ini, kita dapat membuat pengguna admin lain dan memberikan semua hak istimewa kepada pengguna admin baru.
Masuk ke server MariaDB dari baris perintah.
sudo mysql -u root
Buat pengguna admin dengan otentikasi kata sandi.
create user [email protected] identified by 'your-preferred-password';
Berikan semua hak istimewa di semua database.
grant all privileges on *.* to [email protected] with grant option;
Hapus hak istimewa dan keluar;
flush privileges; exit;
Sekarang Anda dapat masuk ke phpMyAmin dengan admin
akun dan kelola semua basis data.
Langkah 9:Siapkan Penyimpanan Konfigurasi phpMyAdmin
Sekarang di panel kontrol phpMyAdmin, Anda dapat melihat pesan peringatan.
The phpMyAdmin configuration storage is not completely configured, some extended features have been deactivated. Find out why. Or alternately go to 'Operations' tab of any database to set it up there.
Klik tautan Cari tahu alasannya. Kemudian klik link Create untuk membuat tabel di phpmyadmin
basis data.
Langkah 10:Membatasi Akses ke Direktori /setup
Untuk membatasi akses ke direktori /setup, kita dapat mengaktifkan otentikasi kata sandi dasar dengan server web Apache. Jalankan perintah berikut untuk mengatur kata sandi untuk pengguna admin
. /etc/apache2/htpasswd
file digunakan untuk menyimpan nama pengguna dan kata sandi.
sudo htpasswd -c /etc/apache2/htpasswd admin
Kemudian edit file konfigurasi Apache untuk phpMyAdmin
sudo nano /etc/apache2/sites-available/phpmyadmin-le-ssl.conf
atau
sudo nano /etc/apache2/conf-available/phpmyadmin.conf
Tambahkan baris berikut.
# Authorize for setup <Directory /usr/share/phpmyadmin/setup> <IfModule mod_authz_core.c> <IfModule mod_authn_file.c> AuthType Basic AuthName "phpMyAdmin Setup" AuthUserFile /etc/apache2/htpasswd </IfModule> Require valid-user </IfModule> </Directory>
Simpan dan tutup file. Kemudian muat ulang Apache agar perubahan diterapkan.
sudo systemctl reload apache2
Jika Anda mengakses skrip pengaturan phpMyAdmin lagi, Anda akan diminta untuk memasukkan nama pengguna dan kata sandi.
Aktifkan Otentikasi Dua Faktor
Anda juga dapat memperkuat phpMyAdmin dengan mengaktifkan otentikasi dua faktor, yang merupakan fitur yang ditambahkan di versi 4.8. Untuk mengaktifkannya, login ke phpMyAdmin. Lalu pergi ke Settings
-> Two-factor authentication
dan pilih Aplikasi otentikasi (2FA) .
Setelah mengeklik Konfigurasikan autentikasi dua faktor tombol, Anda akan disajikan dengan kode QR, yang perlu Anda pindai dengan aplikasi autentikasi dua faktor di ponsel Anda.
Google Authenticator adalah aplikasi 2FA yang populer, tetapi saya merekomendasikan FreeOTP, yang merupakan aplikasi 2FA open-source yang dikembangkan oleh Red Hat. Setelah Anda memasukkan kode otentikasi yang dihasilkan oleh aplikasi 2FA Anda, otentikasi dua faktor diaktifkan. Jika sekarang Anda keluar dan masuk kembali, Anda harus memasukkan kode otentikasi selain nama pengguna dan kata sandi.