Cara Install phpMyAdmin dengan Nginx di Debian 12, 11 atau 10

phpMyAdmin adalah alat sumber terbuka yang banyak digunakan dan ditulis dalam PHP, dirancang untuk menangani administrasi MySQL dan MariaDB melalui web. Ia menawarkan antarmuka grafis intuitif untuk melakukan berbagai operasi database seperti membuat, memodifikasi, dan menghapus database, tabel, bidang, atau baris, menjalankan pernyataan SQL, dan mengelola izin pengguna. Menginstal phpMyAdmin di Debian 12, 11, atau 10 melibatkan pengaturan tumpukan LEMP (Linux, NGINX, MySQL/MariaDB, PHP) secara manual, diikuti dengan mengunduh dan mengonfigurasi versi terbaru phpMyAdmin.

Menggunakan phpMyAdmin menyederhanakan pengelolaan basis data, sehingga dapat diakses bahkan oleh pengguna yang mungkin tidak nyaman menggunakan baris perintah untuk pengoperasian basis data. Panduan ini akan memandu Anda melalui langkah-langkah untuk menginstal tumpukan LEMP secara manual, mengkonfigurasi phpMyAdmin, dan mengamankan pengaturan Anda.

Instal LEMP Stack di Debian untuk phpMyAdmin

Langkah 1: Menyegarkan Sistem Debian

Mulai perbarui sistem Debian Anda dengan paket terbaru untuk pengaturan yang aman dan bebas kesalahan. Langkah proaktif ini bertujuan untuk mengurangi kemungkinan terjadinya konflik pada saat proses instalasi.

sudo apt update && sudo apt upgrade

Jika Anda memperbarui Kernel atau banyak paket, diperlukan reboot.

Langkah 2: Instal Nginx

Pertama, instal Nginx untuk membuat tumpukan LEMP. Jalankan perintah berikut:

sudo apt install nginx

Biasanya, sistem mengaktifkan layanan Nginx secara default setelah instalasi. Namun, selalu periksa statusnya dengan hati-hati dan pastikan berfungsi sesuai harapan:

systemctl status nginx

Jika server tidak aktif, gunakan perintah berikut untuk mengaktifkan Nginx dan memastikan Nginx dimulai secara otomatis setiap kali reboot:

sudo systemctl enable nginx --now

Perintah ini menginstal versi default Nginx.

Catatan: Jika Anda tertarik untuk menerapkan Nginx versi stabil atau arus utama terbaru, pertimbangkan untuk mengikuti panduan kami tentang cara mengupgrade Nginx di Debian 12, 11, atau 10 Linux.

Langkah 3: Instal MariaDB

Selanjutnya, instal komponen database dalam pengaturan tumpukan LEMP. Banyak yang memilih MariaDB daripada MySQL karena kinerjanya yang unggul dan fitur tambahannya.

Untuk menginstal MariaDB, jalankan perintah berikut:

sudo apt install mariadb-server mariadb-client

Catatan: Jika Anda ingin menginstal versi MariaDB yang berbeda dari repositori resmi MariaDB.org, panduan kami tentang menginstal MariaDB 11.x atau 10.x di Debian 12, 11, atau 10 Linux.

Setelah selesai, konfirmasikan pengaktifan layanan MariaDB dan fungsi yang benar, serupa dengan verifikasi Anda terhadap Nginx:

systemctl status mariadb

Jika MariaDB tidak diaktifkan, gunakan perintah di bawah ini untuk mengaktifkannya dan pastikan MariaDB dimulai saat reboot.

sudo systemctl enable mariadb --now

Untuk meningkatkan keamanan MariaDB Anda, jalankan skrip keamanan yang disediakan, mysql_secure_installation, selama proses instalasi. Pengaturan default pada instalasi MariaDB baru sering kali meninggalkan kerentanan yang dapat dieksploitasi oleh pelaku jahat.

sudo mysql_secure_installation

Menjalankan skrip keamanan akan memandu Anda melalui beberapa langkah untuk memperkuat keamanan MariaDB Anda. Langkah-langkah ini melibatkan pengaturan kata sandi root, membatasi akses jarak jauh, menghapus akun pengguna anonim, dan menghapus database pengujian.

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n] Y <---- Type Y then press the ENTER KEY.
Enabled successfully!
Reloading privilege tables..
 ... Success!


You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] Y <---- Type Y then press the ENTER KEY.
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y <---- Type Y then press the ENTER KEY.
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y <---- Type Y then press the ENTER KEY.
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y <---- Type Y then press the ENTER KEY.
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y <---- Type Y then press the ENTER KEY.
 ... 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!

Langkah 4: Instal PHP

Instal layanan PHP untuk menyelesaikan pengaturan tumpukan LEMP. PHP, melalui layanan PHP-FPM dan modul tambahan yang dibutuhkan oleh phpMyAdmin, berfungsi sebagai jembatan antara Nginx dan MariaDB.

Catatan: Jika Anda ingin menginstal versi PHP tertentu, lihat panduan kami di menginstal versi PHP 8.x apa pun yang tersedia di Debian 12, 11, atau 10 Linux.

Untuk menerapkan PHP dan PHP-FPM, bersama dengan modul yang diperlukan pada sistem Debian Anda, jalankan perintah berikut:

sudo apt install php-fpm php-mbstring php-bcmath php-xml php-mysql php-common php-gd php-cli php-curl php-zip php-gd

Setelah instalasi PHP, konfirmasikan status layanan PHP, seperti yang Anda lakukan untuk MariaDB dan Nginx.

Untuk PHP 8.2, yang merupakan default pada Debian Bookworm, misalnya, perintah spesifiknya adalah:

systemctl status php8.2-fpm

Jika layanan PHP tetap tidak aktif, gunakan perintah berikut untuk mengaktifkannya dan memastikan layanan dimulai secara otomatis setiap kali reboot.

sudo systemctl enable php-fpm --now

Selesaikan phpMyAdmin dengan Nginx dan Debian

Bagian ini menjelaskan prosedur pengadaan arsip phpMyAdmin dan menyiapkan direktori, izin, dan entri database yang diperlukan.

Langkah 1: Buat Pengguna Super untuk phpMyAdmin

Secara konvensional, Anda dapat mengakses phpMyAdmin menggunakan pengguna root. Namun, untuk mematuhi praktik keamanan yang kuat, buatlah pengguna super yang berbeda daripada menggunakan pengguna root. Konsep ini sejalan dengan praktik Linux yang memanfaatkan pengguna sudo daripada login langsung sebagai root.

Pertama, autentikasi diri Anda di antarmuka terminal:

sudo mariadb -u root

Setelah otentikasi berhasil, langkah selanjutnya melibatkan pembuatan database di dalam terminal MariaDB.

CREATE USER PMAUSER IDENTIFIED BY 'password here change';

Selanjutnya, buat pengguna dan berikan mereka izin yang diperlukan, seperti yang diilustrasikan di bawah ini:

GRANT ALL PRIVILEGES ON *.* TO 'PMAUSER'@'localhost' IDENTIFIED BY 'password here change' WITH GRANT OPTION;

Mengganti kata sandi placeholder “kata sandi di sini ubah” dengan kata sandi yang aman sangat penting sebelum menjalankan perintah.

Setelah menetapkan pengguna dan mengatur izin, ingatlah untuk menyegarkan hak istimewa untuk perubahan tersebut.

FLUSH PRIVILEGES;

Untuk keluar dari terminal MariaDB, gunakan perintah berikut.

QUIT;

Langkah 2: Unduh Kode Sumber phpMyAdmin

Bagian ini menjelaskan cara mendapatkan arsip sumber untuk phpMyAdmin. Memanfaatkan terminal baris perintah menyediakan metode yang efisien untuk mengunduh versi terbaru dalam semua bahasa.

Untuk mengunduh arsip phpMyAdmin, jalankan perintah berikut di terminal.

DATA="$(wget https://www.phpmyadmin.net/home_page/version.txt -q -O-)"
URL="$(echo $DATA | cut -d ' ' -f 3)"
VERSION="$(echo $DATA | cut -d ' ' -f 1)"
wget https://files.phpmyadmin.net/phpMyAdmin/${VERSION}/phpMyAdmin-${VERSION}-all-languages.tar.gz

Jika Anda menginginkan phpMyAdmin versi bahasa Inggris saja, ganti baris terakhir dari perintah sebelumnya dengan yang berikut:

wget https://files.phpmyadmin.net/phpMyAdmin/${VERSION}/phpMyAdmin-${VERSION}-english.tar.gz

Setelah download, langkah selanjutnya adalah mengekstrak arsip phpMyAdmin dengan menjalankan perintah di bawah ini:

tar xvf phpMyAdmin-${VERSION}-all-languages.tar.gz

Langkah 3: Konfigurasikan phpMyAdmin

Fase selanjutnya melibatkan migrasi semua file yang diekstraksi ke tujuan akhirnya di direktori /var/www/ menggunakan perintah mv.

sudo mv phpMyAdmin-*/ /var/www/phpmyadmin

Saat Anda menginstal phpMyAdmin dari sumbernya, Anda akan melihat bahwa direktori TMP tidak ada secara default. Oleh karena itu, akan lebih baik jika Anda membuat direktori ini secara manual.

sudo mkdir /var/www/phpmyadmin/tmp

Direktori phpMyAdmin menyertakan file contoh konfigurasi default, yang perlu Anda ganti namanya agar phpMyAdmin dapat mengenalinya. Gunakan perintah CP untuk membuat salinan file default di direktori /var/www/phpmyadmin/, pastikan ada cadangan.

Untuk mereplikasi config.sample.inc.php ke config.inc.php, jalankan perintah berikut:

sudo cp /var/www/phpmyadmin/config.sample.inc.php /var/www/phpmyadmin/config.inc.php

Setelah menyalin file, buka dengan editor teks pilihan. Dalam contoh ini, kami menggunakan editor teks nano:

sudo nano /var/www/phpmyadmin/config.inc.php

phpMyAdmin menggunakan cipher Blowfish. Untuk mengubah pengaturan ini, navigasikan ke baris yang dimulai dengan $cfg['blowfish_secret'].

$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

Tetapkan string yang terdiri dari 32 karakter acak dalam tanda kutip tunggal. Gunakan program pwgen sebagai metode mudah untuk menghasilkan string ini. Jalankan perintah terminal berikut untuk menginstal pwgen:

Hal ini membuat semua tindakan tetap jelas dan dikaitkan langsung dengan pengguna (atau siapa pun yang melakukan tindakan tersebut).

sudo apt install pwgen 

Setelah instalasi, jalankan perintah di bawah ini:

pwgen -s 32 1

Perintah ini akan menghasilkan string 32 karakter acak untuk dijadikan rahasia blowfish.

Contoh memasukkan cipher ke dalam file konfigurasi (Jangan ditiru):

UvqAlsvTxRdYIyO8TnlkJsVQaWs2LfgL

Contoh pada file konfigurasi:

Bagi sebagian besar pengguna, pengaturan default yang tersisa seharusnya memadai. Namun, jika server Anda berada di server lain dalam jaringan Anda, Anda perlu mencari dan mengubah baris $cfg['Servers'][$i]['host'] untuk mencerminkan alamat IP pribadi. Ilustrasi perubahan ini ditunjukkan di bawah ini:

$cfg['Servers'][$i]['host'] = '192.168.55.101';

Langkah 4: Konfigurasikan Izin File phpMyAdmin

Menetapkan izin kepada pemilik direktori kepada pengguna www sangat penting untuk memastikan kompatibilitas dan keamanan.

Untuk mengatur izin chown:

sudo chown -R www-data:www-data /var/www/phpmyadmin/

Untuk mengatur izin chmod:

sudo find /var/www/phpmyadmin/ -type d -exec chmod 755 {} \;
sudo find /var/www/phpmyadmin/ -type f -exec chmod 644 {} \;

Di bagian selanjutnya, kita akan membahas pembuatan dan pengaturan Blok layanan Nginx untuk layanan phpMyAdmin Anda.

Menyiapkan Blok Server NGINX untuk phpMyAdmin

Untuk mengakses antarmuka web phpMyAdmin, buat blok server NGINX sebagai langkah penting. Buat sub-domain yang berbeda untuk meningkatkan langkah-langkah keamanan dan menangkis serangan brute force, yang sangat disarankan. Jangan ragu untuk memberi nama sub-domain ini sesuai keinginan Anda.

Langkah 1: Buat Blok Server Nginx untuk phpMyAdmin di Debian

Mari kita mulai dengan membuat dan membuka blok server Anda dengan editor teks nano. Jalankan perintah berikut:

sudo nano /etc/nginx/sites-available/phpmyadmin.conf

Langkah 2: Konfigurasikan Blok Server Nginx

Setelah berhasil membuka file blok server, salin dan tempel teks berikut ke dalam file. Pastikan untuk mengganti URL domain dengan milik Anda:

server {
  listen 80;
  listen [::]:80;
  server_name pma.example.com;
  root /var/www/phpmyadmin/;
  index index.php index.html index.htm index.nginx-debian.html;

  access_log /var/log/nginx/phpmyadmin_access.log;
  error_log /var/log/nginx/phpmyadmin_error.log;

  location / {
    try_files $uri $uri/ /index.php;
  }

  location ~ ^/(doc|sql|setup)/ {
    deny all;
  }

  location ~ \.php$ {
    fastcgi_pass unix:/run/php/php8.2-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
  }

  location ~ /\.ht {
    deny all;
  }
}

Berikut adalah beberapa poin penting yang perlu diperhatikan tentang contoh di atas:

  • /run/php/php8.2-fpm.sock; – Jalur ini harus mencerminkan versi PHP-FPM yang digunakan. Misalnya, bisa jadi 8.3, 8.1, 8.0, 7.4, dll.
  • root /var/www/phpmyadmin/; – Ini mengacu pada jalur yang ditentukan dalam panduan ini. Jika phpMyAdmin Anda terletak di tempat lain, pastikan untuk memperbarui baris ini.

Jika Anda satu-satunya orang yang mengakses server dari alamat IP statis, pertimbangkan untuk menambahkan kode berikut di atas entri lokasi pertama:

  allow <your ip address>;
  deny all; 

  location / {
    try_files $uri $uri/ /index.php;
  }

Kode di atas secara efektif memblokir pengunjung tidak sah ke halaman dengan kesalahan 403, hanya memberikan akses ke alamat IP Anda. Ini merupakan pertahanan substansial terhadap serangan brute force, meskipun mungkin tidak cocok untuk semua pengaturan.

Langkah 3: Menyimpan dan Keluar dari Editor Teks

Untuk menyimpan perubahan Anda, tekan (CTRL+O), dan untuk keluar dari editor, tekan (CTRL+X).

Langkah 4: Membuat Symlink ke File Konfigurasi

Berikutnya, buatlah symbolic link dari direktori sites-available ke direktori sites-enabled tempat file konfigurasi berada:

sudo ln -s /etc/nginx/sites-available/phpmyadmin.conf /etc/nginx/sites-enabled/

Langkah 5: Melakukan Uji Uji Kering

Uji coba kering (dry run test) sangat penting sebelum memulai kembali layanan NGINX. Tindakan ini penting dalam lingkungan langsung, untuk memastikan bahwa modifikasi apa pun pada file konfigurasi Anda tidak akan memicu kesalahan NGINX:

sudo nginx -t

Jika konfigurasi Anda bebas dari kesalahan, output berikut akan menyambut Anda:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Langkah 6: Mulai Ulang Layanan NGINX Anda

Terakhir, agar perubahan menjadi efektif, mulai ulang layanan NGINX Anda:

sudo systemctl restart nginx

Itu merangkum bagian tentang cara membuat blok server NGINX untuk phpMyAdmin. Di bagian selanjutnya, Anda akan membuka dan masuk ke antarmuka web phpMyAdmin.

Menavigasi Antarmuka Web phpMyAdmin

Mulailah interaksi Anda dengan antarmuka phpMyAdmin dengan meluncurkan browser web pilihan Anda. Masukkan pma.example.com di bilah alamat, pastikan Anda mengganti “example” dengan nama domain atau alamat IP server Anda. Ingat, Anda juga dapat menggunakan localhost di lingkungan internal.

Setelah melakukan ini, Anda akan diarahkan ke layar login phpMyAdmin, seperti yang ditunjukkan pada gambar berikut:

Navigasikan melalui layar login dengan memasukkan kredensial Anda dan memilih “lanjutkan” atau “login.” Tindakan ini memberi Anda akses ke dasbor phpMyAdmin, yang digambarkan pada gambar berikutnya.

Sebagai pengguna phpMyAdmin pertama kali, Anda mungkin ingin mengenal “halaman status”. Ini memberikan wawasan komprehensif tentang status dan kesehatan database Anda.

Selain halaman statistik, phpMyAdmin juga menyertakan “sistem penasihat”. Fitur praktis ini menawarkan saran untuk peningkatan kinerja.

Namun, perlu diingat bahwa meskipun penasihat merekomendasikan menunggu selama 24 jam, sebagian besar menganggap minimal 72 jam lebih optimal. Hal ini memastikan bahwa pengambilan sampel database terjadi dalam jangka waktu yang lama, sehingga memberikan rekomendasi yang lebih akurat.

Selain itu, sistem penasihat tidak boleh menjadi satu-satunya dasar Anda untuk melakukan perubahan. Mengubah file konfigurasi MySQL atau MariaDB Anda memerlukan pertimbangan yang cermat, pengujian menyeluruh, dan mungkin beberapa iterasi. Tujuannya adalah mengoptimalkan konfigurasi untuk hasil terbaik, dan ini sering kali memerlukan waktu.

Amankan phpMyAdmin melalui Mari Enkripsi Sertifikat SSL

Buat Sertifikat SSL melalui Certbot

Untuk memperkuat keamanan instance phpMyAdmin Anda, jalankan Nginx melalui HTTPS menggunakan sertifikat SSL. Memanfaatkan Let's Encrypt, otoritas sertifikat terkenal yang menawarkan sertifikat SSL gratis, otomatis, dan terbuka, menyediakan metode paling mudah.

Pertama, instal paket certbot, yang membantu mengelola sertifikat SSL Let's Encrypt, dengan menjalankan:

sudo apt install python3-certbot-nginx -y

Setelah menyelesaikan instalasi paket certbot, buat sertifikat SSL Anda dengan menjalankan:

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d pma.example.com

Saat memulai proses instalasi sertifikat:

  • Sebuah prompt akan menanyakan tentang menerima email dari EFF (Electronic Frontier Foundation).
  • Baik Anda setuju (Y) atau tidak setuju (N), sistem akan secara otomatis menginstal dan mengonfigurasi sertifikat TLS Anda.
  • Konfigurasinya mencakup penerapan pengalihan HTTPS 301, menambahkan header Strict-Transport-Security, dan mengimplementasikan OCSP Stapling.
  • Ingatlah untuk mengganti email dan nama domain dalam perintah dengan detail Anda yang sebenarnya.

Setelah menyelesaikan penyiapan ini, URL Anda akan bermigrasi dari HTTP://pma.example.com ke HTTPS://pma.example.com, secara otomatis mengalihkan akses apa pun ke URL HTTP sebelumnya ke URL HTTPS yang aman.

Buat Pekerjaan Cron untuk Pembaruan SSL

Buat tugas cron yang secara otomatis memperbarui sertifikat Anda untuk menyederhanakan proses lebih lanjut. Certbot menyediakan skrip perpanjangan otomatis untuk tujuan ini. Sebelum menyiapkan pekerjaan ini, lakukan uji coba kering dengan bijaksana untuk memastikan semuanya beroperasi dengan benar menggunakan perintah berikut:

sudo certbot renew --dry-run

Untuk menjadwalkan perpanjangan otomatis, buka file crontab dengan menjalankan:

sudo crontab -e

Periksa perpanjangan sertifikat secara rutin—setidaknya sekali sehari—untuk memastikan sertifikat Anda tetap valid. Jika perpanjangan diperlukan, skrip akan secara otomatis memperbarui sertifikat. Gunakan sintaks cron untuk mengatur pembaruan pada waktu yang Anda inginkan.

00 00 */1 * * /usr/sbin/certbot-auto renew

Kesimpulan

Dengan phpMyAdmin berhasil diinstal dan dikonfigurasi pada sistem Debian Anda, Anda dapat mengelola database MySQL atau MariaDB secara efisien melalui antarmuka web yang ramah pengguna. Pembaruan rutin dan konfigurasi keamanan memastikan alat manajemen basis data Anda tetap aman dan terkini. Nikmati kemudahan dan fitur canggih yang ditawarkan phpMyAdmin untuk mengelola database Anda di Debian.

Joshua James
Ikuti aku
Postingan terbaru oleh Joshua James (Lihat semua)

Tinggalkan komentar