标签 HHVM 下的文章

HHVM(HipHop Virtual Machine),Facebook的开源项目之一,用于代替php环境,这里不多做介绍,本文介绍配置教程.

安装步骤:
1.配置LNMP. 至于如何配置LNMP,懒人建议使用Linuxeye的一键安装包LNMP一键安装包,选择安装nginx,mysql即可.

2.安装hhvm
安装所需的epel和hhvm yum源

rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

安装hhvm所需文件

sudo yum install libmcrypt-devel glog-devel jemalloc-devel tbb-devel libdwarf-devel mysql-devel \ libxml2-devel libicu-devel pcre-devel gd-devel boost-devel sqlite-devel pam-devel \ bzip2-devel oniguruma-devel openldap-devel readline-devel libc-client-devel libcap-devel \ libevent-devel libcurl-devel libmemcached-devel

安装hhvm所需的yum源

sudo rpm -Uvh http://yum.gleez.com/6/x86_64/gleez-repo-6-0.el6.noarch.rpm

如果是国内主机,由于gleez.com被墙,这里提供另外一个下载地址 gleez-repo-6-0.el6.noarch.rpm,下载后重命名为gleez-repo-6-0.el6.noarch,上传到主机执行以下命令:

sudo rpm -Uvh gleez-repo-6-0.el6.noarch.rpm

安装remi yum源

sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/6/remi/x86_64/remi-release-6.5-1.el6.remi.noarch.rpm

安装hhvm所需软件

yum --enablerepo=remi install libwebp mysql mysql-devel mysql-lib

安装hhvm

yum --nogpgcheck install hhvm

加入开机启动

chkconfig hhvm on

hhvm运行模式由端口改为socket方式,修改 /etc/hhvm/server.ini

;hhvm.server.port = 9001     (注释或者删除此行)<br />
hhvm.server.file_socket = /var/run/hhvm/sock  (添加此行)

hhvm服务管理

service hhvm {start|stop|restart}

3.修改nginx配置:
找到service字段内的php部份,此处在每次添加完虚拟主机以后都要修改.

#fastcgi_pass  unix:/tmp/php-cgi.sock; (注释此行)<br />
fastcgi_pass  unix:/var/run/hhvm/sock; (添加此行)

4.修改hhvm配置(可选):
在/etc/hhvm/php.ini中追加如下:

hhvm.jit_enable_rename_function=true<br />
auto_prepend_file= /home/wwwroot/default/disable_functions ;禁用hhvm中shell_exec函数<br />
expose_php = 0 ;关闭头信息X-Powered-By<br />
memory_limit = 512M ;内存限制<br />
post_max_size = 50M ;文件上传大小限制

新建/home/wwwroot/default/disable_functions,使该文件内容如下:

<?php<br />
function __forbidden_function($name, $obj, $args, $data, &$done) {<br />
  throw new Exception('Calling '.$name.' is forbidden.');<br />
}<br />
fb_intercept('shell_exec', '__forbidden_function');

5.修改hhvm启动用户:
因为源包默认使用nginx用户启动hhvm,而lnmp配置时,是用www用户启动nginx,会有一些权限问题.所以我们这里将hhvm修改为使用www用户启动:
编辑/etc/init.d/hhvm文件

USER=nginx

修改为:

USER=www

接下来将hhrm目录修改为www用户所有:

chown -R www.www /var/run/hhvm

6.重启nginx,启动hhvm.大功告成.

service nginx restart<br />
service hhvm start

7.说明:
wordpress测试完美,负载直降,但是hhvm3.x版本目前不支持phpmyadmin.需要使用的同学可以配置LNMP时,选择安装php-fpm以对phpmyadmin提供php后端支持.

8.参考链接:
https://github.com/facebook/hhvm/wiki/HHVM-Pre-built-packages-for-Centos-6.5

文章转自:阿布博客