CentOS6.2 试用PHP HHVM

关于HHVM的介绍

http://en.wikipedia.org/wiki/HipHop_Virtual_Machine

http://www.hhvm.com/

https://github.com/facebook/hhvm

 

在CentOS6.2上安装

目前,对ubuntu、Debian等Linux支持到位(https://github.com/facebook/hhvm/wiki/Prebuilt%20Packages%20for%20HHVM)。

You can install a prebuilt package or compile from source

事实上,rpm包安装就已经很麻烦了,源码编译更是伤不起(可以参考:http://www.xuebuyuan.com/642409.html),所以还是以yum来配置较好。

 

1.添加合适的源

  cd /etc/yum.repos.d/
  wget http://www.hop5.in/yum/el6/hop5.repo
  yum makecache

注意,不要和你当前的repo源冲突,尤其是一些共有的包,所以适时只选其一。 

2.预先安装部分依赖

先不用急着安装hhvm,你会发现一堆依赖。所以我们需要yum安装或rpm手动安装如下的包。

升级gcc到4.6

yum install gcc.x86_64 —setopt=protected_multilib=false

安装一些依赖

yum -y 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

一些版本的包,centos对应源中是没有的,特别是ImageMagick相关的东东。

所以单独还安装了以下包,可能会有一些冲突提示,我们就直接rpm -ivh --replacefiles *.rpm了

 

fftw-3.2.1-3.1.el6.x86_64.rpm
libjpeg-turbo-1.2.1-3.el6_5.x86_64.rpm
libmcrypt-2.5.8-9.el6.x86_64.rpm
zlib-1.2.3-29.el6.x86_64.rpm
libjpeg-6b-38.x86_64.rpm
liblcms2-2.4-1.el6.x86_64.rpm
xz-5.2.1

 

至此,可以执行终极Boss命令了:

yum install hhvm

结果如下:

技术分享

看看相关命令行:

技术分享

2. Run HHVM

写一个php脚本,我们将在多种模式下运行

<?php
echo "hello world\n";
phpinfo();

1. 命令行run下

技术分享

2. Server模式

hhvm安装默认的配置在/etc/hhvm/下,默认是server.hdf,还有php.ini。

这里我们下修改下server.hdf,如下:

PidFile = /var/run/hhvm/pid

Server {
  Port = 9090
  SourceRoot = /data/lebyzhao/test/
  DefaultDocument = test.php
}

Log {
  Level = Warning
  AlwaysLogUnhandledExceptions = true
  RuntimeErrorReportingLevel = 8191
  UseLogFile = true
  UseSyslog = false
  File = /data/log/hhvm/error.log
  Access {
    * {
      File = /data/log/hhvm/access.log
      Format = %h %l %u % t \"%r\" %>s %b
    }
  }
}

Repo {
  Central {
    Path = /var/log/hhvm/.hhvm.hhbc
  }
}

# 以下内容省略...

执行/etc/init.d/hhvm start,

注意:这是一个wrapper脚本,实际是执行了:hhvm --mode server --user root --config /etc/hhvm/server.hdf ,hdf里面的配置是可以在命令行直接写的:hhvm --mode server -vServer.Type=fastcgi -vServer.Port=9090

技术分享

OK,这便是类似于FastCGI的模式的准备工作就绪。

2. 从Nginx访问

这里我们修改现有的nginx fastcgi配置,让其转发到hhvm server上即可

        location ~ .*\.php$ {
                include fastcgi.conf;

                proxy_set_header X-Real-IP $remote_addr;
                proxy_pass http://localhost:9090;
        }

从Nginx上测试一把:

技术分享

基本上可以工作了,接下来重点研究PHP自身的相关配置了。(TODO)

 

 

 

---------

http://www.tuicool.com/articles/uaqYFr

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。