Thứ ba, 18/03/2014 | 00:00 GMT+7

Cách cài đặt HHVM (Máy ảo HipHop) trên VPS Ubuntu 13.10

Bài viết này sẽ hướng dẫn các bước cần thiết để cài đặt HHVM trên Ubuntu 13.10 trên Digital Ocean VPS. Bài báo cũng sẽ minh họa cách HHVM được dùng bằng cách tạo:

  1. Một dòng lệnh 'Hello World' script trong PHP

  2. Tập lệnh 'Hello World' dựa trên web được viết bằng PHP và được cung cấp bởi server HHVM

Yêu cầu

Yêu cầu duy nhất cho hướng dẫn này là một VPS được cài đặt Ubuntu 13.10 x64 . Lưu ý HHVM không hỗ trợ bất kỳ hệ điều hành 32 bit nào và họ không có kế hoạch bổ sung hỗ trợ cho hệ điều hành 32 bit.

Bạn cần thực hiện các lệnh từ dòng lệnh mà bạn có thể thực hiện theo một trong hai cách:

  1. Sử dụng SSH để truy cập server .

  2. Sử dụng 'Quyền truy cập Control panel ' từ Bảng quản lý Digital Ocean Server

HHVM là gì?

HipHop Virtual Machine (HHVM) là một máy ảo do Facebook phát triển và có nguồn mở để xử lý và thực thi các chương trình và tập lệnh được viết bằng PHP. Facebook đã phát triển HHVM vì sự kết hợp Zend + Apache thông thường không hiệu quả để phục vụ các ứng dụng lớn được xây dựng bằng PHP.

Theo trang web của họ, HHVM đã nhận ra rằng thông lượng yêu cầu web tăng hơn 9 lần và tiêu thụ bộ nhớ cho Facebook giảm hơn 5 lần so với Zend PHP engine + APC (đây là cách lưu trữ phần lớn các ứng dụng PHP hiện tại).

Cài đặt HHVM

Việc cài đặt HHVM khá đơn giản và không mất quá vài phút. Thực hiện 4 lệnh sau từ dòng lệnh sẽ có HHVM được cài đặt và sẵn sàng:

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

Để xác nhận HHVM đã được cài đặt, hãy nhập lệnh sau:

hhvm --help 

Điều này sẽ hiển thị chi tiết về cách lệnh hhvm được dùng từ dòng lệnh. Đây là một ảnh chụp màn hình mẫu minh họa điều này:

hhvm - ảnh chụp màn hình trợ giúp

Kiểm tra tập lệnh 'Hello World' trong PHP Từ Dòng lệnh bằng HHVM

Gõ lệnh sau trên dòng lệnh:

cat > hello_world.php 

Thao tác này sẽ tạo một file có tên hello_world.php và cho phép bạn nhập nội dung của nó. Nhập (hoặc copy paste ) mã sau rồi nhấn Ctrl + D để lưu file .

<?php  echo "\nHello World\n\n"; 

Lưu ý: Nếu bạn đã quen với các editor như nano hoặc vim , bạn có thể sử dụng những editor đó để tạo và lưu file này.

Khi file này đã được tạo, hhvm được dùng để thực thi nó bằng lệnh sau:

hhvm hello_world.php 

Đây là ảnh chụp màn hình để minh họa việc tạo và thực thi tập lệnh Hello World này:

Dòng lệnh Hello World

Kiểm tra tập lệnh 'Hello World' bằng PHP bằng Server HHVM (có thể truy cập từ trình duyệt)

Đầu tiên, hãy tạo một folder ( public ) sẽ đóng role là folder chung và chứa file PHP. Lưu ý bạn có thể đặt tên cho folder này bất cứ thứ gì và đặt nó ở bất cứ đâu . Thực hiện các lệnh sau để tạo folder này và nhập vào:

mkdir public cd public 

Bây giờ gõ lệnh sau trên dòng lệnh:

cat > hello.php 

Điều này sẽ tạo ra một file có tên hello.php trong public folder và cho phép bạn nhập nội dung của nó. Nhập (hoặc copy paste ) mã sau rồi nhấn Ctrl + D để lưu file .

<?php  echo '<h1>Hello World</h1>'; 

Lưu ý: Nếu bạn đã quen với các editor như nano hoặc vim , bạn có thể sử dụng những editor đó để tạo và lưu file này.

Khi file này đã được tạo, hhvm được dùng từ dòng lệnh để khởi động server theo cách sau:

hhvm -m server 

Đây là ảnh chụp màn hình để minh họa việc tạo và thực thi tập lệnh Hello World này:

Lệnh Hello World dựa trên web

Lệnh này sẽ khởi động server (trên cổng 80) và file hello.php bây giờ có thể được truy cập từ trình duyệt. Nếu địa chỉ IP của server là 128.199.212.7, file mới tạo này có thể được truy cập tại:

http://128.199.212.7/hello.php 

Lưu ý: Thay thế 128.199.212.7 bằng địa chỉ IP hoặc domain được server của bạn sử dụng.

Truy cập URL này sẽ hiển thị một trang web tương tự như trang trong ảnh chụp màn hình sau:

Ảnh chụp màn hình Hello World dựa trên web

Chuyển ứng dụng PHP của bạn sang HHVM

Để bắt đầu cung cấp ứng dụng PHP bằng HHVM thay vì Zend / Apache trên cổng 80 (cổng tiêu chuẩn cho các trang web), dịch vụ Apache cần phải dừng lại. Điều này có thể được thực hiện bằng cách sử dụng lệnh sau:

service apache2 stop 

Lệnh này sẽ dừng Apache và giải phóng cổng 80 cho HHVM sử dụng. Bước tiếp theo là khởi động server HHVM trong folder root của ứng dụng PHP của bạn . Vị trí phổ biến nhất của folder root này trên Ubuntu là /var/www .

Chuyển sang folder này bằng lệnh sau:

cd /var/www 

Khi bạn đã ở trong folder này, tất cả những gì bạn cần làm là khởi động server HHVM:

hhvm -m server 

Lệnh này sẽ khởi động server HHVM, server này sẽ bắt đầu phục vụ ứng dụng PHP của bạn từ folder hiện tại.

Sử dụng HHVM trong Chế độ FastCGI

Bắt đầu từ version 3.0, HHVM không còn được dùng trong chế độ server . Phần này sẽ giúp bạn cấu hình HHVM trong chế độ FastCGI với server Apache và Nginx.

Với Apache

Việc cấu hình HHVM hoạt động ở chế độ FastCGI với Apache cực kỳ đơn giản. Tất cả những gì bạn cần làm là thực hiện đoạn mã sau:

/usr/share/hhvm/install_fastcgi.sh 

Chạy tập lệnh này sẽ cấu hình Apache để bắt đầu sử dụng HHVM để xử lý mã PHP. Nó cũng sẽ khởi động lại server Apache để bạn không phải làm gì khác.

Với Nginx

Nếu bạn đang sử dụng Nginx với PHP-FPM, bạn sẽ phải sửa đổi file cấu hình để vô hiệu hóa việc sử dụng PHP-FPM. Tệp này thường được đặt tại /etc/nginx/sites-available/default

Hãy tìm phần sau và đảm bảo tất cả đều được comment (bằng cách thêm dấu # ở đầu mỗi dòng)

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { #       fastcgi_split_path_info ^(.+\.php)(/.+)$; #       # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini # #       # With php5-cgi alone: #       fastcgi_pass 127.0.0.1:9000; #       # With php5-fpm: #       fastcgi_pass unix:/var/run/php5-fpm.sock; #       fastcgi_index index.php; #       include fastcgi_params; #} 

Sau khi thực hiện việc này, hãy thực thi tập lệnh sau:

/usr/share/hhvm/install_fastcgi.sh 

Việc thực thi tập lệnh này sẽ cấu hình Nginx để bắt đầu sử dụng HHVM để xử lý mã PHP. Nó cũng sẽ khởi động lại server Nginx để bạn không phải làm gì khác.

Xác nhận Apache / Nginx đang sử dụng HHVM

Sau khi bạn đã cấu hình server của bạn để bắt đầu sử dụng HHVM, bạn nên xác nhận server (Apache hoặc Nginx) thực sự đang sử dụng HHVM để PHP processor .

Bạn có thể thực hiện việc này bằng cách tạo một file PHP thử nghiệm, giả sử là info.php và đặt nó vào folder chung trên server của bạn (thường là /var/www cho Apache và /usr/share/nginx/html cho Nginx). Bây giờ hãy đưa nội dung sau vào file này:

<?php  echo  defined('HHVM_VERSION')?'Using HHVM':'Not using HHVM'; 

Bây giờ nếu mọi thứ được cài đặt tốt, khi bạn truy cập file này trong trình duyệt, bạn sẽ thấy thông báo sau:

Sử dụng HHVM

Lưu ý quan trọng

HHVM đã kết hợp rất nhiều phần mở rộng PHP thường được sử dụng, giúp bạn dễ dàng chuyển một số lượng lớn các ứng dụng mà không gặp nhiều phiền phức. Tuy nhiên, nếu một ứng dụng sử dụng phần mở rộng PHP chưa được tích hợp, việc chọn HHVM sẽ phá vỡ ứng dụng. Bạn có thể tìm thấy danh sách đầy đủ các phần mở rộng PHP đã được chuyển sang HHVM tại đây

Từ cuối cùng

Nếu bạn đã đạt đến mức này, bây giờ bạn đã được trang bị tốt để bắt đầu sử dụng HHVM để phục vụ các trang web dựa trên PHP của bạn . Hiệu quả hơn nhiều lần so với sự kết hợp Zend PHP engine + APC thông thường, HHVM có thể giúp bạn phục vụ nhiều khách truy cập hơn vào trang web của bạn với yêu cầu phần cứng thấp hơn nhiều!

<div class = “author”> Gửi bởi: <a href=osystemhttp://javascript.asiaosystem> Jay </a> </div>


Tags:

Các tin liên quan

Cách thiết lập server cloud Ubuntu cho ứng dụng web Python
2014-02-25
Cách cài đặt và bắt đầu với CMS Mezzanine trên Django trên Ubuntu
2014-02-25
Cách cài đặt Django CMS phiên bản 3 Beta 3 với Django 1.6 trên Ubuntu
2014-02-25
Làm thế nào để Dockerise và triển khai nhiều ứng dụng WordPress trên Ubuntu
2014-02-13
Cách cài đặt Ruby 2.1.0 và Sinatra trên Ubuntu 13 với RVM
2014-02-10
Cách tạo Sách dạy nấu ăn Đầu bếp Đơn giản để Quản lý Cơ sở hạ tầng trên Ubuntu
2014-02-03
Cách cài đặt MariaDB từ Binary Tarballs trên Ubuntu 13.10
2014-01-28
Cách thiết lập một cụm Serf trên một số VPS Ubuntu
2014-01-23
Cách cấu hình Cụm Galera với MariaDB trên server Ubuntu 12.04
2014-01-20
Cách cài đặt Neo4J trên VPS Ubuntu
2014-01-15