phpMyAdmin adalah alat gratis dan sumber terbuka untuk mengelola server MySQL dan MariaDB melalui antarmuka berbasis web. Dengan phpMyAdmin, Anda dapat membuat dan mengelola database dan pengguna, menjalankan pernyataan SQL, mengimpor dan mengekspor data, dan melakukan aktivitas database seperti, membuat, menghapus, tabel, kolom, indeks, izin, dan banyak lagi. phpMyAdmin adalah salah satu alat administrasi yang paling populer dan paling banyak digunakan, terutama untuk layanan hosting web.
Fitur
- Menyediakan antarmuka web yang sederhana dan ramah pengguna.
- Impor data dari CSV dan SQL.
- Mendukung sebagian besar fitur MySQL termasuk, membuat, menyalin, melepas, mengganti nama, melepaskan dan mengubah basis data, tabel, bidang, dan indeks.
- Memungkinkan Anda mengekspor data ke berbagai format seperti, PDF, CSV, SQL, XML, dan banyak lagi.
- Mengelola beberapa server.
- Membuat kueri kompleks menggunakan Query-by-example (QBE).
Dalam tutorial ini, kami akan menunjukkan cara menginstal dan mengamankan phpMyAdmin di server CentOS 8.
Persyaratan
- Server yang menjalankan CentOS 8.
- Kata sandi root dikonfigurasi di server.
Instal Server LAMP
Pertama, Anda perlu menginstal Apache, MariaDB, PHP dan library PHP lainnya ke server Anda. Anda dapat menginstal semuanya dengan perintah berikut:
dnf install httpd mariadb-server php php-pdo php-pecl-zip php-json php-common php-fpm php-mbstring php-cli php-mysqlnd php-json php-mbstring wget unzip
Setelah semua paket terinstal, mulai layanan Apache dan MariaDB dan aktifkan untuk memulai setelah sistem reboot dengan perintah berikut:
systemctl start httpd
systemctl start mariadb
systemctl enable httpd
systemctl enable mariadb
Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.
Konfigurasi MariaDB
Secara default, MariaDB tidak diamankan. Jadi, Anda harus mengamankannya terlebih dahulu. Anda dapat melakukannya dengan menjalankan skrip mysql_secure_installation:
mysql_secure_installation
Jawab semua pertanyaan seperti yang ditunjukkan di bawah ini:
Set root password? [Y/n] Y New password: Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y
Setelah Anda selesai, Anda akan melihat output berikut:
... Success! Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB!
Pada titik ini, instalasi MariaDB Anda aman.
Instal phpMyAdmin
Secara default, phpMyAdmin tidak tersedia di repositori default CentOS 8. Jadi, Anda perlu mengunduh phpMyAdmin versi terbaru dari situs resminya. Anda dapat mengunduhnya dengan perintah berikut:
wget https://files.phpmyadmin.net/phpMyAdmin/4.9.2/phpMyAdmin-4.9.2-all-languages.zip
Setelah diunduh, unzip file yang diunduh dengan perintah berikut:
unzip phpMyAdmin-4.9.2-all-languages.zip
Selanjutnya, pindahkan konten yang diekstrak ke direktori /usr/share seperti yang ditunjukkan di bawah ini:
mv phpMyAdmin-4.9.2-all-languages /usr/share/phpmyadmin
Selanjutnya, ubah direktori menjadi /usr/share/phpmyadmin dan ganti nama file config.sample.inc.php:
cd /usr/share/phpmyadmin
mv config.sample.inc.php config.inc.php
Selanjutnya, buka file dengan editor teks favorit Anda seperti yang ditunjukkan di bawah ini:
nano config.inc.php
Ubah baris berikut:
$cfg['blowfish_secret'] = 'your-secret-password';
Simpan dan tutup file setelah Anda selesai. Kemudian, impor create_tables.sql dengan perintah berikut:
mysql < /usr/share/phpmyadmin/sql/create_tables.sql -u root -p
Berikan kata sandi root Anda saat diminta untuk mengimpor tabel.
Selanjutnya, buat direktori tmp untuk phpmyadmin dan berikan izin yang sesuai:
mkdir /usr/share/phpmyadmin/tmp
chown -R apache:apache /usr/share/phpmyadmin
chmod 777 /usr/share/phpmyadmin/tmp
Konfigurasi Apache untuk phpMyAdmin
Selanjutnya, Anda perlu membuat file konfigurasi virtual host Apache untuk phpMyAdmin. Anda dapat membuatnya dengan perintah berikut:
nano /etc/httpd/conf.d/phpmyadmin.conf
Tambahkan baris berikut:
Alias /phpmyadmin /usr/share/phpmyadmin <Directory /usr/share/phpmyadmin/> AddDefaultCharset UTF-8 <IfModule mod_authz_core.c> # Apache 2.4 <RequireAny> Require all granted </RequireAny> </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow Deny from All Allow from 127.0.0.1 Allow from ::1 </IfModule> </Directory> <Directory /usr/share/phpmyadmin/setup/> <IfModule mod_authz_core.c> # Apache 2.4 <RequireAny> Require all granted </RequireAny> </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow Deny from All Allow from 127.0.0.1 Allow from ::1 </IfModule> </Directory>
Simpan dan tutup file setelah Anda selesai. Kemudian, restart layanan Apache dengan perintah berikut:
systemctl restart httpd
Anda dapat memeriksa status Apache dengan perintah berikut:
systemctl status httpd
Anda akan melihat output berikut:
? httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Drop-In: /usr/lib/systemd/system/httpd.service.d ??php-fpm.conf Active: active (running) since Wed 2019-12-18 01:07:52 EST; 6s ago Docs: man:httpd.service(8) Main PID: 5636 (httpd) Status: "Started, listening on: port 80" Tasks: 213 (limit: 25044) Memory: 28.7M CGroup: /system.slice/httpd.service ??5636 /usr/sbin/httpd -DFOREGROUND ??5639 /usr/sbin/httpd -DFOREGROUND ??5640 /usr/sbin/httpd -DFOREGROUND ??5641 /usr/sbin/httpd -DFOREGROUND ??5642 /usr/sbin/httpd -DFOREGROUND Dec 18 01:07:52 centos8 systemd[1]: Stopped The Apache HTTP Server. Dec 18 01:07:52 centos8 systemd[1]: Starting The Apache HTTP Server... Dec 18 01:07:52 centos8 httpd[5636]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::200:d0> Dec 18 01:07:52 centos8 httpd[5636]: Server configured, listening on: port 80 Dec 18 01:07:52 centos8 systemd[1]: Started The Apache HTTP Server.
Konfigurasi SELinux dan Firewall
Secara default, SELinux diaktifkan di CentOS 8. Jadi, Anda perlu mengonfigurasi SELinux agar phpMyAdmin berfungsi dengan benar.
Pertama, instal paket policycoreutils-python-utils untuk mengelola lingkungan SELinux dengan perintah berikut:
dnf install policycoreutils-python-utils
Selanjutnya, aktifkan akses ke direktori /usr/share/phpmyadmin dengan perintah berikut:
semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/phpmyadmin/'
semanage fcontext -a -t httpd_sys_rw_content_t "/usr/share/phpmyadmin/tmp(/.*)?"
Sekarang ulangi semua file di direktori phpmyadmin Anda dengan menjalankan perintah berikut:
restorecon -Rv '/usr/share/phpmyadmin/'
Selanjutnya, Anda perlu membuat aturan firewall untuk mengizinkan layanan HTTP dari jaringan eksternal. Anda dapat mengizinkannya dengan perintah berikut:
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
phpMyAdmin sekarang diinstal dan dikonfigurasi. Sekarang saatnya untuk memeriksa apakah itu berfungsi atau tidak.
Buka browser web Anda dan ketik URL http://your-server-ip/phpmyadmin. Anda akan diarahkan ke halaman berikut:
phpMyAdmin aman
Pada titik ini, instance phpMyAdmin berfungsi dengan baik. Namun, mengamankan instance phpMyAdmin Anda dari dunia luar merupakan tugas penting bagi Anda. Di bagian ini, kami akan menunjukkan cara mengamankan instance phpMyAdmin Anda.
Izinkan phpMyAdmin dari IP Tertentu
Pertama, Anda perlu mengonfigurasi phpMyAdmin agar hanya dapat diakses dari alamat IP koneksi rumah Anda.
Anda dapat mengkonfigurasinya dengan mengedit file /etc/httpd/conf.d/phpmyadmin.conf:
nano /etc/httpd/conf.d/phpmyadmin.conf
Temukan baris berikut:
<RequireAny> Require all granted </RequireAny>
Dan, ganti dengan yang berikut ini:
<RequireAny> Require ip your-home--connection-ip-address Require ip ::1 </RequireAny>
Simpan dan tutup file setelah Anda selesai.
Konfigurasikan Lapisan Otentikasi Ekstra
Sebaiknya lindungi direktori phpmyadmin Anda dengan sandi dengan menyiapkan otentikasi dasar.
Untuk melakukannya, buat file otentikasi baru menggunakan alat htpasswd seperti yang ditunjukkan di bawah ini:
mkdir /etc/phpmyadmin
htpasswd -c /etc/phpmyadmin/.htpasswd admin
Anda akan diminta untuk memberikan kata sandi admin Anda seperti yang ditunjukkan di bawah ini:
New password: Re-type new password: Adding password for user admin
Selanjutnya, Anda perlu mengkonfigurasi Apache untuk menggunakan file .htpasswd. Anda dapat melakukannya dengan mengedit file /etc/httpd/conf.d/phpmyadmin.conf.
nano /etc/httpd/conf.d/phpmyadmin.conf
Tambahkan baris berikut di bawah baris "AddDefaultCharset UTF-8":
Options +FollowSymLinks +Multiviews +Indexes AllowOverride None AuthType basic AuthName "Authentication Required" AuthUserFile /etc/phpmyadmin/.htpasswd Require valid-user
Simpan file dan mulai ulang layanan Apache agar perubahan diterapkan:
systemctl restart httpd
Akses phpMyAdmin
Sekarang, instance phpMyAdmin Anda diamankan dengan lapisan keamanan ekstra. Buka browser web Anda dan ketik URL http://your-server-ip/phpmyadmin. Anda akan diminta untuk memasukkan kredensial login dari pengguna yang Anda buat sebelumnya seperti yang ditunjukkan di bawah ini:
Berikan nama pengguna dan kata sandi admin Anda, lalu klik tombol OK. Anda akan diarahkan ke halaman login phpMyAdmin:
Sekarang, berikan kredensial login pengguna administratif MySQL Anda dan klik tombol Go. Anda akan melihat halaman berikut:
Kesimpulan
Selamat! Anda telah berhasil menginstal dan mengamankan phpMyAdmin di server CentOS 8. Anda sekarang dapat membuat database, pengguna, tabel dan mengelolanya dari antarmuka berbasis web. Jangan ragu untuk bertanya kepada saya jika Anda memiliki pertanyaan.