HHVM全稱為 HipHop Virtual Machine,它是一個開源虛擬機,用來運行由 Hack(一種編程語言)和 php 開發應用。HHVM 在保證了 PHP 程序員最關注的高靈活性的要求下,通過使用最新的編譯方式來取得了非凡的性能。到目前為止,相對於 PHP + APC (Alternative PHP Cache) ,HHVM 為 FaceBook 在 HTTP 請求的吞吐量上提高了9倍的性能,在內存的占用上,減少了5倍左右的內存占用。
同時,HHVM 也可以與基於 FastCGI 的 Web 服務器(如 Nginx 或者 Apache )協同工作。
安裝 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
系統升級
2、 正如我之前說的,HHVM 能和 Nginx 和 Apache 進行集成。所以,究竟使用哪個服務器,這是你的自由,不過,我們會教你如何安裝這兩個服務器。
安裝 Nginx
我們通過下面的命令安裝 Nginx/Apache 服務器
# apt-get install nginx
安裝 Nginx 服務器
安裝 Apache
# apt-get install apache2
安裝 Apache 服務器
完成這一步,你能通過以下的鏈接看到 Nginx 或者 Apache 的默認頁面
http://localhost
或
http://IP-Address
第二步: 安裝和配置 MariaDB
3、 這一步,我們將通過如下命令安裝 MariaDB,它是一個比 mysql 性能更好的數據庫
# apt-get install mariadb-client mariadb-server
安裝 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
配置 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
HHVM 頁面
如果 “HHVM” 的頁面出現了,那就說明你成功了。
結論
以上的步驟都是非常簡單的,希望你能覺得這是一篇有用的教程,如果你在以上的步驟中遇到了問題,給我們留一個評論,我們將全力解決。