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ả