Apa itu LEMP ?
LEMP atau LEMP Stack adalah sebuah akronim untuk sebuah model dari web service, yang terdiri dari Linux (bisa Ubuntu, CentOS dan lainnya), Engine-X (NGINX) Web Server, MySQL atau MariaDB Database, dan PHP Programming Language. Model ini merupakan sebuah komponen kombinasi yang mana paling populer saat ini dan sering di gunakan untuk membuat web server pada Virtul Private Server (VPS) ataupun Dedicated Server
Bagi kalangan SysAdmin ataupun DevOps mungkin banyak yang menggunakan LEMP sebagai web server karena ketangguhan LEMP dalam menangani High Traffic sebuah website yang mana ini merupakan salah satu keunggulan dari LEMP. Selain itu LEMP juga memiliki keunggulan lainnya seperti bisa di gunakan sebagai Reverse Proxy/Load Balancing, Scalable, kemudahan dalam konfigurasi, dan lainnya.
Cara Install LEMP
Bagaimana cara install LEMP? karena LEMP terdiri dari Linux, NGINX, MySQL/MariaDB dan PHP maka pertama pastikan dahulu anda menggunakan server dengan Operating System Linux untuk Distronya bisa menggunakan Ubuntu ataupun CentOS. Selanjutnya untuk proses installasi bisa di mulai dari NGINX, MySQL atau MariaDB, dan yang terakhir PHP.
Install NGINX
Pada LEMP Stack untuk proses installasi pertama adalah NGINX (Engine-X) yang mana NGINX sebagai web server servicenya, untuk proses installasinya sebagai berikut ini :
- CentOS
yum install -y epel-release nginx systemctl enable nginx systemctl start nginx
- Ubuntu
sudo apt install -y nginx sudo ufw allow 'Nginx HTTP'
Install MySQL
Setelah melakukan install NGINX selanjutnya ke proses installasi MySQL, yang mana digunakan sebagai database server servicenya. Disini kalian bisa memilih ingin menggunakan MySQL atau MariaDB, untuk proses installasinya sebagai berikut ini :
- CentOS
yum install -y wget wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm yum update yum install -y mysql-server systemctl enable mysql systemctl start mysql
- Ubuntu
sudo apt update sudo apt install mysql-server sudo ufw allow mysql
Install PHP
Dan tahap proses installasi terakhir yaitu installasi PHP yang mana PHP ini digunakan untuk programming language dan agar web service bisa membaca script/code seperti PHP perlu di install dahulu packagenya, untuk proses installasinya sebagai berikut ini :
- CentOS
yum install -y php php-mysql php-fpm systemctl enable php-fpm systemctl start php-fpm
- Ubuntu
sudo apt install php-fpm php-mysql
Konfigurasi LEMP
Selanjutnya agar LEMP dapat bekerja lebih optimal dan dapat menjalankan script website anda nantinya perlu dilakukan konfigurasi basic terlebih dahulu seperti konfigurasi pada nginx.conf
dan konfigurasi php-fpm pada www.conf
selain itu perlu juga melakukan hardening basic pada mysqlnya, untuk langkah-langkah konfigurasinya sebagai berikut ini :
- Hardening MySQL
Untuk hardening MySQL kalian cukup jalankan command :
mysql_secure_installation
Dan output pada command tersebut kurang lebih seperti berikut ini :
[root@igneel ~]# mysql_secure_installation NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! .... Enter current password for root (enter for none): OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MySQL root user without the proper authorisation. Set root password? [Y/n] n ... skipping. .... Remove anonymous users? [Y/n] Y ... Success! Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] n ... skipping. .... Remove test database and access to it? [Y/n] Y - Dropping test database... ERROR 1008 (HY000) at line 1: Can't drop database 'test'; database doesn't exist ... Failed! Not critical, keep moving... - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] Y ... Success! All done! If you've completed all of the above steps, your MySQL installation should now be secure. Thanks for using MySQL! Cleaning up...
- Konfigurasi
nginx.conf
Untuk konfigurasi NGINX, kalian bisa edit file nginx.conf yang ada di folder /etc/nginx dengan command
vim /etc/nginx/nginx.conf
Kemudian pada baris server { .... }
silakan kalian edit menjadi seperti ini :
server { listen 80 default_server; listen [::]:80 default_server; server_name _; root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } location ~ \.php$ { try_files $uri =404; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
- Konfigurasi
www.conf
Konfigurasi terakhir yaitu konfigurasi pada php-fpm pada file www.conf. PHP-FPM ini digunakan untuk daemon PHP yang mana untuk handle high load pada website ketika di akses. Untuk konfigurasi php-fpm pertama jalankan command
vim /etc/php-fpm.d/www.conf
Setelah itu cari baris listen = 127.0.0.1:9000
dan hapus tanda ;
untuk uncomment.
Jika sudah cari baris listen.owner = nobody
dan listen.group = nobody
dan hapus tanda ;
untuk uncomment lagi.
Kemudian yang terakhir cari baris user = apache
dan group = apache
ubah menjadi user = nginx
dan group = nginx
Selanjutnya agar konfigurasi tersebut dapat terimplementasi ke NGINX dan PHP-FPM perlu dilakukan restart service terlebih dahulu dengan command
systemctl restart nginx systemctl restart php-fpm
Pengujian LEMP
Untuk pengujian LEMP yang sudah kalian install pertama silakan coba akses http://ip_address_server jika tampilannya seperti berikut ini :
Artinya NGINX yang kalian install telah sukses terinstall dan kalian, selanjutnya pengujian untuk script phpnya cukup buat file info.php
pada folder /usr/share/nginx/html
dan silakan isikan script code berikut ini :
<?php phpinfo(); ?>
Dan kemudian akses dengan url http://ip_address_server/info.php dan jika hasilnya menampilkan informasi dari PHPnya maka kalian telah berhasil menginstall dan menjalankan LEMP Stack
Kesimpulan
LEMP Stack merupakan sebuah model stack web server yang ringan dimana LEMP Stack ini mampu menghandle high traffic, mampu menjadi load balancer ataupun reverse proxy. Karena ketangguhannya inilah LEMP sering menjadi pilihan SysAdmin atau DevOps untuk sebuah production web server.
Kami NimeTech menggunakan LEMP Stack ini sebagai bentuk web server yang digunakan dalam pelayanan Jasa Manage Server