Install Nginx, MariaDB, HHVM (LEMH Stack) di VPS Ubuntu Server

Install Nginx, MariaDB, HHVM (LEMH Stack) di VPS Ubuntu Server

hhvm1.jpg

Setelah sebelumnya ada istilah LAMP Stack, LEMP Stack, kali ini saya akan mencoba deploy LEMH Stack yang merupakan kepanjangan dari Linux, Nginx, MariaDB, HHVM.  Mengapa memilih HHVM, HipHop Virtual Machine (HHVM) merupakan sebuah virtual machine yang dikembangkan dan di open sourcekan oleh Facebook, yang berguna untuk mengeksekusi program dan script yang ditulis dalam bahasa PHP dan Hack.  HHVM mengklaim lebih cepat daripada Zend-Apache yang biasa di gunakan untuk eksekusi program PHP. Walau kelihatannya masih belum stabil HHVM dapat digunakan bersama dengan sebuah FastCGI berbasis webserver seperti Nginx ataupun Apache.

Tutorial ini dibuat dan dijalankan pada VPS yang masih fresh dan dan dijalankan dengan OS Ubuntu Server 14.04 x64 bit. Untuk HHVM sendiri diharuskan memang harus di install pada mesin 64 bit.

Install Nginx

Nginx tersedia di repository ubuntu tapi kadang agak kurang update, untuk mendapat versi update stabil Nginx, tambahkan PPA repository berikut ini

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:nginx/stable
sudo apt-get update

Versi stabel pada saat post ini ditulis adalah versi 1.8.0, untuk versi development sendiri sudah tersedia versi 1.9.1

Untuk mulai menginstall Nginx jalankan perintah berikut

sudo apt-get install nginx

Tunggu hingga proses selesai, untuk memastikan Nginx sudah berjalan, jalankan perintah berikut

sudo service nginx start

Cek juga lewat web browser aarahkan ke IP VPS anda, harusnya sudah terlihat halaman “Welcome to nginx!”

2015-06-01_225944.jpg

Install MariaDB

Pertama tambahkan dulu PPA repositori MariaDB

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
sudo add-apt-repository 'deb http://sfo1.mirrors.digitalocean.com/mariadb/repo/10.0/ubuntu trusty main'
sudo apt-get update

Kemudian install MariaDB dengan perintah

sudo apt-get install mariadb-server

Selama proses install berlangsung, kita akan disuruh memasukkan root password untuk database.

Setelah proses selesai, pastikan MariaDB sudah berjalan, jalankan perintah

sudo service mysql start

 

Install PHP dan HHVM

Kita tetap akan menginstall PHP, tapi tidak semua full php kita install, kita hanya membutuhkan php5-fpm,

Ini berguna sebagai backup alternatif jika jika HHVM mengalami crash, jadi kita butuh php5-fpm sebagai fallback.

sudo apt-get install php5-fpm php5-mysql php5-curl

Setelah proses instal  php5-fpm, selesai, kita mulai install hhvm dengan perintah

wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | sudo apt-key add -
echo deb http://dl.hhvm.com/ubuntu trusty main | sudo tee /etc/apt/sources.list.d/hhvm.list
sudo apt-get update
sudo apt-get install hhvm

2015-06-01_231331.jpg

Setelah itu kemudian kita konfigurasikan Nginx dengan perintah

sudo /usr/share/hhvm/install_fastcgi.sh

Kemudian restart service HHVM

sudo service hhvm restart

 

Konfigurasi Website untuk Nginx, HHVM (dengan  php5-fpm fallback)

Buat sebuah config di Nginx untuk konfigurasi website,

ganti smua contoh.com dengan domain yang anda punya.

sudo nano /etc/nginx/sites-available/contoh.com.conf

Masukkan parameter konfigurasi dibawah ini

server {
  listen 80;
  listen [::]:80;
  
    server_name contoh.com;
    include hhvm-fallback.conf;
 
    access_log   /var/log/nginx/access.log;
    error_log    /var/log/nginx/error.log;
 
    root /var/www/contoh.com;
    index index.html index.htm index.php;
 
    location / {
        try_files $uri $uri/ =404;
    }
	
	 location @fallback {
      
        #      # With php5-fpm:
               fastcgi_pass unix:/var/run/php5-fpm.sock;
               fastcgi_index index.php;
               include fastcgi_params;
        }
 
        # deny access to .htaccess files, if Apache's document root
        #
        location ~ /\.ht {
                deny all;
        }	
}

Save dan keluar dari editor.

Selanjutnya kita buat file config hhvm-fallback.conf untuk dapat membuat php5-fpm mengambil alih ketika suatu saat HHVM mengalami crash.

sudo nano /etc/nginx/hhvm-fallback.conf

Masukkan parameter konfigurasi berikut ini

location ~ \.(hh|php)$ {
    proxy_intercept_errors on;
    error_page 500 501 502 503 = @fallback;
 
    fastcgi_keep_conn on;
 
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

Save dan keluar dari editor.

Jangan lupa untuk membuat direktori website dan berikan hak akses permissionnya

sudo mkdir -p /var/www/contoh.com
sudo chmod -R 755 /var/www/contoh.com
sudo chown -R www-data:www-data /var/www/contoh.com

Kemudian aktifkan virtualhost nginx, dengan membuat symbolik link, jalankan perintah berikut

sudo ln -s /etc/nginx/sites-available/contoh.com.conf /etc/nginx/sites-enabled/

Langkah berikutnya, test konfigurasi Nginx,

sudo nginx -t

Jika tak ada masalah, terakhir restart Nginx dan HHVM

service nginx restart
service hhvm restart

 

Test HHVM telah running atau belum

Untuk mengetest HHVM sudah berjalan, kita buat file test.php di root folder website.

nano /var/www/contoh.com/test.php

Isikan baris berikut, dan save

<?php
echo defined('HHVM_VERSION')?'HHVM is up dan running':'Maaf HHVM tidak running';
?>

Save dan keluar dari editor.

Pada browser, arahkan kealamat ke alamat website anda dan file tersebut, sebagai contoh

http://contoh.com/test.php

Kita harusnya sudah melihat tulisan “HHVM is up dan running” yang menunjukkan bahwa, HHVM telah running.

2015-06-01_233220.jpg

 

Test HHVM dengan php5-fpm fallback

Pastikan HHVM, php5-fpm dan Nginx telah running bersama, masih memakai file test.php diatas

Untuk mulai mengetesnya jalankan perintah berikut

sudo curl -I http://contoh.com/test.php

Harusnya anda dapat melihat output di baris terakhir seperti dibawah

X-Powered-By: HHVM/3.7.1

Kemudian coba stop HHVM service pada server dengan perintah

service hhvm stop

Dan jalankan kembali perintah curl diatas, dan harusnya output di baris terakhir yang muncul seperti dibawah

X-Powered-By: PHP/5.5.9-1ubuntu4.9

Selamat php5-fpm telah berhasil menjadi backup fallback untuk HHVM. Sekarang anda dapat merasakan bagaimana kecepatan dari HHVM ini, dan sisi kecepatan mungkin yang bisa menjadi kompetitornya cuma PHP 7 yang menurut jadwal akan segera dirilis pada akhir tahun ini.

 

1

No Responses

Kirim Komentar