Instalasi dan Konfigurasi LEMP (Nginx, MariaDB, PHP) Stack di Ubuntu 20.04 LTS

Hai, selamat datang kembali di ChotibulStudio. Di artikel kali ini, saya akan membahas tentang instalasi dan konfigurasi LEMP Stack di Ubuntu 20.04 LTS.

LEMP Stack merupakan kumpulan dari beberapa layanan perangkat lunak sumber terbuka, seperti Linux sebagai basis sistem operasi, Nginx sebagai web server, MariaDB atau MySQL sebagai sistem manajemen basis data, dan PHP sebagai server scripting.

Selain LEMP stack, ada juga LAMP stack; Apache, MariaDB/MySQL, dan PHP. Itu adalah dua paket umum untuk membangun layanan situs web.

Selain LEMP stack dan LAMP stack, ada juga LAPP stack, LEPP stack dan stack yang lain. Tergantung dengan paket yang digunakan. Misalkan LAPP stack, LAPP stack terdiri dari Linux, Apache PostgreSQL dan PHP. Begitu juga dengan LEPP stack, yang terdiri dari Linux, Nginx, PostgreSQL dan PHP.

Mungkin ada dari Anda yang berguman "kok singkatannya LEMP stack, sih? Kenapa gak LNMP stack aja, kan itu lebih pas karena paket web sever-nya pakai Nginx!".

Oke Oke. Jadi, begini ceritanya.

Kenapa menggunakan singkatan LEMP stack dari pada LNMP stack untuk penyebutan kumpulan layanan dari Linux, Nginx, MariaDB/MySQL dan PHP?

Alasan yang paling tepat adalah ada pada penyebutan Nginx.

Sekarang, bagaimana Anda mengucapkan "Nginx"?

Ngingx? Salah!.

Ngingks? Salah juga!.

Nginks? Malah makin salah!.

Yang betul adalah engine x. Sesuai informasi dari situs resminya, pengucapan nama Nginx yang benar adalah dengan mengejanya. En-gine-eks.

Baik, mari kembali ke pokok bahasan saja. Sesuai dengan judul, instalasi dan konfigurasi LEMP stack, saya akan coba memisahkan proses instalasi dan konfigurasi. Supaya Anda tahu bagaimana keempat layanan tersebut saling berkomunikasi satu sama lain.

Persiapan

Sebelum lanjut ke proses instalasi, pastikan Anda telah memenuhi beberapa hal berikut sebelum memulai memasang LEMP stack, diantaranya:

  1. Sudah memasang Ubuntu 20.04; baik di mesin host maupun di guest (virtual).
  2. Memiliki koneksi ke internet, karena kita akan menggunakan repositori (via APT) untuk memasang dan memperbarui paket.
  3. Setelah persiapan poin 1 dan 2 sudah terpenuhi, sekarang Anda tinggal menyisikan waktu beberapa menit atau bahkan jam dan berdo'a.

Proses instalasi LEMP Stack

Pasang Ubuntu

Proses instalasi LEMP stack dimulai pertama kali dengan memasang sistem operasinya. Buat Anda yang belum tahu bagaimana cara dan proses instalasi Ubuntu, Anda bisa membaca tutorial cara instalasi Ubuntu MATE 18.04 LTS di VirtualBox di situs ini. Jangan khawatir, proses instalasinya sama dengan varian Ubuntu yang lain kok, hanya beda ditampilan dasarnya saja.

Setelah berhasil memasang Ubuntu, langkah berikutnya adalah melakukan pengecekan pembaruan dan memasang pembaruan yang tersedia.

Buka Terminal, lalu eksekusi perintah berikut ini.

$ sudo apt update && sudo apt dist-upgrade

Setelah proses pembaruan selesai, kita lanjutkan dengan memasang Nginx.

Pasang Nginx di Ubuntu 20.04

Untuk memasang Nginx di Ubuntu, Anda cukup mengeksekusi satu baris perintah berikut.

$ sudo apt install nginx

Setelah proses pemasangan selesai, silahkan buka peramban web favorit Anda, ketikkan alamat IP host atau guest os Anda pada kolom pencarian.

192.168.1.1

Berikut ini hasilnya.

Hasil dari instalasi Nginx
Hasil dari instalasi Nginx

Pasang MariaDB 10.5 di Ubuntu 20.04

Pada saat artikel ini terbit, MariaDB 10.5 merupakan versi stabil terkini dari MariaDB. Untuk memasangnya, Anda perlu beberapa tahapan. Tahapan yang pertama dengan memasang paket dependency.

$ sudo apt-get install software-properties-common dirmngr apt-transport-https

Tahapan kedua, memasang kunci sidik jari GPG resmi MariaDB untuk mengakses repositori.

$ sudo apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'

Tahap ketiga, konfigurasi repositori. Agar tidak menjadi satu dengan repositori utama sistem, kita akan membuatnya secara terpisah terpisah.

$ sudo nano /etc/apt/sources.list.d/mariadb-10.5.list

Setelah editor nano membuka berkas mariadb-10.5.list, salin-tempel konfigurasi repositori berikut ini.

deb [arch=amd64] http://mirror.biznetgio.com/mariadb/repo/10.5/ubuntu focal main

Perbarui repositori agar repoitori MariaDB yang baru Anda tambahkan dapat terbaca oleh sistem.

$ sudo apt update

Setelah proses pembaruan repositori selesai, pasang MariaDB dengan mengesekusi perintah berikut ini.

$ sudo apt install mariadb-server mariadb-client

Pasang PHP di Ubuntu 20.04 LTS

PHP merupakan program skip yang berjalan di sisi server. Disini, kita akan memasang paket PHP yang sesuai dengan paket yang ada di repositori Ubuntu. Adapun versi PHP default yang ada di repositori adalah versi php7.4.

Eksekusi perintah berikut untuk memasang php7.4.

$ sudo apt install php7.4 php7.4-fpm

Jika Anda ingin memasang PHP versi terkini, PHP 8, Anda bisa mengikuti langkah demi langkah pada tutorial pasang PHP 8.0 di Ubuntu server 20.04 LTS.

Konfigurasi LEMP Stack

Konfigurasi Nginx

Ada dua macam gaya Bang Ngadimin (sebutan saya untuk Admin) dalam mengkonfigurasi blok server pada Nginx.

Gaya A adalah mereka yang melakukan konfigurasi blok server yang ada di direktori sites-available dan mengaktifkan konfigurasi dengan membuat symbolic link ke direktori sites-enabled.

Gaya B adalah mereka yang melakukan konfigurasi blok server langsung pada direktori conf.d.

Baik gaya A maupun gaya B, inti keduanya sama, yaitu membuat konfigurasi sesuai dengan sistem yang akan dijalankan. Gaya manapun, dibuat asyik aja.

Pada tutorial ini, kita akan menggunakan Gaya A untuk menyesuaikan konfigurasi blok server pada Nginx.

Pertama-tama, edit berkas konfiguasi default yang ada di direktori /etc/nginx/sites-available.

$ sudo nano /etc/nginx/sites-available/default

Lalu sesuaian dengan konfigurasi yang ada dibawah ini.

server {
        listen 80 default_server;
        listen [::]:80 default_server;
        
        root /var/www/html;

        # Add index.php to the list if you are using PHP
        index index.html index.htm index.php;
        server_name 127.0.0.1;

        location / {
                #try_files $uri $uri/ =404;
                try_files $uri $uri/ /index.php$is_args$args;
        }       
        
        # pass PHP scripts to FastCGI server
        #
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
                fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
                include fastcgi_params;
        }


        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        location ~ /\.ht {
                deny all;
        }

}

Simpan konfigurasi yang sudah Anda buat, lalu muat ualang layanan Nginx.

$ sudo systemctl restart nginx

Konfigurasi MariaDB

Konfigurasi MariaDB yang akan kita lakukan pada tutorial ini ada tiga macam. Pertama konfigurasi sistem MariaDB, membuat basis data baru dan konfigurasi pengguna berikut hak aksesnya.

Mari kita mulai dengan konfigurasi sistem MariaDB.

Konfigurasi sistem MariaDB

Untuk melakukan konfigurasi sistem MariaDB, Anda bisa melakukannya dengan mudah. Karena konfigurasi yang akan kita lakukan berbasis wizard atau langkah demi langkah. Sistem akan bertanya, Anda tinggal menjawab. Semudah itu.

Baik, ayo kita mulai.

$ sudo mysql_secure_installation

Sesaat setelah mengeksekusi perintah tersebut, sistem akan menampilkan beberapa pertanyaan interaktif melalui konsol Terminal terkait beberapa bagian yang perlu dikonfigurasi.

Berikut panduannya.

Enter current password for root (enter for none): [tekan enter]

Set root password? [Y/n] [tekan enter]
New password: [ketik kata sandi Anda]
Re-enter new password: [ketik ulang kata sandi Anda]

Remove anonymous users? [Y/n] [tekan enter]

Disallow root login remotely? [Y/n] [tekan enter]

Remove test database and access to it? [Y/n] [tekan enter]

Reload privilege tables now? [Y/n] [tekan enter]

Setelah konfigurasi dasar sistem selesai, sekarang silahkan masuk ke konsol MariaDB dengan mengeksekusi perintah berikut.

$ sudo mariadb -u root -p

Tampilan konsol MariaDB
Tampilan konsol MariaDB

Membuat basis data baru

Pada konsol MariaDB, eksekusi kueri berikut ini.

> CREATE DATABASE cobadulu;

Kueri di atas, akan membuat basis data baru dengan nama cobadulu. Anda bisa melihat daftar basis data yang ada di sistem MariaDB dengan mengeksekusi perintah berikut.

> SHOW DATABASES;

Konfigurasi pengguna dan hak aksesnya pada sebuah basis data

Untuk membuat pengguna baru untuk basis data tertentu, Anda bisa mengeksekusi perintah berikut ini.

> CREATE USER 'ngadimin'@'localhost' IDENTIFIED WITH mysql_native_password USING PASSWORD('inipsswordya');

Untuk memberikan hak akses pengguna ngadimin pada suatu basis data, Anda bisa mengeksekusi perintah berikut.

> GRANT ALL ON cobadulu.* TO 'ngadimin'@'localhost' IDENTIFIED WITH mysql_native_password USING PASSWORD('inipasswordya');

Terapkan pengaturan hak akses dengan mengeksekusi kueri berikut.

> FLUSH PRIVILEGES;

Konfigurasi PHP-FPM

Untuk mulai mengkonfigurasi PHP, Anda bisa mengeksekusi perintah berikut.

$ sudo nano /etc/php/7.4/fpm/php.ini

Sesuaikan beberapa bagian konfigurasi seperti berikut.

memory_limit = 512M
post_max_size = 64M
max_execution_time = 120
upload_max_filesize = 64M
max_input_time = 60
max_input_vars = 1000
date.timezone = Asia/Jakarta
cgi.fix_pathinfo = 0

Simpan konfigurasi dan muat ulang layanan PHP-FPM.

$ sudo systemctl restart php7.4-fpm

Tes hasil intalasi PHP

Tes ini dilakukan untuk menguji apakah komunkasi antara Nginx dengan PHP sudah terjalin dengan baik. Untuk melakukannya, Anda butuh satu berkas berekstensi .php yang tersimpan di /var/www/html.

$ sudo nano /var/www/html/info.php

Setelah editor nano membuka berkas info.php, silahan salin-tempel kode berikut.

<?php
echo phpinfo();
?>

Simpan perubahan yang sudah Anda buat. Buka peramban web favorit Anda, lalu ketikkan alamat IP host os atau guest os Anda beserta nama berkas info.php.

192.168.1.1/info.php

Berikut ini hasilnya.

Hasil pengetesan instalasi PHP
Hasil pengetesan instalasi PHP

Tes koneksi antara PHP dengan MariaDB (opsional)

Tes ke-2 ini bersifat opsional yang bertujuan untuk menguji apakah konfigurasi basis data dan pengguna yang sudah dilakukan sebelumnya berhasil atau gagal.

Sama seperti pengujian hasil instalasi PHP, Anda memerlukan satu file khusus berekstensi .php yang tersimpan di /var/www/html.

$ sudo nano /var/www/html/koneksi.php

Setelah editor nano membuka berkas koneksi.php, salin-tempel kode berikut ini.

<?php
echo "<h1>Database Connection</h1>";

$mysqli = new mysqli("localhost", "ngadimin", "inipsswordya", "cobadulu");


if ($mysqli -> connect_errno){
        echo "<p>Gagal Terhubung ke MariaDB<p> <p><pre>" . $mysqli -> connect_error . "</pre></p>";
        exit();
}

echo "<p>Berhasil terhubung ke basisdata.</p> <br><br>";
echo $mysqli->host_info . "\n";

$mysqli -> close();
?>

Simpan perubahan yang sudah Anda buat. Buka peramban web favorit Anda, lalu ketikkan alamat IP host os atau guest os Anda beserta nama berkas koneksi.php.

192.168.1.1/koneksi.php

Berikut hasilnya.

Hasil pengujian koneksi PHP ke MariaDB
Hasil pengujian koneksi PHP ke MariaDB

Sampai langkah ini, Anda sudah bisa memasang dan mengkonfigurasi LEMP Stack di Ubuntu 20.04 LTS. Bagaimana perasaan Anda?

Kesimpulan

LEMP stack adalah satu dari beberapa layanan untuk membangun pondasi situs web yang handal. Dari konfigurasi dasar yang sudah kita lakukan di atas, Anda bisa mengebangkannya lebih lanjut untuk menyesuaikannya dengan CMS atau framework tertentu.

Kenapa memilih LEMP stack?

Kalau pertanyaan itu ditujukan ke saya, saya gak punya jawaban spesifiknya. Soalnya, saat mulai duduk di bangku kuliah dan berorganisasi disalah satu komunitas yang ada di jurusan, saya diajarinnya pakai LEMP stack.

Mungkin, jawabannya adalah karena kebiasaan aja. Toh, tidak menutup kemungkinan saya juga akan membuat tutorial LAMP stack juga dikemudian hari. Jadi, sebagai seorang ngadimin sistem kita harus hidup dan belajar secara dinamis.

Pelajari semua materi dan praktik terbaiknya. Temukan diri Anda pada materi-materi tersebut, lalu pilih salah satu sebagai acuan utama dan jadilah ahli darinya.

Demikian tutorial instalasi dan konfigurasi LEMP stack di Ubuntu 20.04 LTS. Semoga tutorial ini bermanfaat untuk saya pribadi, Anda, dan orang-orang yang Anda cintai.

Akhir kata, selamat menunaikan ibadah puasa Ramadan buat Anda yang menjalankannya. Semoga kebaikan, kebahagiaan dan kesehatan selalu mengalir pada diri Anda dan keluarga. Amin.

Komentar

Postingan populer dari blog ini

Daftar Rekomendasi Repositori Lokal Debian 11 "Bullseye"

Koneksi Internet Bermasalah di Ubuntu 18.04, Berikut Cara Memperbaikinya

Cara Memperbaiki Masalah "KVM virtualisation is configured, but not available" di Proxmox