[email protected] +62818-738-628

Panduan Lengkap: Install phpMyAdmin di Server Ubuntu dengan Nginx, PHP 8.1 dan MySQL

  • Admin
  • Linux

Mengatur server Ubuntu untuk menjalankan situs web atau aplikasi web adalah langkah penting dalam pengembangan proyek Anda. Artikel ini akan memberikan panduan langkah demi langkah untuk mengatur server Ubuntu dengan Nginx sebagai server web, PHP 8.1 untuk pemrosesan server sisi, MySQL sebagai sistem basis data, dan phpMyAdmin untuk mengelola basis data Anda. Ikuti panduan ini untuk mengatur server dengan mudah.

Update dan Upgrade Server

Sebelum mulai, pastikan server Anda dalam kondisi terbaru dengan menjalankan perintah berikut:

sudo apt-get update
sudo apt-get upgrade -y

Instalasi Nginx

Nginx adalah server web yang kuat dan ringan. Anda dapat menginstalnya dengan perintah berikut:

sudo apt install nginx -y

Setelah instalasi selesai, Anda perlu mengizinkan lalu lintas HTTP melalui firewall:

sudo ufw allow 'Nginx HTTP'
sudo ufw allow 443/tcp
sudo ufw allow 22
sudo ufw enable

Dan pastikan Nginx berjalan:

sudo systemctl status nginx

Instalasi PHP 8.1

Untuk menjalankan aplikasi web dengan PHP 8.1, Anda perlu menginstalnya dan beberapa ekstensi penting:

sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.1-fpm
sudo apt install php8.1-fpm php8.1-common php8.1-mysql php8.1-xml php8.1-curl php8.1-gd php8.1-imagick php8.1-cli php8.1-dev php8.1-imap php8.1-mbstring php8.1-opcache php8.1-soap php8.1-zip -y
sudo apt install php8.1-mysql -y
sudo apt install php8.1-mbstring -y

Pastikan PHP 8.1 sudah terinstal dengan menjalankan:

php-fpm8.1 -v

Dan periksa status PHP-FPM:

sudo service php8.1-fpm status

Instalasi MySQL

MySQL adalah sistem manajemen basis data yang kuat. Instalasi MySQL dengan perintah berikut:

sudo apt install mysql-server

Setelah instalasi, aktifkan layanan MySQL dan amankan instalasi:

sudo systemctl start mysql.service
sudo mysql

Di dalam MySQL, atur kata sandi untuk pengguna root:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
exit

Lalu, jalankan perintah berikut untuk menjalankan konfigurasi keamanan MySQL:

sudo mysql_secure_installation
mysql -u root -p
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, INDEX, DELETE, SELECT, REFERENCES ON  `prefix\_%` . * TO  'username'@'localhost' WITH GRANT OPTION;
exit
sudo systemctl status mysql.service

Instalasi phpMyAdmin

phpMyAdmin adalah antarmuka web untuk mengelola basis data MySQL Anda. Ikuti langkah-langkah berikut untuk menginstalnya:

wget https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all-languages.tar.gz
tar -zxvf phpMyAdmin-5.2.1-all-languages.tar.gz
sudo mv phpMyAdmin-5.2.1-all-languages /usr/share/phpmyadmin
sudo mv /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php
sudo nano /usr/share/phpmyadmin/config.inc.php

Edit berkas konfigurasi phpMyAdmin sesuai kebutuhan Anda :

$cfg['blowfish_secret'] = 'CfX1la/aG83gx1{7rADus,iqz8RzeV8x';
/**
 * phpMyAdmin configuration storage settings.
 *
 * User used to manipulate with storage */
$cfg['Servers'][$i]['controlhost'] = 'localhost';
// $cfg['Servers'][$i]['controlport'] = '';
$cfg['Servers'][$i]['controluser'] = 'username';
$cfg['Servers'][$i]['controlpass'] = 'password_username';

Selanjutnya, impor tabel konfigurasi ke dalam basis data MySQL:

sudo mysql < /usr/share/phpmyadmin/sql/create_tables.sql -u root -p

Konfigurasi Nginx untuk phpMyAdmin

Buat konfigurasi Nginx untuk phpMyAdmin:

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

Kemudian, tambahkan konfigurasi berikut ke dalam berkas:

server {
    listen 80;
    listen [::]:80;
    server_name example.com; # Ganti example.com dengan nama domain Anda
    root /usr/share/phpmyadmin;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-Content-Type-Options "nosniff";

    index index.php;

    charset utf-8;

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

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    error_page 404 /index.php;

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.(?!well-known).* {
        deny all;
    }
}

Konfigurasi phpMyAdmin

Buat direktori sementara untuk phpMyAdmin dan atur izin:

sudo mkdir /usr/share/phpmyadmin/tmp
sudo chmod 777 /usr/share/phpmyadmin/tmp
sudo chown -R www-data:www-data /usr/share/phpmyadmin

Selanjutnya, restart Nginx dan PHP-FPM:

sudo systemctl restart nginx php8.1-fpm

Aktifkan konfigurasi Nginx untuk phpMyAdmin:

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

Lakukan pemeriksaan konfigurasi Nginx:

sudo nginx -t

Jika tidak ada masalah, muat ulang Nginx:

sudo systemctl reload nginx

Instalasi dan Konfigurasi SSL dengan Certbot

Terakhir, tambahkan lapisan keamanan dengan menginstal Certbot dan mengamankan situs web Anda dengan sertifikat SSL:

sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
sudo certbot --nginx -d example.com

Untuk memastikan perpanjangan sertifikat berfungsi, jalankan perintah berikut:

sudo certbot renew --dry-run

Sekarang server Ubuntu Anda telah diatur dengan Nginx, PHP 8.1, MySQL, dan phpMyAdmin. Anda siap untuk mulai mengembangkan dan mengelola proyek web Anda. Selamat bekerja!