Hướng dẫn cài đặt Nginx với HHVM trên ubuntu 14

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).

Một thực tế là HHVM càng ngày càng được chú ý tronmg thời gian gần đây. Bài viết sau đây sẽ hướng dẫn cài đặt HHVM 

I.Chuẩn bị 

1 vps cài đặt Ubuntu 14, cấu hình tối thiểu ram 1 Ghz , link thuê vps Click here

Cài đặt nginx và mysql hoặc mariadb không cần cài đặt php ,link tham khảo click here

Cài thêm kho lưu trư HHVM 

Cài đặt một số phần mềm

#  sudo apt-get install software-properties-common

Cài đặt key cho kho

#  sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449

Cài đặt kho repo HHVM

#  sudo add-apt-repository "deb http://dl.hhvm.com/ubuntu $(lsb_release -sc) main"

Chạy lệnh cập nhật hệ thống để cập nhật kho mới thêm

#  sudo apt-get update

II.Tiến hành

Cài đặt HHVM 

Các bạn chạy lệnh sau để cài đặt HHVM

# apt-get install -y hhvm

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

# sudo update-rc.d hhvm defaults

Sẽ hiện ra nội dung như sau 

 Adding system startup for /etc/init.d/hhvm ...
   /etc/rc0.d/K20hhvm -> ../init.d/hhvm
   /etc/rc1.d/K20hhvm -> ../init.d/hhvm
   /etc/rc6.d/K20hhvm -> ../init.d/hhvm
   /etc/rc2.d/S20hhvm -> ../init.d/hhvm
   /etc/rc3.d/S20hhvm -> ../init.d/hhvm
   /etc/rc4.d/S20hhvm -> ../init.d/hhvm
   /etc/rc5.d/S20hhvm -> ../init.d/hhvm

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

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

Cấu hình HHVM lắng nghe trên socket 

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

Loại bỏ dòng hhvm.server.port bằng cách thêm dấu ghi chú cho nó và thêm vào dòng sau

; 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

 

Khởi động lại HHVM

# service hhvm restart

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

Và thay đổi nội dung như sau

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

Bạn sẽ phải khởi động lại Nginx quá để thay đổi này có hiệu lực.

# service nginx restart

Cấu hình nginx 

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

Tìm dòng sau và thêm vào index.php

 root /usr/share/nginx/html;
 index index.php index.html index.htm;

Khởi động lại Nginx cho thiết lập này có hiệu lực:

# service nginx restart

Kiểm tra HHVM

Kiểm tra version HHVM

# /usr/bin/php --version

HipHop VM 3.15.2 (rel)
Compiler: tags/HHVM-3.15.2-0-g83ac3e5e3f5657be0cf4c55884044f86a7818b90
Repo schema: 608339137764e8365964a1adaa7a27d125b6076f

Tạo một tập tin info.php 

# nano /usr/share/nginx/html/info.php

Với nội dung như sau

<?php
phpinfo();
?>

Truy cập vào trình duyệt web http://ip-vps/info.php để xem kết quả