Cara Install Nginx + HHVM di Ubuntu

Masih tutorial seputar Nginx, kali ini Nginx dipasangkan dengan HHVM untuk menjalankan script PHP. HHVM merupakan salah satu proyek open source dari Facebook dan digunakan untuk menjalankan website Facebook. HHVM adalah singkatan dari HipHop Virtual Machine. Ini adalah suatu virtual machine yang bisa digunakan untuk menjalankan kode program PHP bahasa pemrograman Hack.

-Install Nginx di Ubuntu-

Baca tutorial dasar install Nginx di Ubuntu.

-Install HHVM di Ubuntu-

Pasang repository HHVM dan install

[INPUT]

1 2 3 4 sudo apt-key adv –recv-keys –keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449 sudo add-apt-repository “deb http://dl.hhvm.com/ubuntu $(lsb_release -sc) main” sudo apt-get update sudo apt-get install hhvm

Ditampilkan informasi setelah selesai instalasi

[INPUT]

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 ******************************************************************** * HHVM is installed. * * Running PHP web scripts with HHVM is done by having your * webserver talk to HHVM over FastCGI. Install nginx or Apache, * and then: * $ sudo /usr/share/hhvm/install_fastcgi.sh * $ sudo /etc/init.d/hhvm restart * (if using nginx)  $ sudo /etc/init.d/nginx restart * (if using apache) $ sudo /etc/init.d/apache restart * * Detailed FastCGI directions are online at: * https://github.com/facebook/hhvm/wiki/FastCGI * * If you’re using HHVM to run web scripts, you probably want it * to start at boot: * $ sudo update-rc.d hhvm defaults * * Running command-line scripts with HHVM requires no special setup: * $ hhvm whatever.php * * You can use HHVM for /usr/bin/php even if you have php-cli * installed: * $ sudo /usr/bin/update-alternatives \ *    –install /usr/bin/php php /usr/bin/hhvm 60 ********************************************************************

Menguji apakah PHP cli sudah terhubung ke HHVM

[INPUT]

1 php -v

Hasilnya

[INPUT]

1 2 3 HipHop VM 3.18.3 (rel) Compiler: tags/HHVM-3.18.3–g1ddd4af7b1342c20635afbdc67701fbcbdf97bfa Repo schema: 61b13efcfd4e2fabea72495f96208746a568a688

Jika belum atau sebelumnya sudah terdapat PHP jalankan perintah di bawah ini.

[INPUT]

1 sudo /usr/bin/update-alternatives –install /usr/bin/php php /usr/bin/hhvm 60

Menjalankan service HHVM pada saat boot

[INPUT]

1 sudo update-rc.d hhvm defaults

-Konfigurasi Nginx dengan HHVM-

Menghubungkan HHVM dengan Nginx

[INPUT]

1 sudo /usr/share/hhvm/install_fastcgi.sh

Edit file /etc/nginx/sites-enabled/default

[INPUT]

1 2 3 4 5 6 7 location ~ \.(hh|php)$ {     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; }

Buat file info.php untuk menguji apakah HHVM sudah berjalan atau tidak

[INPUT]

1 sudo nano /usr/share/nginx/html/info.php

Isinya

[INPUT]

1

Akses http://localhost/info.php atau http://IP_Server/info.php

HHVM PHP Info

-Mengubah dari TCP ke Socket-

Secara default komunikasi antara HHVM dengan Nginx menggunakan TCP pada nomor port 9000. Disarankan mengganti TCP dengan socket yang penggunaan sumber daya CPU dan memory lebih rendah.

Pada blok *location ~ \.(hh|php)*, ubah konfigurasi *fastcgi_pass*.

Sebelum diubah

[INPUT]

1 2 3 4 5 6 7 location ~ \.(hh|php)$ {   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; }

Sesudah diubah

[INPUT]

1 2 3 4 5 6 7 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; }

Edit file /etc/hhvm/server.ini

[INPUT]

1 sudo nano /etc/hhvm/server.ini

Aslinya

[INPUT]

1 2 3 4 5 6 7 8 9 10 11 12 ; php options   pid = /var/run/hhvm/pid   ; hhvm specific   hhvm.server.port = 9000 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

Hapus baris *hhvm.server.port = 9000* atau beri tanda titik koma (;), lalu tambahkan baris kode di bawah ini.

[INPUT]

1 hhvm.server.file_socket=/var/run/hhvm/hhvm.sock

Edit file /etc/nginx/hhvm.conf

[INPUT]

1 sudo nano /etc/nginx/hhvm.conf

Aslinya

[INPUT]

1 2 3 4 5 6 7 location ~ \.(hh|php)$ {     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; }

Ganti baris konfigurasi *fastcgi_pass* menjadi seperti di bawah ini.

[INPUT]

1 fastcgi_pass unix:/var/run/hhvm/hhvm.sock;

Restart service HHVM dan Nginx

[INPUT]

1 2 sudo service hhvm restart sudo service nginx restart

Akses kembali http://localhost/info.php atau http://IP_Server/info.php, apakah halaman PHP Info tampil atau tidak.

-Pembatasan Memori pada HHVM-

Agar tidak kehabisan memori dan menyebabkan website lambat diakses, kita dapat melakukan pembatasan penggunaan memori pada php.ini.

Edit file /etc/hhvm/php.ini

[INPUT]

1 sudo nano /etc/hhvm/php.ini

Jika membatasi penggunaan memori untuk HHVM-PHP hanya sampai 1GB, di bawah baris kode *; php options* tambahkan kode di bawah ini.

[INPUT]

1 memori_limit = 1024M

Restart service HHVM

[INPUT]

1 sudo service hhvm restart

-Troubleshooting-

Jika terjadi error atau halaman tidak bisa diakses, baca file log Nginx dan HHVM.

[INPUT]

1 2 /var/log/nginx/error.log /var/log/hhvm/error.log

selamat mencoba 🙂

referensi: digitalocean.com

Leave a Reply

Your email address will not be published.