GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menginstal phpMyAdmin dengan Nginx (LEMP) di Ubuntu 18.04 LTS

Tutorial ini akan menunjukkan cara menginstal phpMyAdmin dengan Nginx, MariaDB dan PHP7.2 (LEMP) di Ubuntu 18.04. 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. Anda juga akan mempelajari cara mengaktifkan otentikasi dua faktor di phpMyAdmin.

Prasyarat

Untuk mengikuti tutorial ini, Anda harus menjalankan OS Ubuntu 18.04 di komputer lokal Anda atau di server jauh. Jika Anda mencari VPS (Virtual Private Server), maka Anda dapat mengklik tautan khusus ini untuk mendapatkan kredit gratis $100 di DigitalOcean. (Hanya untuk pengguna baru). Jika Anda sudah menjadi pengguna DigitalOcean, Anda dapat mengklik tautan khusus ini untuk mendapatkan kredit gratis senilai $50 di Vultr (hanya untuk pengguna baru).

Diasumsikan bahwa Anda telah menginstal LEMP stack di Ubuntu 18.04. Jika belum, silakan lihat tutorial berikut.

  • Cara Memasang LEMP stack (Nginx, MariaDB, PHP7.2) di Ubuntu 18.04

Setelah itu, mari kita mulai menginstal phpMyAdmin.

Langkah 1:Unduh dan Instal phpMyAdmin

phpMyAdmin disertakan dalam repositori perangkat lunak Ubuntu 18.04, sehingga kita dapat menginstalnya dengan mudah dengan perintah berikut.

sudo apt update
sudo apt install phpmyadmin

Selama instalasi, Anda akan diminta untuk memilih server web yang akan dikonfigurasi. Nginx tidak ada dalam daftar, jadi tekan tombol Tab dan tekan OK untuk melewati langkah ini.

Selanjutnya, pilih Yes untuk membuat database baru dan biarkan dbconfig-common untuk mengonfigurasinya.

Ini juga akan membuat pengguna database baru bernama phpmyadmin . Berikan kata sandi kepada pengguna ini.

Setelah selesai, database baru bernama phpmyadmin dibuat dan pengguna database phpmyadmin memiliki hak istimewa yang diperlukan untuk mengelola database ini. Jika Anda penasaran seperti saya, Anda dapat masuk ke MariaDB dan memeriksa hak istimewa apa phpmyadmin pengguna telah diberikan.

Anda dapat menggunakan perintah berikut untuk masuk ke server MariaDB.

sudo mysql -u root

Kemudian periksa hak istimewanya.

show grants for [email protected];

Keluaran:

Seperti yang Anda lihat, pengguna phpmyadmin memiliki semua hak istimewa pada database phpmyadmin . Sekarang Anda dapat keluar dengan menjalankan:

exit;

Langkah 2:Buat Blok Server Nginx

Untuk dapat mengakses antarmuka web phpMyAdmin, kita perlu membuat blok server Nginx dengan menjalankan perintah berikut.

sudo nano /etc/nginx/conf.d/phpmyadmin.conf

Kami akan mengkonfigurasinya sehingga kami dapat mengakses phpMyAdmin melalui sub-domain. Rekatkan teks berikut ke dalam file. Ganti pma.example.com dengan sub-domain Anda yang sebenarnya dan jangan lupa untuk membuat catatan A untuk itu.

server {
  listen 80;
  listen [::]:80;
  server_name pma.example.com;
  root /usr/share/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/php7.2-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
  }

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

File phpMyAdmin Anda ada di /usr/share/phpmyadmin/ direktori. Simpan dan tutup file. Kemudian uji konfigurasi Nginx.

sudo nginx -t

Jika pengujian berhasil, muat ulang Nginx agar perubahan diterapkan.

sudo systemctl reload nginx

Sekarang Anda seharusnya dapat mengakses antarmuka web phpMyAdmin melalui

pma.example.com

Perhatikan bahwa phpMyAdmin tidak akan berfungsi di Firefox versi terbaru. Anda dapat menggunakan Google Chrome untuk mengunjungi antarmuka web phpMyAdmin. Sebelum memasukkan kredensial pengguna di formulir login, mari aktifkan HTTPS.

Langkah 3:Memasang Sertifikat TLS

Untuk mengamankan antarmuka web phpMyadmin, kita dapat menginstal sertifikat Let's Encrypt TLS gratis. Instal klien Let's Encrypt dari repositori perangkat lunak Ubuntu 18.04 seperti di bawah ini:

sudo apt install certbot python3-certbot-nginx

Python3-certbot-nginx adalah plugin Nginx untuk Certbot. Sekarang jalankan perintah berikut untuk mendapatkan dan menginstal sertifikat TLS.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --must-staple -d pma.example.com --email your-email-address

Penjelasan:

  • –nginx :Gunakan autentikator dan penginstal Nginx
  • –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.

Uji Sertifikat TLS Anda

Buka ssllabs.com untuk menguji sertifikat dan konfigurasi TLS Anda. Anda harus mendapatkan A+ karena HSTS diaktifkan.

Memecahkan Masalah Kesalahan Masuk

Jika Anda login 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 mariadb -u root

Buat pengguna admin dengan otentikasi kata sandi.

create user [email protected] identified by 'your-chosen-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 akun admin dan mengelola semua basis data.

Menggunakan Port yang Berbeda

Menggunakan port yang berbeda daripada port default 443 dapat menguntungkan karena Anda dapat menutup port tersebut saat Anda tidak menggunakan phpMyAdmin untuk mencegah aktivitas peretasan, atau Anda dapat menentukan alamat IP mana yang diizinkan untuk mengakses port tersebut. Ini sangat sederhana untuk dikonfigurasi. Cukup buka file blok server.

sudo nano /etc/nginx/conf.d/phpmyadmin.conf

Temukan dua baris berikut:

listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot

Ubah 443 ke port lain, misalnya 8443.

listen [::]:8443 ssl ipv6only=on; # managed by Certbot
listen 8443 ssl; # managed by Certbot

Anda juga dapat menambahkan http2 seperti di bawah ini untuk mengaktifkan protokol HTTP/2.

listen [::]:8443 ssl http2 ipv6only=on; # managed by Certbot
listen 8443 ssl http2; # managed by Certbot

Simpan dan tutup file. Kemudian uji konfigurasi Nginx.

sudo nginx -t

Jika pengujian berhasil, muat ulang Nginx agar perubahan diterapkan.

sudo systemctl reload nginx

Sekarang Anda dapat mengakses phpMyAdmin melalui:

https://pma.example.com:8443

Instal phpMyAdmin Versi Stabil Terbaru

Repositori Ubuntu 18.04 dikirimkan dengan PHP7.2 dan phpMyAdmin 4.6.6. Anda dapat memeriksa versi phpMyAdmin Anda di bilah judul browser.

Namun, PHP7.2 didukung oleh phpMyAdmin sejak versi 4.7.4. Saat Anda menggunakan phpMyAdmin 4.6.6 dengan PHP7.2, Anda akan melihat pesan peringatan berikut.

parameter must be an array or an object that implements countable

Untuk memperbaiki masalah kompatibilitas, kita dapat menginstal phpMyAdmin 4.8, yang merupakan versi stabil terbaru pada tulisan ini. Unduh dengan menggunakan wget .

wget https://files.phpmyadmin.net/phpMyAdmin/4.8.0.1/phpMyAdmin-4.8.0.1-all-languages.zip

Kemudian ekstrak.

sudo apt install unzip

unzip phpMyAdmin-4.8.0.1-all-languages.zip

Cadangkan file phpMyAdmin asli.

sudo mv /usr/share/phpmyadmin /usr/share/phpmyadmin-original

Pindahkan phpMyadmin 4.8 ke /usr/share/phpmyadmin/ direktori.

sudo mv phpMyAdmin-4.8.0.1-all-languages /usr/share/phpmyadmin

Edit file konfigurasi vendor.

sudo nano /usr/share/phpmyadmin/libraries/vendor_config.php

Temukan baris berikut.

define('CONFIG_DIR', '');

Ubah ke

define('CONFIG_DIR', '/etc/phpmyadmin/');

Simpan dan tutup file. Kemudian buat tmp folder untuk menyimpan file cache.

sudo mkdir /usr/share/phpmyadmin/tmp

Ubah kepemilikan pengguna dan kepemilikan grup menjadi www-data .

sudo chown www-data:www-data /usr/share/phpmyadmin/tmp

Sekarang Anda dapat menggunakan phpMyAdmin 4.8 tanpa memuat ulang atau memulai ulang Nginx.

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.

Perpanjangan Otomatis Sertifikat

Untuk memperbarui sertifikat Let's Encrypt secara otomatis, cukup edit file crontab pengguna root.

sudo crontab -e

Kemudian tambahkan baris berikut di bagian bawah.

@daily certbot renew --quiet && systemctl reload nginx

--quiet flag akan menekan output standar. Jika Anda ingin menerima kesalahan standar, tambahkan baris berikut di awal file crontab.

MAILTO=your-email-address

Memuat ulang Nginx diperlukan untuk menyajikan sertifikat baru kepada klien.

Saya harap tutorial ini membantu Anda menginstal phpMyAdmin dengan Nginx di Ubuntu 18.04 LTS. Seperti biasa, jika menurut Anda postingan ini bermanfaat, berlangganan newsletter gratis kami untuk mendapatkan lebih banyak tips dan trik. Hati-hati.


Ubuntu
  1. Cara Menginstal phpMyAdmin dengan Nginx di Ubuntu 18.04

  2. Cara Menginstal Seafile dengan Nginx di Ubuntu 20.04 LTS

  3. Cara Menyebarkan Modsecurity dengan Nginx di Ubuntu 20.04 LTS

  1. Cara Menginstal Seafile dengan Nginx di Ubuntu 18.04 LTS

  2. Cara Menginstal GitBucket dengan Nginx di Ubuntu 18.04 LTS

  3. Cara menginstal osTicket dengan Nginx di Ubuntu 18.04 LTS

  1. Cara Menginstal GitBucket dengan Nginx di Ubuntu 20.04 LTS

  2. Cara menginstal TYPO3 8.1 dengan Nginx (LEMP) di Ubuntu 16.04

  3. Instal phpMyAdmin Dengan LEMP Stack Di Ubuntu 20.04 LTS