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

配置LNMP

懒人建议使用一键安装包,推荐两个:
Linuxeye的LNMP一键安装脚本 ;
军哥的LNMP一键安装包

配置hhvm环境

安装所需的epel和hhvm yum源

# rpm -Uvh http://mirrors.ustc.edu.cn/fedora/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

添加gleez yum源

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

如果是国内主机,由于gleez.com被墙,这里提供另外一个下载地址

# sudo rpm -Uvh http://blog.linuxeye.com/wp-content/uploads/2014/05/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

从remi安装hhvm依赖包

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

安装hhvm

# yum --nogpgcheck install hhvm

将hhvm加入开机启动

# chkconfig hhvm on

配置hhvm

# vi /etc/hhvm/server.ini

;hhvm.server.port = 9001 (注释或者删除此行)
hhvm.server.file_socket = /var/run/hhvm/sock (添加此行,hhvm运行模式由端口改为socket方式)

# vi /etc/hhvm/php.ini

在php options下面追加为以下内容,以添加内存限制,关闭expose.

hhvm.mysql.socket =/tmp/mysql.sock
memory_limit = 512M
expose_php = 0

配置nginx:

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

location ~ .*\.(php|php5)?$  {
fastcgi_keep_conn on;
fastcgi_pass unix:/var/run/hhvm/sock;
fastcgi_index index.php;
fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
include    fastcgi_params;
}

修改hhvm启动用户:

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

# vi /etc/init.d/hhvm

USER=nginx
修改为:
USER=www

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

# chown -R www.www /var/run/hhvm
# chown -R www.www /var/log/hhvm
# userdel -r nginx #删除hhvm安装时创建的nginx用户.

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

# service nginx restart

# service hhvm start

参考链接:

https://github.com/facebook/hhvm/wiki/HHVM-Pre-built-packages-for-Centos-6.5