phpMyAdmin adalah aplikasi gratis, open-source, dan berbasis web yang digunakan untuk mengelola database MySQL dan MariaDB dari antarmuka web. Membuat dan mengelola database dari antarmuka baris perintah sangat sulit bagi pengguna pemula. phpMyAdmin menyediakan cara yang lebih mudah untuk mengelola database MySQL, akun pengguna, dan hak istimewa, mengeksekusi pernyataan SQL, mengimpor dan mengekspor data melalui browser web.
Dalam posting ini, kami akan menunjukkan cara menginstal dan mengamankan alat administrasi database phpMyAdmin di Debian 11.
Prasyarat
- Server yang menjalankan Debian 11.
- Kata sandi root dikonfigurasi di server.
Memulai
Sebelum memulai, sebaiknya perbarui paket sistem Anda ke versi terbaru. Anda dapat memperbarui semua paket menggunakan perintah berikut:
apt-get update -y
Setelah sistem Anda diperbarui, Anda dapat melanjutkan ke langkah berikutnya.
Instal Server LAMP
phpMyAdmin adalah aplikasi berbasis PHP dan berjalan di server web. Jadi, Anda perlu menginstal server LAMP di server Anda. Anda dapat menginstalnya menggunakan perintah berikut:
apt-get install apache2 mariadb-server libapache2-mod-php php-cli php-mysql php-zip php-curl php-xml php-mbstring php-zip php-gd unzip -y
Setelah semua paket terinstal, Anda dapat melanjutkan ke langkah berikutnya.
Instal dan Konfigurasi phpMyAdmin
Pertama, unduh versi terbaru phpMyAdmin dari situs resminya menggunakan perintah berikut:
wget https://files.phpmyadmin.net/phpMyAdmin/5.1.1/phpMyAdmin-5.1.1-all-languages.zip
Setelah unduhan selesai, unzip file yang diunduh dengan perintah berikut:
unzip phpMyAdmin-5.1.1-all-languages.zip
Selanjutnya, pindahkan direktori hasil ekstrak ke /usr/share dengan perintah berikut:
mv phpMyAdmin-5.1.1-all-languages /usr/share/phpmyadmin
Selanjutnya, buat direktori yang diperlukan dengan perintah berikut:
mkdir -p /var/lib/phpmyadmin/tmp
Selanjutnya, atur kepemilikan yang tepat ke direktori phpMyAdmin:
chown -R www-data:www-data /var/lib/phpmyadmin
Selanjutnya, salin contoh file konfigurasi phpMyAdmin:
cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php
Selanjutnya, instal pwgen dan buat kunci rahasia dengan perintah berikut:
apt-get install pwgen -y
pwgen -s 32 1
Keluaran:
pau9t1SG6lmaeCFxKqeeaY5N4erIa25K
Selanjutnya, edit file config.inc.php dan konfigurasikan:
nano /usr/share/phpmyadmin/config.inc.php
Tentukan kunci rahasia Anda dan batalkan komentar pada baris berikut:
$cfg['blowfish_secret'] = 'pau9t1SG6lmaeCFxKqeeaY5N4erIa25K'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */ $cfg['Servers'][$i]['controluser'] = 'pma'; $cfg['Servers'][$i]['controlpass'] = 'password'; $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'; $cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';
Simpan dan tutup file setelah Anda selesai.
Buat Pengguna Admin phpMyAdmin
Selalu disarankan untuk membuat pengguna terpisah untuk mengelola database melalui phpMyAdmin.
Pertama, impor tabel phpMyAdmin ke database MariaDB menggunakan perintah berikut:
mysql < /usr/share/phpmyadmin/sql/create_tables.sql
Selanjutnya, sambungkan ke shell MariaDB dengan perintah berikut:
mysql
Setelah Anda terhubung, berikan semua hak istimewa yang diperlukan ke database phpmyadmin dengan perintah berikut:
MariaDB [(none)]> GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY 'password';
Selanjutnya, buat pengguna admin dengan perintah berikut:
MariaDB [(none)]> CREATE USER myadmin;
Selanjutnya, berikan semua hak istimewa kepada pengguna admin dengan perintah berikut:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'myadmin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
Selanjutnya, flush hak istimewa dan keluar dari shell MariaDB menggunakan perintah berikut:
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.
Konfigurasi Apache untuk phpMyAdmin
Selanjutnya, Anda perlu membuat file konfigurasi virtual host Apache untuk phpMyAdmin. Anda dapat membuatnya menggunakan perintah berikut:
nano /etc/apache2/conf-available/phpmyadmin.conf
Tambahkan baris berikut:
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> # 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/phpmyadmin/htpasswd.setup </IfModule> Require valid-user </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 setelah selesai kemudian aktifkan file konfigurasi phpMyAdmin dengan perintah berikut:
a2enconf phpmyadmin.conf
Selanjutnya, muat ulang layanan Apache untuk menerapkan perubahan:
systemctl reload apache2
Anda dapat memeriksa status layanan Apache menggunakan perintah berikut:
systemctl status apache2
Anda akan melihat output berikut:
? apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2021-08-17 10:16:28 UTC; 2s ago Docs: https://httpd.apache.org/docs/2.4/ Process: 45027 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Main PID: 45031 (apache2) Tasks: 6 (limit: 2341) Memory: 14.6M CPU: 89ms CGroup: /system.slice/apache2.service ??45031 /usr/sbin/apache2 -k start ??45032 /usr/sbin/apache2 -k start ??45033 /usr/sbin/apache2 -k start ??45034 /usr/sbin/apache2 -k start ??45035 /usr/sbin/apache2 -k start ??45036 /usr/sbin/apache2 -k start Aug 17 10:16:28 debian systemd[1]: Starting The Apache HTTP Server...
Akses phpMyAdmin
Pada titik ini, phpMyAdmin diinstal dan dikonfigurasi. Sekarang, buka browser web Anda dan akses phpMyAdmin menggunakan URL http://your-server-ip/phpmyadmin . Anda akan melihat halaman login phpMyAdmin:
Berikan nama pengguna dan sandi admin Anda, lalu klik Buka tombol. Anda akan melihat dasbor phpMyAdmin di halaman berikut:
phpMyAdmin aman
Sebaiknya amankan phpMyAdmin dengan autentikasi dua faktor. Anda dapat melakukannya menggunakan fungsi otentikasi dan otorisasi .htaccess.
Pertama, edit file konfigurasi phpMyAdmin:
nano /etc/apache2/conf-available/phpmyadmin.conf
Tambahkan baris "AllowOverride All" di blok server berikut:
<Directory /usr/share/phpmyadmin> Options FollowSymLinks DirectoryIndex index.php AllowOverride All <IfModule mod_php5.c>
Simpan dan tutup file setelah selesai kemudian restart layanan Apache:
systemctl restart apache2
Selanjutnya, buat file .htaccess dan tentukan jenis otentikasi Apache:
nano /usr/share/phpmyadmin/.htaccess
Tambahkan baris berikut:
AuthType Basic AuthName "Restricted Files" AuthUserFile /usr/share/phpmyadmin/.htpasswd Require valid-user
Simpan dan tutup file kemudian buat pengguna dengan perintah berikut:
htpasswd -c /usr/share/phpmyadmin/.htpasswd secureuser
Anda akan diminta untuk mengatur kata sandi seperti yang ditunjukkan di bawah ini:
New password: Re-type new password: Adding password for user secureuser
Verifikasi phpMyAdmin
Pada titik ini, phpMyAdmin diamankan dengan otentikasi tambahan. Untuk memverifikasinya, buka browser web Anda dan akses phpMyAdmin menggunakan URL http://your-server-ip/phpmyadmin . Anda akan dimintai username dan password tambahan seperti gambar di bawah ini:
Setelah memberikan nama pengguna dan kata sandi Anda, Anda akan diarahkan ke halaman login phpMyAdmin biasa.
Kesimpulan
Selamat! Anda telah berhasil menginstal dan mengamankan phpMyAdmin di Debian 11. Sekarang Anda dapat menjelajahi phpMyAdmin dan mulai mengelola database Anda dari browser web.