Cara Instal HHVM dan Nginx di Linux VPS

Cara Instal HHVM dan Nginx di Linux VPS

Bagi Anda yang tertarik dengan dunia pemrogaman web dan VPS, beberapa tahun belakangan ini pasti Anda cukup sering mendengar tentang HHVM dan Nginx. Dua komponen ini sangat penting perannya dalam dunia pemrograman.

Oleh karena itu, kali ini kami akan membahas soal HHVM dan Nginx. Lebih tepatnya kami akan memberikan penjelasan yang lengkap soal bagaimana cara melakukan instalasi HHVM dan Nginx di Linux VPS.

Tenang, kami akan memberikan cara instalasi yang paling update, dan dapat langsung Anda praktikkan karena dipaparkan langkah demi langkah dan disertai gambar panduan.

Namun sebelum mengetahui cara instalasinya, Anda harus tahu dulu apa itu sebenarnya HHVM dan Nginx.

Baca Juga: Menjaga Kestabilan Server dengan Load Balancing HAProxy Nginx di CentOS 7

Apa itu HHVM?

HHVM Logo

HHVM adalah singkatan dari HipHop Virtual Machine. Apakah sebutan ini ada kaitannya dengan genre musik Hip Hop? Ternyata tidak ada kaitannya secara teknis.

Hip Hop Virtual Machine itu sendiri adalah sebuah virtual machine yang dikembangkan oleh Facebook. Virtual machine ini bersifat open source dan dapat berguna untuk membantu Anda dalam menjalankan program-program dari PHP.

Jika kita membahas soal HHVM, kita tidak dapat melepaskan pembahasannya dari PHP. Lalu, apa itu PHP? PHP atau Personal Home Page adalah sebuah bahasa pemrogaman yang digunakan dalam mengembangkan web.

Jika Anda menginstal PHP di komputer Anda atau di dalam Linux, biasanya akan ada beberapa mesin bawaan dari PHP yang bisa Anda gunakan untuk menjalankan program-program tersebut. Nah, HHVM ini adalah alternatif lain untuk dapat menjalankan program-program dari PHP tersebut.

Berikut adalah beberapa penambahan fiturnya dibandingkan dengan PHP:

  • Type Annotation di mana Anda dapat menulis tipe data untuk variabel dan return value dari method. Contohnya, bila biasanya di PHP kita menulis var $a;, maka di Hack, kita bisa menulis string $a
  • Generics di mana Anda bisa memberikan parameter bagi tipe datanya. Mirip dengan fitur generics di Java dan C#
  • Tipe datanya null
  • Collection berupa Set, Vector, Pair
  • Lambda yang memungkinkan function untuk dijadikan parameter ke dalam function yang lainnya

Ada beberapa alasan sebenarnya yang mendasari fenomena banyaknya programmer yang lebih memilih HHVM ketimbang mesin bawaan dari PHP itu sendiri. HHVM diklaim oleh Facebook lebih cepat dan hemat source bila dibandingkan dengan mesin murni dari PHP . Selain itu, HHVP dapat stabil di angka 2 detik. Mesin murni PHP itu masih fluktuatif dan lama pengerjaan PHPnya yaitu bisa 14 hingga 17 detik.

Dari data yang kami sampaikan sebelumnya, dapat juga dikatakan bahwa resource yang dibutuhkan oleh mesin PHP murni memang lebih besar dibanding dengan bawaan dari HHVM itu sendiri. Dari Utilitas CPU, kita juga bisa melihat bahwa mesin dari PHP dapat menggunakan hampir 100% sedangkan HHVM hanya menggunakan kurang lebih 2% saja.

Dengan uraian-uraian yang kami sampaikan di atas, tidak mengherankan lagi jika Facebook mengklaim dapat menghemat resource sampai dengan angka 50% bila mengganti mesin murni PHP menjadi HHVM.

Baca Juga: Cara Deploy CodeIgniter dengan Nginx di VPS Ubuntu 18.04

Apa itu Nginx?

Nginx Logo

Nginx atau lengkapnya disebut sebagai Engine X adalah sebuah komponen pemrograman web yang tak kalah penting peranannya. Nginx adalah sebuah web server yang bersifat open source.

Nginx berfungsi sama seperti web server yaitu sebagai penerima request atau permintaan berupa halaman web dari client. Selain itu, Nginx juga mengirimkan kembali hasil dari permintaan tersebut ke halaman web dalam bentuk dokumen HTML.

Perangkat lunak ini dikembangkan oleh Igor Sysoev pada tahun 2002 dan mulai beredar di publik pada 2004. Sejak peluncurannya, Nginx langsung menarik perhatian para web programmer. Bahkan, ada banyak dari mereka yang sebelumnya menggunakan Apache sebagai web server jadi beralih ke Nginx ini.

Berikut, fitur-fitur Nginx:

  • Reverse proxy server bagi HTTP, HTTPS, SMTP, POP3, dan IMAP protocol
  • Load balancer serta HTTP cache
  • Frontend proxy bagi Apache dan web server lainnya, menggabungkan fleksibilitas dari Apache dengan static content performance dari Nginx

Nginx ini support FastCGI dan SCGI handlers untuk dapat melayani konten yang dinamis semacam PHP dan Phyton. Selain itu, Nginx juga memiliki bundling semacam LAMP (Linux Apache MySQL PHP), yaitu LEMP (Linux ENgin x MySQL PHP).

Nginx banyak dipilih karena memiliki performa yang tinggi dan tergolong stabil

Disamping itu, juga tersedia banyak pilihan fitur dan hemat resource atau sumber daya. Benchmark menunjukkan bahwa Nginx lebih unggul bila dibandingkan dengan web server lain seperti Apache dan Lighttpd.

Hal ini juga berarti beban server bisa menjadi lebih ringan, yang kemudian akan berimbas ke aspek waktu loading yang jadi lebih cepat dan server yang menjadi lebih stabil.

Dengan menggunakan Nginx ini, penumpukan data di memory juga akan jadi berkurang

Mengapa bisa jadi begitu? Karena Nginx akan menghasilkan data statis yang disimpan di hard disk, sebelum disampaikan ke client. Hal ini juga akan memberi dampak baik yaitu semakin cepat dan stabilnya server. Selain itu Nginx juga menyediakan berbagai fitur yang dapat Anda gunakan sehari-hari untuk menangani traffic yang sangat padat seperti static file serving, virtual host, compression, access control, URL rewriting, dan lainnya.

Baca Juga: Cara Konfigurasi Virtual Host di Nginx

Cara Instalasi HHVM dan Nginx

Setelah Anda sudah lebih mengenal tentang apa itu HHVM dan Nginx, sekarang kami akan membahas soal cara menginstal HHVM dan Nginx di VPS Linux.

Hal pertama yang harus Anda lakukan adalah dengan mengupdate Nginx. Sebenarnya Nginx sudah tersedia di repository ubuntu, namun kadang versinya kurang update dan kurang stabil. Untuk update versin Nginx terbaru dan stabil, Anda dapat memasukan perintah berikut ini:

sudo apt-get install software-properties-common

sudo add-apt-repository ppa:nginx/stable

sudo apt-get update

Setelah proses update di atas selesai, Anda kini bisa memulai proses install Nginx. Untuk melakukan instalasi Nginx, Anda dapat memasukan perintah berikut ini:

sudo apt-get install nginx

Tunggu hingga proses yang berjalan selesai. Untuk memastikan bahwa Nginx sudah terinstall dan sudah bisa berjalan dengan benar, ada dua cara yang bisa Anda lakukan. Pertama, Anda bisa menjalankan perintah seperti berikut ini:

sudo service nginx start

Dengan cara itu Anda akan bisa melihat apakah Nginx sudah berhasil terinstall dan juga berjalan dengan baik. Kedua, Anda bisa juga memastikannya lewat web browser yang diarahkan ke IP VPS Anda. Jika Nginx sudah terinstal dan berjalan, maka Anda akan melihat halaman seperti pada gambar yang kami cuplik berikut ini:

Welcome to Debian and Nginx

Setelah Anda telah dapat memastikan bahwa Nginx terinstall dan bisa berjalan, maka Anda langsung saja melanjutkan ke proses instalasi HHVM. Namun selain menginstall HHVM, ada baiknya Anda juga menginstall php5-fpm.

Mengapa Anda harus install php5-fpm tersebut? Hal ini sebenarnya sebagai backup alternatif jika sewaktu-waktu HHVM yang Anda instal nanti mengalami crash. Untuk menginstall php5-fpm, Anda dapat memasukan perintah berikut ini:

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

Setelah php5-fpm selesai terinstall, maka Anda bisa mulai menginstall HHVM-nya. Untuk menginstall HHVM, Anda dapat memasukan perintah berikut ini:

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

Setelah itu Anda akan melihat tampilan seperti pada gambar berikut ini:

Coding Nginx

Jika Anda melihat gambar yang kami cuplik seperti di atas, maka proses instalasi HHVM sudah berjalan dengan benar, instalasi HHVM sudah sukses.

Setelah Nginx dan HHVM terinstall, selanjutnya Anda harus melakukan konfigurasi Nginx dengan HHVM. Untuk memulai proses konfigurasi Anda perlu memasukan perintah seperti berikut:

sudo /usr/share/hhvm/install_fastcgi.sh

Setelah itu akan muncul proses konfigurasinya, seperti pada tulisan berikut ini:

[ ok ] Starting hhvm (via systemctl): hhvm.service.
Checking if Apache is installed
WARNING: Couldn't find Apache2 configuration paths, not configuring
Checking if Nginx is installed

Pada konfigurasi Nginx dan HHVM, biasanya akan digunakan TCP dengan nomor port 9000. Akan lebih baik lagi bila TCP itu bisa diganti menjadi socket. Hal ini bisa mengurangi sumber daya CPU dan juga memory yang digunakan sehingga performanya nanti bisa menjadi lebih baik.

Untuk mengganti TCP menjadi socket, yang perlu Anda lakukan adalah memasukan perintah berikut ini:

nano /etc/hhvm/server.ini

Setelah itu Anda perlu mengubahnya menjadi seperti berikut ini:

; php options

 

pid = /var/run/hhvm/pid

 

; hhvm specific
; hhvm.server.port = 9000
hhvm.server.file_socket=/var/run/hhvm/hhvm.sock
hhvm.server.type = fastcgi
hhvm.server.default_document = index.php
hhvm.log.use_log_file = true
hhvm.log.file = /var/log/hhvm/error.log
hhvm.repo.central.path = /var/run/hhvm/hhvm.hhbc

Baca Juga: OWASP: Standar Keamanan Web App Dunia

Langkah berikutnya, restart HHVM dengan memasukan perintah berikut:

service hhvm restart

Anda juga harus melakukan penyuntingan atau edit agar Ngnix mengetahui tentang perubahan yang terjadi di atas. Caranya bagaimana? Anda bisa memasukan perintah berikut ini:

nano /etc/nginx/hhvm.conf

Lalu Anda harus melakukan penyuntingan atau edit menjadi seperti ini:

location ~ \.(hh|php)$ {
 fastcgi_keep_conn on;
 fastcgi_pass unix:/var/run/hhvm/hhvm.sock;
 fastcgi_index index.php;
 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 include fastcgi_params;

Setelah ini Anda juga harus settting agar Nginx menjalankan file PHP dengan cara berikut ini:

nano /etc/nginx/sites-enabled/default

Kemudian, tambahkan index.php dalam baris index, seperti berikut ini:

index index.html index.htm index.php;

Terakhir Anda harus melakukan restart pada Nginx dengan cara:

service nginx restart

Sampai pada langkah yang terakhir kami sebutkan di atas, proses instalasi Nginx dan HHVM sudah selesai dan telah siap untuk difungsikan.

Simpulan

Lewat artikel ini, kami telah memberitahu beberapa langkah yang harus Anda ikuti dalam melakukan instalasi Nginx and HHVM.

Selain artikel cara instalasi Nginx dan HHVM ini, kami juga membuat berbagai artikel membantu terkait developer web lainnya. Anda bisa membaca Tutorial XAMPP dan Cara Install WordPress Offline. Selamat mencoba!