Tutorial Instalasi LEMP Stack di Ubuntu

Pada beberapa tutorial sebelumnya kita sudah banyak membahas mengenai konfigurasi pada server terutama yang menggunakan Nginx. Nah kebetulan kemaren ada yang tanya di fanspage mengenai cara install Nginx yang benar. Berhubung belum pernah ditulis di LinuxSec.org, kali ini kita akan membahas instalasi LEMP stack.
Pada tutorial kali ini saya menggunakan sistem operasi Ubuntu 16.04, dan veri PHP yang akan saya gunakan adalah versi 7.
Oke langsung saja ke tutorial.
Install Nginx Web Server
sudo apt-get update
sudo apt-get install nginx
Nginx akan otomatis berjalan di port 80. Cek dengan cara membuka ip server kalian lewat browser.
Install MySQL
sudo apt-get install mysql-server
Saat kalian disuruh memasukkan password root jangan ngasal, buat password yang sekiranya aman, namun mudah kalian ingat.

Install PHP 7
Selanjutnya adalah instalasi PHP. Perlu diketahui, Nginx membutuhkan paket php-fpm agar berjalan dengan baik. Dan seperti yang saya katakan sebelumnya bahwa saya menggunakan Ubuntu 16.04, maka PHP yang akan saya install disini adalah versi 7.
sudo apt-get install php-fpm php-mysql php-cli php-gd php-json php-xml
Yup, semua sudah terinstall. Kita lakukan sedikit konfigurasi agar server lebih aman nantinya.
sudo nano /etc/php/7.0/fpm/php.ini
Hapus comment pada cgi.fix_pathinfo dan ubah value nya menjadi 0.
Sehingga menjadi 
cgi.fix_pathinfo=0
Tahap selanjutnya adalah konfigurasi agar Nginx menggunakan PHP Processing.
Edit serverblock default nginx.
echo > /etc/nginx/sites-available/default
sudo nano /etc/nginx/sites-available/default
Lalu masukkan :
server {
    listen 80 default_server;
    listen [::]:80 default_server;
    root /var/www/html;
    index index.php index.html index.htm index.nginx-debian.html;
# ip server
    server_name 111.222.333.444;
    location / {
        try_files $uri $uri/ =404;
    }
# php fpm
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }
# blokir htaccess milik apache
    location ~ /\.ht {
        deny all;
    }
}
Note :
Jika kalian ingin membuat serverblock untuk domain, tinggal copy saja dari default ke namadomain.conf . Ubah server_name dan root path nya. Proses nya mirip dengan virtualhost milik Apache. Dan symlink kan ke site enable.
Contoh
cp  /etc/nginx/sites-available/default  /etc/nginx/sites-available/linuxsec.conf
sudo ln -s /etc/nginx/sites-available/linuxsec.conf /etc/nginx/sites-enabled/linuxsec.conf
Oke selanjutnya kita restart php dan nginx.
sudo service php7.0-fpm restart && sudo service nginx reload
Kita coba test dengan membuat sebuah file phpinfo.
sudo nano /var/www/html/info.php
Masukkan isinya :
<?php
phpinfo();
Setelah disave, buka lewat browser.
Setelah semuanya oke, janga lupa dihapus lagi phpinfo nya karena bisa saja seorang yang tidak bertanggung jawab melihat isi konfigurasi servermu.
sudo rm /var/www/html/info.php
Mudah bukan? Sekarang kalian bisa menjalankan web di server Nginx yang barusaja kalian bangun.