GNU/Linux >> Belajar Linux >  >> Debian

Instal phpMyAdmin dengan Apache (LAMP) di Debian 10 Buster

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.


Debian
  1. Instal phpMyAdmin dengan Apache di Debian 9 - Proses Langkah demi Langkah?

  2. Instal phpMyAdmin di Ubuntu 20.04 dengan Apache

  3. Instal phpMyAdmin di Ubuntu 22.04 dengan Apache

  1. Cara Menginstal phpMyAdmin di Debian 10 (Buster)

  2. Cara Install Steam dengan Steam Play di Debian 10 Buster

  3. Instal phpMyAdmin di Debian 11 dengan Apache

  1. Cara Menginstal Nextcloud di Debian 10 Buster Linux

  2. Cara Menginstal dan Mengamankan phpMyAdmin dengan Apache di Debian 9

  3. Instal WordPress 5 dengan Apache di Debian 9