Bismillah

Apa itu LEMP Stack?

LEMP Stack adalah sekumpulan teknologi yang digunakan untuk membangun sebuah web server. LEMP stack sendiri adalah akronim dari gabungan dari: Linux, Nginx (dibaca Engine X), MariaDB atau MySQL sebagai database, dan PHP sebagai bahasa pemrograman yang dipakai [1].

Ada pun istilah lain yang mirip yang juga sering kita jumpai di dunia web server adalah LAMP Stack, tapi dengan huruf A. Huruf A di situ adalah Apache. Sehingga perbedaannya hanyalah pada penggunakan web servernya: jika menggunakan Apache maka itu disebut LAMP Stack, jika menggunakan Nginx maka itu disebut LEMP.

Install LEMP Stack

Step 1: Install Nginx

Dalam rangka untuk menserve halaman web, kita membutuhkan web server. Di sini kita akan memasang Nginx sebagai web server, yang merupakan web server modern dan effisien.

sudo apt update
sudo install nginx

Setelah proses instalasi berhasil. Anda bisa mengunjungi url localhost pada browser anda, dan anda akan mendapati halaman Welcome to Nginx.

Itu artinya nginx telah berhasil terinstall di sistem kita.

Step 2: Install MariaDB (Atau MySQL)

Langkah selanjutnya adalah menginstall mariadb (atau mysql, terserah anda). Mariadb dikembangkan oleh orang-orang yang dulunya berkontribusi dalam pengembangan mysql. Akan tetapi karena mysql diakuisisi oleh oracle, barulah mereka-mereka ini membangun sistem baru yang sama (atau hampir sama) dengan mysql [2].

Di sini saya contohkan dengan mariadb.

sudo apt install mariadb-server

Cek versi mariadb yang terinstall. Note: meskipun paket yang saya install adalah mariadb, tapi tetap saja binary yang kita panggil adalah mysql.

mysql -V

Output:

mysql  Ver 15.1 Distrib 10.3.13-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Untuk menginstall mariadb dengan pengaturan yang aman. Kita bisa memanfaatkan perintah mysql_secure_installation. Script tersebut akan menanyakan kepada kita apakah kita ingin mengganti sebagian pengaturan yang kita inginkan.

sudo mysql_secure_installation

Silakan anda baca dengan seksama setiap pertanyaan, lalu jawab dengan menekan tombol y jika anda setuju, dan n jika anda tidak setuju.

Jika anda ingin cepat, bisa nyontek jawaban saya di bawah ini.

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
Enter current password for root (enter for none): [isi password untuk root]
...
...
Change the root password? [Y/n] n
...
...
Remove anonymous users? [Y/n] y
...
...
Disallow root login remotely? [Y/n] y
...
...
Remove test database and access to it? [Y/n] y
...
...
Reload privilege tables now? [Y/n] y
...
...
All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Sampai di sini jika tidak ada error berarti mysql telah sukses terpasang. Tapi anda masih harus membuat user baru yang nonroot untuk mysql.

Buat User Baru Non Root Untuk MariaDB/MySql

Login Mysql dengan sudo

sudo mysql

Buat user baru

CREATE USER 'usernamebaru'@'localhost' IDENTIFIED BY 'passwordbaru';
GRANT ALL PRIVILEGES ON * . * TO 'usernamebaru'@'localhost';

Ganti usernamebaru dan passwordbaru sesuai yang anda inginkan.

Lalu ketik perintah exit dan tekan enter.

Step 3: Install PHP

Langkah selanjutnya adalah menginstall PHP. Di sini saya pakai repo resmi dari Ubuntu yang akan menginstall versi terbaru dari PHP.

sudo apt install php php-fpm php-mysql php-mbstring php-gd

Ada pun jika anda menginstall versi PHP yang lain, silakan baca Cara Install Berbagai Macam Versi PHP di Ubuntu.

Step 4: Konfigurasi Nginx Agar Menggunakan PHP

Setelah php terinstall. Kita perlu mengkonfigurasi nginx agar ia mem-bypass request file *.php ke pada php-fpm daemon untuk diproses lebih lanjut.

Periksa Versi PHP

Caranya mudah, pertama anda lihat dulu versi php yang terinstall adalah versi berapa.

php --version

Jika yang terinstall adalah versi 7.3.x maka kita akan gunakan untuk nginx adalah php7.3-fpm. Atau jika yang terinstall adalah versi 7.2.x maka yang akan kita gunakan adalah php7.2-fpm.

Edit File /etc/nginx/sites-available/default

Edit file tersebut dengan teks editor kesukaan anda. Bisa dengan vim, nano, atau yang berbasis GUI pun tidak mengapa. Anda merdeka. Di sini saya contohkan menggunakan vim.

sudo vim /etc/nginx/sites-available/default

Lalu cari blok kode berikut:

location / {
    # First attempt to serve request as file, then
    # as directory, then fall back to displaying a 404.
    try_files $uri $uri/ =404;
}

Lalu tambahkan blok kode ini di bawahnya.

location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
}

Ingat untuk versi php-fpm harus anda sesuaikan dengan versi yang terinstall.

Hasil akhir kira-kira seperti berikut:

Jika sudah, save hasil editannya. Lalu restart nginx dengan perintah berikut:

sudo systemctl restart nginx

Jika tidak ada error, harusnya nginx kita sudah terintegrasi dengan php-fpm. Langkah selanjutnya adalah kita akan melakukan tes apakah memang sudah benar-benar bekerja atau tidak.

Step 5: Buat File PHP Untuk Testing

Di sini perlu diketahui bahwa secara default, nginx akan men-serve lokasi direktori /var/www/html. Ini sebagaimana terdefinisikan di file /etc/nginx/sites-available/default yang tadi kita edit bahwa root berada di direktori /var/www/html.

Sehingga untuk testing, kita akan membuat file dengan nama info.php di direktori tersebut. Di sini saya contohkan menggunakan vim. Anda merdeka untuk menggunakan teks editor yang lain.

cd /var/www/html
vim info.php

Lalu tuliskan script sederhana berikut:

<?php
phpinfo();

Save file info.php. Sekarang ketika anda membuka localhost/info.php di browser, anda akan melihat kira-kira seperti ini:

Selamat. Web server yang anda install benar-benar telah bekerja.

Step 6: Download Adminer Untuk Testing Mariadb

Tes satu kali lagi. Tes ini opsional. Anda bisa skip. Di sini saya akan mencoba apakah mariadb yang kita install sudah klop dengan php atau tidak. Saya akan menggunakan adminer sebagai database client.

Download Adminer Silakan download adminer melalui situs resminya: https://www.adminer.org/

Simpan File Simpan file yang telah didownload ke dalam direktori /var/www/html/ lalu rename file tersebut dengan nama adminer.php.

Setelah itu silakan buka alamat localhost/adminer.php melalui browser.

Login ke dalam adminer dengan user yang telah kita buat.

Kesimpulan

A LEMP stack is a powerful platform that will allow you to set up and serve nearly any website or application from your server.

Lemp stack adalah platfowm web server yang sangat powerful dan simpel untuk web berbasis PHP. Anda bisa melakukan konfigurasi sesuai dengan kebutuhan dan memilih setiap komponen yang diinginkan.

Demikian, semoga bermanfaat! :)

Referensi

[1] https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-ubuntu-18-04 [2] https://www.codepolitan.com/mengenal-mariadb