Melanjutkan tutorial selanjutnya yang juga (mungkin) permintaan dari mas Niko. Kali ini tujuannya kita berhasil setting LEMP (Linux, Nginx, MariaDB dan PHP) pada Debian 8 Jessie. Batasan saya adalah sebisa mungkin menggunakan apa yang ada di repository defaultnya supaya tidak menambah rumit prosesnya dan kalau pas troubleshooting kedepannya tidak sulit juga. 🙂 Tapi kekurangannya yang digunakan bukanlah versi terbaru.

Persiapan awal

Seperti biasa, sebelum melakukan instalasi stacknya maka wajib kita perbarui semua paket aplikasi yang ada dalam Debian 8:

apt-get update && apt-get upgrade

Instalasi Nginx

Bukanlah hal yang sulit untuk menginstall Nginx di Debian 8, tinggal anda ketikkan perintah:

apt-get install nginx

Tapi jangan lupa untuk menghidupkan mesinnya:

systemctl start nginx

Dan menambahkannya dalam startup Linux, jadi setiap kali booting otomatis aktif juga:

systemctl enable nginx

Instalasi MySQL/MariaDB

Untuk menginstall MySQL Server tinggal eksekusi:

apt-get install mysql-server

Terus terang dibandingkan MySQL saya lebih suka MariaDB karena lebih aktif pengembangan softwarenya dan jangan khawatir karena ini masih kompatibel kok.

apt-get install mariadb-server mariadb-client

Ingat pilih salah satu saja apa database server yang dipasangkan. Selanjutnya anda wajib mengamankan instalasi database server ini, eksekusi saja:

mysql_secure_installation

Kemudian ikuti instruksinya.

Pastikan service MySQL/MariaDB akan aktif saat startup:

systemctl enable mysql

atau

systemctl enable mariadb

Instalasi PHP

Ini juga tidak kalah mudahnya, tinggal anda jalankan perintah berikut:

apt-get install php5 php5-fpm php5-mysql php5-opcache

Selesai sudah proses instalasi PHP 5 di Debian 8. Gampang kan? Haha. 😀

Dan jangan lupa tambahkan daemon PHP-FPM ikut hidup saat booting:

systemctl enable php-fpm

Konfigurasi PHP

Ini baru agak sulit tahapannya. Kita perlu menyetel PHP-FPM baru bisa digunakan oleh Nginx:

nano /etc/php5/fpm/php.ini

Kemudian cari dan hilangkan tanda titik koma (;) di awal kode dibawah:

cgi.fix_pathinfo=0

Akhirnya restart prosesnya:

systemctl restart php5-fpm

Konfigurasi Nginx

Target selanjutnya adalah agar Nginx bisa memproses file PHP, mari kita edit konfigurasi virtual hostnya dulu:

nano /etc/nginx/sites-available/default

Dan kemudian tambahkan kode berikut dalam blok server{}:

server {
    listen       80;
    server_name  nama_domain.com;
    root /var/www/html;
    index index.php index.html index.htm index.nginx-debian.html;
    
    location / {
        try_files $uri $uri/ =404;
        }
        error_page 404 /404.html;
        error_page 500 502 503 504 /50x.html;

    location = /50x.html {
        root /var/www/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;
            }
}

Setelah itu silahkan restart Nginx:

systemctl restart nginx

Setting Virtual Host Nginx

Kalau semua sudah selesai terus kita ngapain? Haha. 😀 Mudah kok, silahkan buat direktori untuk website yang akan dihosting, istilahnya sih virtual hosting:

mkdir /var/www/nama_domain.com

Upload file – filenya kesana ya. Misal ingin WordPress bisa mengikuti tutorial instalasinya di VPS sebelumnya.

Dan kemudian kita buat file konfigurasi baru yang nanti isinya adaptasi dari defaultnya:

cp /etc/nginx/sites-available/default /etc/nginx/sites-available/nama_domain.com

Dan isinya sesuaikan dengan situs anda.

Jangan lupa restart Nginx lagi setelahnya agar dikenali konfigurasi barunya. Selesai sudah. 🙂