Hướng dẫn cài đặt HHVM với Apache và Nginx trên Ubuntu 16

HHVM được viết tắt từ “HipHop Virtual Machine” là một mã nguồn mở máy ảo dựa trên just-in-time (JIT) ,một ngôn ngữ lập trình tương tự như PHP-FPM , được phát triển bởi Facebook. HHVM giúp tăng tốc PHP nhờ sử dụng máy xử lý ảo dựa trên trình biên dịch just-in-time (JIT).

Apache và Nginx là hai phần mềm máy chủ web phổ biến nhất trên mạng.

Bài viết sau đây sẽ hướng dẫn các bạn làm thế nào đề cài đặt HHVM với Apache và Nginx trên Ubuntu 16

I.Chuẩn bị

Đầu tiên chúng ta cần cài đặt Apache hoặc Nginx

# apt-get update -y
# apt-get install nginx -y

hoặc

# apt-get install apache2 -y

Cài đặt thêm một số phần mềm cần thiết

# apt install software-properties-common -y

Tạo kho để cài đặt HHVM

# apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449
# add-apt-repository "deb http://dl.hhvm.com/ubuntu $(lsb_release -sc) main"
# apt-get update -y

II.Tiến hành

ĐỂ cài đặt HHVM ta gõ lệnh sau

# apt-get install hhvm -y

HHVM đi kèm với một script làm việc tích hợp với nginx rất dễ dàng. Miễn là cài đặt nginx một cách mặc định không cài thêm bất cứ FastCGI ví dụ như php-fpm ,thì bạn cò thể chạy script mà không cần thay đổi một thông số nào hết , bạn gõ lệnh sau để chạy script

# /usr/share/hhvm/install_fastcgi.sh

Để đảm bảo cho HHVM tự động bật và tắt , thêm lệnh HHVM để chạy theo mặc định ta gõ lệnh sau

# update-rc.d hhvm defaults

Khởi động lại HHVM

# /etc/init.d/hhvm restart

Cấu hình HHVM làm việc với Nginx

Mặc định HHVM sẽ lắng nghe qua port TCP 9000. HHVM được coi cho các môi trường dưới tải nặng nên các thay đổi cấu hình đầu tiên bạn có thể làm là làm cho HHVM nghe một socket thay vì một cổng TCP. Vì vậy, các thông tin liên lạc giữa Nginx và HHVM sẽ đòi hỏi ít CPU và bộ nhớ.

Mở file /etc/hhvm/server.ini

# nano /etc/hhvm/server.ini

Chúng ta sẽ đóng dấu ‘#‘ vào dòng thứ 5 và thêm dòng thứ 4 vào

php options
pid = /var/run/hhvm/pid
; hhvm specific
hhvm.server.file_socket=/var/run/hhvm/hhvm.sock
#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

Tiếp theo, bạn phải làm cho Nginx ý thức của sự thay đổi này, mở file /etc/nginx/hhvm.conf

# nano /etc/nginx/hhvm.conf

Thay nội dung dòng thứ 3 như dưới đây

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;
}

Lưu và thoát ,xong chúng ta mở file cấu hình Nginx ra

# nano /etc/nginx/sites-enabled/default

Thêm ‘index.php‘ Vào dòng bên dưới để Nginx và HHVM làm việc với nhau

# Add index.php to the list if you are using PHP
index index.php index.html index.htm index.nginx-debian.html;

Khởi động lại Nginx và HHVM

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

Cấu hình HHVM làm việc với Apache

Khi cài đặt HHVM sẽ tự động làm việc với Apache mà không cần cấu hình hình gì phức tạp

Chúng ta sẽ chỉ cần chỉnh sửa lại một chút đường dẫn cơ bản của HHVM trong file hhvm_proxy_fcgi.conf

# nano /etc/apache2/mods-available/hhvm_proxy_fcgi.conf

Và sửa nội dung như sau

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

Khởi động lại Apache và HHVM

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

Kiểm tra

Để kiểm tra phiên bản ta gõ lệnh sau

# /usr/bin/php --version

Bây giờ chúng ta sẽ tạo một file test cấu hình php

# nano /var/www/html/info.php

Có nội dung như sau

<?php
phpinfo();
?>

Các bạn truy cập vào địa chỉ http://<Địa chỉ vps>/info.php thông qua trình duyệt web, nếu được như hình dưới là thành công

Kết 

Đến đây đã kết thúc bài hướng dẫn cài đặt HHVM với Apache và Nginx trên Ubuntu 16. Hẹn gặp lại các bạn trong các bài tiếp theo, chúc các bạn thành công!