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
Untuk proses instalasinya, kita akan bagi menjadi 4 tahap besar: yaitu instalasi nginx, instalasi MariaDB/MySQL, lalu install PHP dan konfigurasi.
Setelah itu, kita akan coba testing apakah hasil instalasi LEMP stack sudah berhasil atau tidak.
Yuk, kita langsung buka terminal.
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
.
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