它可以完成。這裏是我的Ubuntu Web服務器示例:
您需要一種方法將HHVM掛接到您的Apache Web服務器。這是使用FastCGI完成的,您需要安裝它。幸運的是,HHVM提供了一個shell腳本來設置它。運行以下...
sudo /usr/share/hhvm/install_fastcgi.sh
確保HHVM在引導激發起來,運行這個...(可選)
sudo update-rc.d hhvm defaults
配置HHVM和Apache虛擬主機
安裝腳本會要求你重啓HHVM和Apache。不要只是,否則你的網站訪問者將會看到一些404動作來自他們的方式。相反,打開hhvmproxyfcgi.conf並註釋那裏的單個ProxyPassMatch行。
sudo emacs /etc/apache2/mods-available/hhvm_proxy_fcgi.conf
# ProxyPassMatch ^/(.+\.(hh|php)(/.*)?)$ fcgi://127.0.0.1:9000/v
這將停止所有PHP /哈克從腳本通過FastCGI的被路由,這將讓你選擇你想通過HHVM要發送的Web應用程序。如果您只在Web服務器根目錄下運行單個Web應用程序,則無需執行此操作,但無論如何,我認爲這是一個明智之舉。
現在HHVM正在運行,但無法將腳本移交給它。我們需要將ProxyPassMatch配置添加到我們希望HHVM支持的Web應用程序的虛擬主機配置。將其添加到每個配置文件中的每個虛擬主機實例(以下示例中涵蓋的安全和非安全流量)。
sudo nano /etc/apache2/sites-available/hhvm.example.com.conf
#HHVM示例 - hhvm.example.com
<VirtualHost *:80>
ServerName hhvm.example.com
DirectoryIndex index.php
DocumentRoot /var/www/sites/hhvm.example
ProxyPassMatch ^/(.+\.(hh|php)(/.*)?)$ fcgi://127.0.0.1:9000/var/www/sites/hhvm.example/$1
</VirtualHost>
<VirtualHost *:443>
ServerName hhvm.example.com
DirectoryIndex index.php
DocumentRoot /var/www/sites/hhvm.example
SSLEngine On
SSLCertificateFile /etc/ssl/certs/hhvm.crt
SSLCertificateKeyFile /etc/ssl/private/hhvm.key
SSLCACertificateFile /etc/ssl/certs/hhvm.ca.crt
ProxyPassMatch ^/(.+\.(hh|php)(/.*)?)$ fcgi://127.0.0.1:9000/var/www/sites/hhvm.example/$1
</VirtualHost>
你也可以指定其他端口明確地使用HHVM,如果你想快速A/B測試的性能提升。要做到這一點,只需在/etc/apache2/ports.conf
Listen 8080
然後在你的虛擬主機配置打開端口,創建指定的新端口的另一實例和ProxyPassMatch配置添加到您想運行HHVM之一。
<VirtualHost *:80>
...
</VirtualHost>
<VirtualHost *:8080>
...
ProxyPassMatch ^/(.+\.(hh|php)(/.*)?)$ fcgi://127.0.0.1:9000/var/www/$1
</VirtualHost>
重新啓動Apache和HHVM
現在,我們已經準備好踢Apache和HHVM的頭部。重新啓動這兩項服務...
sudo service apache2 restart
sudo service hhvm restart
是否有index.php avaiable? – AMB