GNU/Linux >> Belajar Linux >  >> Debian

Penjelasan HHVM – Instal HHVM di Ubuntu 16.04 / Debian 8

HHVM (HipHop Virtual Machine) adalah mesin virtual open-source yang dirancang untuk mengeksekusi program yang ditulis dalam Hack dan PHP. HHVM dikembangkan oleh Facebook, dan kode sumbernya di-host di Github; dirilis di bawah persyaratan lisensi PHP dan Zend.

HHVM menggunakan prinsip kompilasi JIT (just-in-time) yang membantu mencapai kinerja yang unggul tanpa mengorbankan fleksibilitas pengembangan yang disediakan PHP. HHVM mengeksekusi PHP atau kode Hack ke dalam bytecode HipHop perantara (HHBC) dan kemudian diterjemahkan secara dinamis ke dalam kode mesin x86_64.

HHVM dapat diinstal pada sebagian besar platform Linux utama; juga merupakan dukungan eksperimental pada Mac OS X 10.10 dan pekerjaan sedang berlangsung untuk mendukung sistem operasi Windows.

HHVM menawarkan paket bawaan untuk sistem operasi Debian dan Ubuntu.

Ubuntu 16.04 (Xenial)
Ubuntu 15.10 (Wily Werewolf)
Ubuntu 15.04 (Vivid)
Ubuntu 14.04 (Terpercaya)
Debian 8 (Jessie)
Debian 7 (Wheezy )

Anda juga dapat membangun dari sumber untuk rasa lain dari distribusi Linux.

Rilis:

HHVM dikembangkan secara aktif oleh Facebook, dan Anda bisa mendapatkan versi lengkap (rilis stabil) setiap delapan minggu. Setiap rilis poin utama ketiga dari HHVM dianggap sebagai rilis dukungan jangka panjang (LTS). LTS didukung selama hampir satu tahun dan didukung dengan perbaikan bug penting dan patch keamanan.

Jika Anda masih memiliki pertanyaan, kunjungi entri blog tentang rilis LTS.

Panduan ini membantu Anda mengatur HHVM di Ubuntu 16.04 dan Debian 8. Panduan ini harus bekerja pada versi Ubuntu sebelumnya seperti Ubuntu 15.10, Ubuntu 14.04 LTS, Ubuntu 15.04, dan Debian 7.

Tambahkan Repositori HHVM:

Sekarang, tambahkan repositori HHVM di mesin Anda sebelum melanjutkan ke penginstalan.

Debian:

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449
echo deb http://dl.hhvm.com/debian $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/hhvm.list

Ubuntu:

sudo apt-get install software-properties-common
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"
PS:Untuk Ubuntu, ganti variabel “$(lsb_release -sc)” dengan nama kode distro Anda. Contoh:xenial

Instal HHVM di Ubuntu 16.04 / Debian 8:

Perbarui cache repositori dan lanjutkan ke penginstalan HHVM, ini akan menginstal versi terbaru HHVM pada mesin Anda.

sudo apt-get update
sudo apt-get install -y hhvm

Verifikasi versi HHVM.

$ php -v

HipHop VM 3.15.0 (rel)
Compiler: tags/HHVM-3.15.0-0-g92a682ebaa3c85b84857852d8621f528607fe27d
Repo schema: 225d4323575bbc8a498dc809a1c41354f6bca830

Uji HHVM:

Anda cukup menjalankan perintah untuk memulai HHVM. Anda dapat mengontrol server HHVM menggunakan argumen tambahan dengan perintah “hhvm”.

Mari buat file PHP untuk melayani permintaan melalui browser web di direktori kerja Anda saat ini.

vi test.php

Letakkan konten di bawah ini ke file di atas.

Jalankan perintah di bawah ini.

hhvm -m server -p 8080

-m mewakili mode dan di sini menunjukkan bahwa HHVM berjalan sebagai mode server HTTP
-p mengonfigurasi port TCP yang digunakan HHVM untuk mendengarkan permintaan HTTP.

Ketahui lebih banyak tentang mode HHVM.

Arahkan browser web Anda ke URL di bawah ini.

http://ip-add-re-ss:8080/test.php

Anda akan melihat halaman di bawah yang mengonfirmasi bahwa HHVM berfungsi dengan baik.

Jenis Server:

Jenis server diklasifikasikan berdasarkan bagaimana HHVM melayani halaman untuk permintaan pengguna; ia memiliki dukungan bawaan untuk jenis server:Proxygen dan CGI Cepat .

HHVM ProxyGen:

Mode proxy adalah server web lengkap, dibangun langsung ke HHVM. Sangat mudah untuk mengatur dan menjalankan dan melayani permintaan web dengan cepat. Mode Porxygen menyediakan server web berkinerja tinggi yang setara dengan FastCGI dan Nginx.

Seperti yang sudah saya katakan, parameter konfigurasi sangat sederhana dan mudah diatur. File konfigurasi utama HHVM adalah /etc/hhvm/server.ini .

Edit file konfigurasi seperti di bawah ini.

sudo vi /etc/hhvm/server.ini

Ubah konfigurasi HHVM sesuai dengan kebutuhan Anda.

; configures the TCP port that HHVM uses to listen to HTTP requests.
hhvm.server.port = 80
; Configures HHVM server type
hhvm.server.type = proxygen
; Configures default document for the directory
hhvm.server.default_document = index.php
; Enabling Logs
hhvm.log.use_log_file = true
hhvm.log.file = /var/log/hhvm/error.log
; Configures Error document for the directory
hhvm.server.error_document404 = index.php
; Sets the default directory for HHVM webserver when it is started
hhvm.server.source_root=/var/www/public

Anda dapat menjalankan perintah ini untuk menyetel HHVM agar mulai saat boot, dan untuk memulainya sebagai layanan sekarang:

sudo update-rc.d hhvm defaults
sudo service hhvm restart

Buat direktori /var/www/public yang akan menyimpan dokumen situs web Anda.

sudo mkdir -p /var/www/public

Buat file pengujian untuk memverifikasi bahwa HHVM melayani permintaan web.

sudo vi /var/www/public/index.php

Tempelkan konten di bawah ini ke file di atas.

Akses server web HHVM melalui browser pilihan Anda.

http://ip-add-re-ss

Anda akan mendapatkan halaman PHPInfo di mana Anda dapat menemukan semua informasi tentang PHP.

HHVM FastCGI:

Dalam mode ini, HHVM berada di antara dokumen web Anda (.php ) dan server web (Apache atau Nginx ). FastCGI memberikan kinerja tinggi dalam menyajikan halaman web dengan cepat, sangat mirip dengan PHP-FPM. HHVM mendengarkan di salah satu soket TCP (localhost:9000 ) atau soket UNIX. Server web (Nginx atau Apache ) akan mendengarkan pada port 80 atau 443 untuk permintaan web.

Saat permintaan baru masuk, server web membuat koneksi ke HHVM atau menggunakan kembali salah satu koneksi yang sebelumnya terbuka, menggunakan HHVM FastCGI. Setelah koneksi dibuat, server web memasok HHVM dengan informasi seperti header permintaan, isi, dan jalur file yang akan dieksekusi. Sekarang, HHVM menghitung informasi yang diterima dan mengirimkannya kembali ke server web menggunakan FastCGI lagi. Terakhir, server web akan mengirimkan respons ke klien dengan data yang diminta.

Apache:

Instal server Apache di komputer Anda menggunakan perintah berikut.

sudo apt-get install -y apache2

Menjalankan perintah di bawah ini akan menyiapkan Apache untuk bekerja dengan HHVM untuk melayani permintaan web.

sudo /usr/share/hhvm/install_fastcgi.sh

Secara default, apache akan mencari halaman web di /var/www/html direktori untuk melayani permintaan, tetapi mungkin tidak tahu cara menangani .php file. Jadi, Anda perlu memberi tahu Apache untuk mengambil file apa pun yang berakhiran .hh atau .php dan mengirimkannya ke HHVM melalui fastCGI.

Edit file konfigurasi di bawah ini.

sudo vi /etc/apache2/mods-enabled/hhvm_proxy_fcgi.conf

Atur seperti di bawah ini.

ProxyPassMatch ^/(.+\.(hh|php)(/.*)?)$ fcgi://127.0.0.1:9000/var/www/html/$1

Mulai ulang layanan apache dan HHVM.

sudo /etc/init.d/apache2 restart
sudo /etc/init.d/hhvm restart

Nginx:

Instal Nginx di komputer Anda menggunakan perintah berikut.

sudo apt-get install -y nginx

Menjalankan perintah di bawah ini akan menyiapkan Nginx untuk bekerja dengan HHVM untuk melayani permintaan web.

sudo /usr/share/hhvm/install_fastcgi.sh

Secara default, Nginx akan mencari halaman web di /usr/share/nginx/htm l (tergantung pada OS) direktori untuk melayani permintaan, tetapi mungkin tidak tahu bagaimana menangani .php file. Jadi, Anda akan mengarahkan Nginx untuk mengambil file apa pun yang berakhiran .hh atau .php dan mengirimkannya ke HHVM melalui fastCGI.

Edit file konfigurasi di bawah ini.

sudo vi /etc/nginx/sites-available/default

Ubah di bawah baris, tambahkan index.php ke baris indeks Anda.

Dari:

index index.html index.htm;

Kepada:

index index.php index.html index.htm;

Mulai ulang layanan apache dan HHVM.

sudo /etc/init.d/nginx restart
sudo /etc/init.d/hhvm restart

Untuk menguji jenis FastCGI, buat/tempatkan file .php ke direktori default.

Apache dan Nginx Ubuntu 16.04, 15.04 / Debian 8:

$ sudo vi /var/www/html/index.php

Tempelkan konten di bawah ini ke file di atas.