1、簡介php
HipHop VM(HHVM)是Facebook推出的用來執行PHP代碼的虛擬機,它是一個PHP的JIT(Just-In- Time)編譯器,同時具備產生快速代碼和即時編譯的優勢。
Facebook表示,HHVM將替代HPHPi,用於全部的PHP執行。根據 Facebook透漏,HHVM在速度方面得到了顯著改進,比目前使用的PHP解釋器快60%,而使用內存減小90%。Facebook於12年十二月初發布了一個博文,宣佈他們的解釋型PHP運行環境HHVM(HipHop VM)已經達到甚至超過了編譯型PHP運行環境HipHop的運行速度
css
2、安裝html
1,安裝epel源:yum install http://ftp.riken.jp/Linux/fedora/epel/6/i386/epel-release-6-8.noarch.rpm nginx
2,配置源:
cd /etc/yum.repos.d
wget http://www.hop5.in/yum/el6/hop5.repo
yum makecache
3,升級gcc到4.8.2: yum install gcc.x86_64
4,安裝HHVM2.4 : yum install hhvm.x86_64
後端
3、編寫配置文件spa
vi /etc/hhvm.hdf代理
Server {orm
Port = 90
Type=fastcgi #fastcgi支持
SourceRoot = /home/www/
}
Eval {
Jit = true #啓用Jit動態編譯
JitWarmupRequests=0 #第一次請求即開啓Jit,默認是11
}
Log {
Level = Error
UseLogFile = true
File = /var/log/hhvm/error.log
Access {
* {
File = /var/log/hhvm/access.log
Format = %h %l %u %t \"%r\" %>s %b
}
}
}
VirtualHost {
* {
Pattern = .*
RewriteRules {
dirindex {
pattern = ^/(.*)/$
to = $1/index.php
qsa = true
}
}
}
}
StaticFile {
FilesMatch {
* {
pattern = .*\.(dll|exe)
headers {
* = Content-Disposition: attachment
}
}
}
Extensions {
css = text/css
gif = image/gif
html = text/html
jpe = image/jpeg
jpeg = image/jpeg
jpg = image/jpeg
png = image/png
tif = image/tiff
tiff = image/tiff
txt = text/plain
}
}server
4、啓動HHVM服務htm
hhvm --mode daemon --user root --config /etc/hhvm.hdf
--mode daemon:後臺進程方式運行
--user root:以root用戶運行
--config :啓動的配置文件
CLI: time hhvm -v"Eval.Jit=true""Eval.JitWarmupRequests=0" -f test_cpu.php
5、與nginx結合,使用nginx作反向代理,將請求轉給hhvm
在nginx裏建立虛擬機:
server {
listen 8000; #虛擬機端口8000,ps:不要hhvm端口混淆
server_name localhost;
location / {
root /home/www;
index index.html index.php index.htm;
}
location ~ \.php$ {
proxy_set_header X-Real-IP $remote_addr; #把真實的ip發送給後端 proxy_set_header Host www.xxx.com;#發送請求的host;
proxy_pass http://localhost:90; #把全部的請求轉發給hhvm的90端口,和php fpm相似;
}
}
此時經過8000端口訪問php文件,頭信息以下:
所有成功!
http://localhost/test_cpu.php php運行程序
http://localhost:90/test_cpu.php hhvm運行程序
http://localhost:8000/test_cpu.php hhvm+nginx運行