Menyiapkan HHVM Berkinerja Tinggi dan Nginx/Apache dengan MariaDB di Debian/Ubuntu


HHVM adalah singkatan dari HipHop Virtual Machine, adalah mesin virtual sumber terbuka yang dibuat untuk menjalankan Hack (ini adalah bahasa pemrograman untuk HHVM) dan Aplikasi tertulis PHP. HHVM menggunakan jalur kompilasi menit terakhir untuk mencapai kinerja luar biasa sekaligus menjaga fleksibilitas yang membuat pemrogram PHP ketagihan. Hingga saat ini, HHVM telah mencapai peningkatan lebih dari 9x dalam throughput permintaan http dan pengurangan penggunaan memori lebih dari 5x (saat dijalankan pada memori sistem yang rendah) untuk Facebook dibandingkan dengan mesin PHP + APC (Alternatif PHP Cache ).

HHVM juga dapat digunakan bersama dengan server web berbasis FastCGI seperti Nginx atau Apache.

Dalam tutorial ini kita akan melihat langkah-langkah untuk menyiapkan server web Nginx/Apache, server database MariaDB, dan HHVM . Untuk pengaturan ini, kita akan menggunakan Ubuntu 15.04 (64-bit) karena HHVM hanya berjalan pada sistem 64-bit, meskipun distribusi Debian dan Linux Mint juga didukung.

Langkah 1: Menginstal Nginx dan Server Web Apache

1. Pertama-tama lakukan peningkatan sistem untuk memperbarui daftar repositori dengan bantuan perintah berikut.


apt-get update && apt-get upgrade

2. Seperti yang saya katakan HHVM dapat digunakan dengan server web Nginx dan Apache. Jadi, terserah Anda server web mana yang akan Anda gunakan, tetapi di sini kami akan menunjukkan kepada Anda instalasi server web dan cara menggunakannya dengan HHVM.

Menginstal Nginx

Pada langkah ini, kita akan menginstal server web Nginx/Apache dari repositori paket menggunakan perintah berikut.


apt-get install nginx

Menginstal Apache


apt-get install apache2

Pada titik ini, Anda seharusnya dapat menavigasi ke URL berikut dan Anda akan dapat melihat halaman default Nginx atau Apache.


http://localhost
OR
http://IP-Address
Halaman Default Nginx

Halaman Bawaan Apache

Langkah 2: Instal dan Konfigurasi MariaDB

3. Pada langkah ini, kita akan menginstal MariaDB, karena memberikan kinerja yang lebih baik dibandingkan dengan MySQL.


apt-get install mariadb-client mariadb-server

4. Setelah instalasi MariaDB berhasil, Anda dapat memulai MariaDB dan mengatur kata sandi root untuk mengamankan database:


systemctl start mysql
mysql_secure_installation

Jawab pertanyaan berikut dengan mengetik y atau n dan tekan enter. Pastikan Anda membaca instruksi dengan seksama sebelum menjawab pertanyaan.


Enter current password for root (enter for none) = press enter
Set root password? [Y/n] = y
Remove anonymous users[y/n] = y
Disallow root login remotely[y/n] = y
Remove test database and access to it [y/n] = y
Reload privileges tables now[y/n] = y 

5. Setelah mengatur kata sandi root untuk MariaDB, Anda dapat terhubung ke perintah MariaDB dengan kata sandi root yang baru.


mysql -u root -p

Langkah 3: Instalasi HHVM

6. Pada tahap ini kita akan menginstal dan mengkonfigurasi HHVM. Anda perlu menambahkan repositori HHVM ke file sources.list Anda dan kemudian Anda harus memperbarui daftar repositori Anda menggunakan serangkaian perintah berikut.


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

Penting: Jangan lupa ganti DISTRIBUTION_VERSION dengan versi distribusi Ubuntu Anda (yaitu jernih, tepat, atau dapat dipercaya .) dan juga di Debian ganti dengan jessie atau wheezy. Petunjuk instalasi di Linux Mint sama, namun petra adalah satu-satunya distribusi yang saat ini didukung.

Setelah menambahkan repositori HHVM, Anda dapat menginstalnya dengan mudah seperti yang ditunjukkan.


apt-get install -y hhvm

Menginstal HHVM akan memulainya sekarang, tetapi tidak dikonfigurasi untuk memulai otomatis pada boot sistem berikutnya. Untuk mengatur mulai otomatis pada boot berikutnya gunakan perintah berikut.


update-rc.d hhvm defaults

Langkah 4: Mengonfigurasi Nginx/Apache untuk Berbicara dengan HHVM

7. Sekarang, nginx/Apache dan HHVM terinstal dan berjalan secara independen, jadi kita perlu mengonfigurasi kedua server web agar dapat berkomunikasi satu sama lain. Bagian krusialnya adalah kita harus memberitahu nginx/Apache untuk meneruskan semua file PHP ke HHVM untuk dieksekusi.

Jika Anda menggunakan Nginx, ikuti petunjuk ini seperti yang dijelaskan..

Secara default, konfigurasi nginx berada di bawah /etc/nginx/sites-available/default dan konfigurasi ini mencari di /usr/share/nginx/html untuk mengeksekusi file, tapi tidak tahu apa yang harus dilakukan dengan PHP.

Untuk membuat Nginx dapat berbicara dengan HHVM, kita perlu menjalankan skrip include berikut yang akan mengkonfigurasi nginx dengan benar dengan menempatkan hhvm.conf di awal konfigurasi nginx seperti yang disebutkan di atas.

Skrip ini membuat nginx berkomunikasi dengan file apa pun yang diakhiri dengan .hh atau .php dan mengirimkannya ke HHVM melalui fastcgi.


/usr/share/hhvm/install_fastcgi.sh

Penting: Jika Anda menggunakan Apache, konfigurasi apa pun tidak diperlukan saat ini.

8. Selanjutnya, Anda perlu menggunakan /usr/bin/hhvm untuk menyediakan /usr/bin/php (php) dengan menjalankan perintah ini di bawah.


/usr/bin/update-alternatives --install /usr/bin/php php /usr/bin/hhvm 60

Setelah semua langkah di atas selesai, kini Anda dapat memulai HHVM dan mengujinya.


systemctl start hhvm

Langkah 5: Menguji HHVM dengan Nginx/Apache

9. Untuk memverifikasi bahwa hhvm berfungsi, Anda perlu membuat file hello.php di bawah direktori akar dokumen nginx/apache.


nano /usr/share/nginx/html/hello.php       [For Nginx]
OR
nano /var/www/html/hello.php               [For Nginx and Apache]

Tambahkan cuplikan berikut ke file ini.


<?php
if (defined('HHVM_VERSION')) {
echo 'HHVM is working';
 phpinfo();
}
else {
echo 'HHVM is not working';
}
?>

lalu navigasikan ke URL berikut dan verifikasi untuk melihat “halo dunia“.


http://localhost/info.php
OR
http://IP-Address/info.php

Jika halaman “HHVM” muncul, berarti Anda sudah siap!

Kesimpulan

Langkah-langkah ini sangat mudah untuk diikuti dan semoga tutorial ini bermanfaat bagi Anda dan jika Anda mendapatkan kesalahan apa pun saat instalasi paket apa pun, kirim komentar dan kami akan mencari solusi bersama. Dan ide tambahan apa pun dipersilakan.