背景
由于官方提供的HHVM编译过于复杂,国内也没有一整套的方便运维解决方案,那么我们提供一版baidu的免编译版本供国内对于HHVM的用户进行体验使用,并进行持续更新。
环境
此免依赖安装包,免依赖包和系统无依赖,目前内部使用支持centos6+和redhat4(外部aws可以使用),其他linux版本用户可以进行试用,内核需要linux 2.6.32以上
安装
Baidu hhvm 下载地址:
http://bcs.duapp.com/hhvm-package/hhvm-3.0.1-V0.1.tar.gz
1.解压hhvm.tar.gz
tar zxvf hhvm.tar.gz cd hhvm
2.通过文本编辑器打开init.sh文件
vi tools/exec/init.sh
修改如下的3个参数:
HHVM_SOURCE_ROOT=php的源文件路径如(/home/www/app),需要绝对地址,这个是需要自定义的 #hhvm服务的端口 SERVER_PORT=8091 #hhvm 管理端口 ADMIN_PORT=8092
3.然后运行sh tools/exec/init.sh
主要是替换配置文件的路径、noau监控端口、还有设置ld-linux-x86-64.so.2的路径
注:
如果初始化完毕后,如果要是更换hhvm路径,那么需要重新运行init.sh,因为ld-linux-x86-64.so.2需要绝对路径
测试
运行脚本
编写测试脚本test.php:
<?php echo "hello world hhvm!/n"; ?>
存放在/home/work/data/www下(因为我们上面举例配置sourceroot为这个目录)
然后我们运行脚本:
bin/hhvm_control start
fastcgi 模式启动:
需要通过nginx或者apache 转发到8091端口上,然后通过访问nginx端口访问hhvm的php,如nginx端口是8080,那么则访问 http://127.0.0.1:8080/test.php 即可通过8080转发到8091访问我们的php页面;
也可以用http模式运行,修改hhvm.conf中fastcgi为Server.Type=libevent即可,这样就可以直接访问端口;
停止和重启运行脚本restart和stop即可;
hhvm 简单运行
如果我们不想运行脚本,仅仅测试hhvm,那么我们也可以利用上面写好的脚本,运行:
bin/hhvm -c conf/hhvm.conf -m server
目录结构
目录名称 | 目录解释 |
---|---|
bin | 存放hhvm可执行文件还有执行脚本 |
cache | 存放hhbc文件的目录 |
conf | 存放hhvm配置文件的目录 |
ext | 存放扩展so的目录 |
lib | 存放hhvm依赖的lib的目录 |
lib64 | 存放hhvm依赖库的lib64目录 |
log | log存放的位置,运行后会生成目录 |
monitor | 监控脚本目录 |
tools | 存放初始化文件和配置模板 |
var | 存放hhvm.pid的目录 |
版本更新和问题提交
git 源
更新版本和一些详细内容都在如下git源中进行更新:
https://github.com/baidu-lamp/baidu-hhvm/
issue提交
遇到的问题可以提交到issue中,我们后期会进行解决:
https://github.com/baidu-lamp/baidu-hhvm/issues
联系方式
QQ群:
HHVM学习研究B:387626087