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