在 Ubuntu 上配置高效能的 HHVM 環境

linux.cn發表於2015-09-06

HHVM全稱為 HipHop Virtual Machine,它是一個開源虛擬機器,用來執行由 Hack(一種程式語言)和 PHP 開發應用。HHVM 在保證了 PHP 程式設計師最關注的高靈活性的要求下,通過使用最新的編譯方式來取得了非凡的效能。到目前為止,相對於 PHP + APC (Alternative PHP Cache) ,HHVM 為 FaceBook 在 HTTP 請求的吞吐量上提高了9倍的效能,在記憶體的佔用上,減少了5倍左右的記憶體佔用。

同時,HHVM 也可以與基於 FastCGI 的 Web 伺服器(如 Nginx 或者 Apache )協同工作。

在 Ubuntu 上配置高效能的 HHVM 環境

安裝 HHVM,Nginx和 Apache 還有 MariaDB

在本教程中,我們一起來配置 Nginx/Apache web 伺服器、 資料庫伺服器 MariaDB 和 HHVM 。我們將使用 Ubuntu 15.04 (64 位),因為 HHVM 只能執行在64位系統上。同時,該教程也適用於 Debian 和 Linux Mint。

第一步: 安裝 Nginx 或者 Apache 伺服器

1、首先,先進行一次系統的升級並更新軟體倉庫列表,命令如下

# apt-get update && apt-get upgrade

在 Ubuntu 上配置高效能的 HHVM 環境

系統升級

2、 正如我之前說的,HHVM 能和 Nginx 和 Apache 進行整合。所以,究竟使用哪個伺服器,這是你的自由,不過,我們會教你如何安裝這兩個伺服器。

安裝 Nginx

我們通過下面的命令安裝 Nginx/Apache 伺服器

# apt-get install nginx

在 Ubuntu 上配置高效能的 HHVM 環境

安裝 Nginx 伺服器

安裝 Apache

# apt-get install apache2

在 Ubuntu 上配置高效能的 HHVM 環境

安裝 Apache 伺服器

完成這一步,你能通過以下的連結看到 Nginx 或者 Apache 的預設頁面

http://localhost
或

http://IP-Address

在 Ubuntu 上配置高效能的 HHVM 環境

Nginx 預設頁面

在 Ubuntu 上配置高效能的 HHVM 環境

Apache 預設頁面

第二步: 安裝和配置 MariaDB

3、 這一步,我們將通過如下命令安裝 MariaDB,它是一個比 MySQL 效能更好的資料庫

# apt-get install mariadb-client mariadb-server

在 Ubuntu 上配置高效能的 HHVM 環境

安裝 MariaDB

4、 在 MariaDB 成功安裝之後,你可以啟動它,並且設定 root 密碼來保護資料庫:

# systemctl start mysql
# mysql_secure_installation

回答以下問題,只需要按下y或者 n並且回車。請確保你仔細的閱讀過說明。

Enter current password for root (enter for none) = press enter
Set root password? [Y/n] = y
Remove anonymous users[y/n] = y
Disallow root login remotely[y/n] = y
Remove test database and access to it [y/n] = y
Reload privileges tables now[y/n] = y

5、 在設定了密碼之後,你就可以登入 MariaDB 了。

# mysql -u root -p

第三步: 安裝 HHVM

6、 在此階段,我們將安裝 HHVM。我們需要新增 HHVM 的倉庫到你的sources.list檔案中,然後更新軟體列表。

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

重要:不要忘記用你的 Ubuntu 發行版代號替換上述的 DISTRIBUTION_VERSION (比如:lucid, precise, trusty) 或者是 Debian 的 jessie 或者 wheezy。在 Linux Mint 中也是一樣的,不過只支援 petra。

新增了 HHVM 倉庫之後,你就可以輕鬆安裝了。

# apt-get install -y hhvm

安裝之後,就可以啟動它,但是它並沒有做到開機啟動。可以用如下命令做到開機啟動。

# update-rc.d hhvm defaults

第四步: 配置 Nginx/Apache 連線 HHVM

7、 現在,nginx/apache 和 HHVM 都已經安裝完成了,並且都獨立執行起來了,所以我們需要對它們進行設定,來讓它們互相關聯。這個關鍵的步驟,就是需要告知 nginx/apache 將所有的 php 檔案,都交給 HHVM 進行處理。

如果你用了 Nginx,請按照如下步驟:

nginx 的配置檔案在 /etc/nginx/sites-available/default, 並且這些配置檔案會在 /usr/share/nginx/html 中尋找檔案執行,不過,它不知道如何處理 PHP。

為了確保 Nginx 可以連線 HHVM,我們需要執行所帶的如下指令碼。它可以幫助我們正確的配置 Nginx,將 hhvm.conf 放到 上面提到的配置檔案 nginx.conf 的頭部。

這個指令碼可以確保 Nginx 可以對 .hh 和 .php 的做正確的處理,並且將它們通過 fastcgi 傳送給 HHVM。

# /usr/share/hhvm/install_fastcgi.sh

在 Ubuntu 上配置高效能的 HHVM 環境

配置 Nginx、HHVM

重要: 如果你使用的是 Apache,這裡不需要進行配置。

8、 接下來,你需要使用 hhvm 來提供 php 的執行環境。

# /usr/bin/update-alternatives --install /usr/bin/php php /usr/bin/hhvm 60

以上步驟完成之後,你現在可以啟動並且測試它了。

# systemctl start hhvm

第五步: 測試 HHVM 和 Nginx/Apache

9、 為了確認 hhvm 是否工作,你需要在 nginx/apache 的文件根目錄下建立 hello.php。

# nano /usr/share/nginx/html/hello.php       [對於 Nginx]
或
# nano /var/www/html/hello.php               [對於 Nginx 和 Apache]

在檔案中新增如下程式碼:

<?php
if (defined('HHVM_VERSION')) {
    echo 'HHVM is working';
    phpinfo();
} else {
    echo 'HHVM is not working';
}
?>

然後訪問如下連結,確認自己能否看到 “Hello World

http://localhost/info.php
或

http://IP-Address/info.php

在 Ubuntu 上配置高效能的 HHVM 環境

HHVM 頁面

如果 “HHVM” 的頁面出現了,那就說明你成功了。

結論

以上的步驟都是非常簡單的,希望你能覺得這是一篇有用的教程,如果你在以上的步驟中遇到了問題,給我們留一個評論,我們將全力解決。

相關文章