前提:只支持64位系统

升级GCC:

https://github.com/jackywei/HOW-TO-BUILD-HHVM-WiKi/wiki/Build-&-Install-GCC4.6.3-in-CentOS-%285.2-&-6.3%29

安装CMake:

https://github.com/jackywei/HOW-TO-BUILD-HHVM-WiKi/wiki/Build-&-Install-CMake-2.8.10.2-in-CentOS6.3

升级boost:

https://github.com/jackywei/HOW-TO-BUILD-HHVM-WiKi/wiki/Build-&-install-Boost-1.50-in-CentOS-%28CentOS5.2-&-6.3-are-both-verified%29

备注:当boost上面方法不通,请用下面这个

./bootstrap.sh

./b2 install

之后参考:

https://github.com/facebook/hiphop-php/wiki/Building-and-installing-HHVM-on-CentOS-6.3

Building HipHop make 之后还需要

make install

完成之后运行hhvm 为执行单个PHP文件

可以启动WEB服务

配置参考:

    #日志配置
Log {
#日志等级
Level = None (default) | Error | Warning | Info | Verbose
# 使用@抑制错误是否后台日志启用错误记录
NoSilencer = false
#容许用户自己处理错误
AlwaysLogUnhandledExceptions = true
#PHP的错误等级
RuntimeErrorReportingLevel = 8191
#下面3个指定错误的格式及消息头(C++错误16进制,是否转换等)
Header = false
InjectedStackTrace = true
NativeStackTrace = true
#最大日志数量
MaxMessagesPerRequest = -1 #是否启用日志
UseLogFile = true
#日志文件
File = /usr/local/hiphop/log/server.log # 访问日志格式
AccessLogDefaultFormat = %h %l %u %t \"%r\" %>s %b
#日志格式
#Access {
# * {
# File = filename
# Format = some Apache access log format string
# }
#} # 管理后台日志
#AdminLog {
# File = filename
# Format = %h %t %s %U
#} # 是否启用 hphp_log() 来得到PHP代码的信息
ApplicationLog = true # 将错误分组,可以保存至数据库
# Log aggregator logs one line per several errors, grouped by error's
# stacktraces. It can also save errors to a specified database.
#Aggregator = false
#Aggregator {
# File = filename
# Database = [username[:password]@]server[:port][/database]
# SleepSeconds = 10 # polling cycle for aggregation
#} }
#错误处理
ErrorHandling {
CallUserHandlerOnFatals = true
NoInfiniteLoopDetection = false
NoInfiniteRecursionDetection = false
MaxStackDepth = 1000
ThrowBadTypeExceptions = false
ThrowNotices = false
NoticeFrequency = 1 # 1 out of these many notices to log
WarningFrequency = 1 # 1 out of these many warnings to log
AssertActive = false
AssertWarning = false
}
#资源限制
ResourceLimit {
CoreFileSize = 0 # in bytes
MaxSocket = 0
SocketDefaultTimeout = 5 # in seconds
MaxRSS = 0
MaxRSSPollingCycle = 0 # in seconds, how often to check max memory
DropCacheCycle = 0 # in seconds, how often to drop disk cache
} PidFile = /usr/local/hiphop/etc/server.pid # 进程PID文件 # $_SERVER['name'] = value
# 服务器变量
ServerVariables {
name = value
}
# 环境变量
# $_ENV['name'] = value
EnvVariables {
name = value
} # 服务器配置
Server {
#域名IP端口
Host = www.domain.com
IP = 0.0.0.0
Port = 80
#处理的线程数量
ThreadCount = 50
#代码根目录
SourceRoot = /var/www/www.domain.com/public_html
#共享代码目录,如加zf等框架引入等
#IncludeSearchPaths {
# * = some path
# * = another path
#}
#请求超时
RequestTimeoutSeconds = -1
#请求处理内存限制
RequestMemoryMaxBytes = -1 # 代码预加载,关闭
# Recommend to turn this on to avoid memory leaks and to enable warmup
# document features.
EnableMemoryManager = false # 显示内存问题,均在调试时候开启
# Only for debugging memory problems. When turned on, server will report
# SmartAllocator's usage for each thread to stdout.
CheckMemory = false # 多子域名
# If ServerName is not specified for a virtual host, use prefix + this
# suffix to compose one
#DefaultServerNameSuffix = default_domain.com
# Forcing $_SERVER['SERVER_NAME'] to come from request header
#ForceServerNameToHeader = false # 启动选项
# startup options
# TakeoverFilename = filename # for port takeover between server instances
# 默认文件
DefaultDocument = index.php
# 启动文件
#StartupDocument = filename
#WarmupDocument = filename
# 程序启动调用一个函数
#RequestInitFunction = function_name
#ThreadDocuments {
# * = somedoc.php
# * = another.php
#}
# 文件未找到处理文件
ErrorDocument404 = 404.php
#致命错误消息
FatalErrorMessage = some string #关闭选项
# shutdown options
GracefulShutdownWait = 0 # in seconds
HarshShutdown = true
EvilShutdown = true
DanglingWait = 0
}
AdminServer {
Port = 8088
ThreadCount = 1
Password = 123456
}
#静态内容
StaticFile {
Extensions {
bmp = image/bmp
}
Generators {
* = static_resource.php
}
}

出错:

unable to find/load systemlib.php

rm -rf /usr/local/bin/hhvm
#/usr/local/hiphop 为你的源码编译目录
ln -s /usr/local/hiphop/hphp/hhvm/hhvm /usr/local/bin/hhvm

如果接着报库文件找不到,请建立链接到/usr/local/lib目录即可

hhvm 中,部分php 函数不可用 ,如eval phpinfo等

配合nginx 使用

hiphop 配置

RewriteRules {
       * {
          pattern = ^.*$
          to = index.php
          qsa = yes
        }

}

nginx 配置

root /var/www/;location / {
        autoindex on;
        index  index.html index.htm index.php;
        try_files $uri $uri/ /index.php;
    }
location ~ \.php$ {
        proxy_pass http://127.0.0.1:9000$request_uri;
}

hiphop-php 搭建 (CentOS)的更多相关文章

  1. 虚拟机搭建CentOS主机win10通过xshell连接

    目标:主机是win10系统,虚拟机搭建CentOS,在主机上通过XShell连接操作. 第一步 主机上安装虚拟机 第二步 下载CentOS 下载地址http://101.110.118.69/isor ...

  2. 环境搭建-CentOS集群搭建

    环境搭建-CentOS集群搭建 写在前面 最近有许多小伙伴问我,大数据的hadoop分布式集群该如何去搭建.所以,想着,就写一篇博客,帮助到更多刚入门大数据的人.本博客会一步一步带你实现一个Hadoo ...

  3. Hadoop环境搭建(centos)

    Hadoop环境搭建(centos) 本平台密码83953588abc 配置Java环境 下载JDK(本实验从/cgsrc 文件中复制到指定目录) mkdir /usr/local/java cp / ...

  4. hadoop集群搭建--CentOS部署Hadoop服务

    在了解了Hadoop的相关知识后,接下来就是Hadoop环境的搭建,搭建Hadoop环境是正式学习大数据的开始,接下来就开始搭建环境!我们用到环境为:VMware 12+CentOS6.4 hadoo ...

  5. 使用tomcat搭建centos的yum源

    最近在折腾大数据,需要搭建一个yum源.一般的做法是在CentOS中安装httpd,然后将rpm包放入/var/www/html下面,再执行[createrepo .]即可. 不过虚拟机对传文件终归是 ...

  6. 搭建CentOS 7本地源仓库

    CentOS 7离线包及其依赖 推荐使用yumdownloader --resolve --destdir=path python-pip,--resolve下载所有依赖,--destdir指定软件包 ...

  7. 本地局域网yum源搭建-centos/redhat

    环境-centos6.7  [本机yum搭建提前备好,不做介绍] [root@nagios ~]# cat /etc/redhat-release CentOS release 6.7 (Final) ...

  8. DELPHI搭建centos开发环境

    DELPHI搭建centos7开发环境 关闭防火墙 搭建开发环境,还是直接关闭LINUX防火墙,省事. 否则,使用到的网络端口号,都要在防火墙开放,麻烦. systemctl disable fire ...

  9. 局域网内搭建CentOS PHP 环境

    首先我们找到一台已经搭建好的CentOS,IP地址我就不说啦. 我们需要用到的几个工具,一个是SecureCRT用于远程连接,还有一个用于文件上传和下载就是filezilla 准备好了之后,我们就可以 ...

  10. Java开发环境搭建——CentOS配置

    普通用户添加到sudoers u切换到root visudo进入编辑,找到root  ALL=(ALL)    ALL,在后面加上myusername ALL=(ALL)  ALL 配置网络sudo ...

随机推荐

  1. C#无需IIS构建XmlRpc服务器

    准备 我们使用CookComputing.XmlRpcServerV2 3.0.0来构建XmlRpc服务器. 新建一个控制台项目,在项目中添加对CookComputing.XmlRpcServerV2 ...

  2. SQL 根据指定字符拆分字符串

    CREATE FUNCTION [dbo].[F_StringSplit] ( @STR NVARCHAR(MAX)='', )='') )) AS BEGIN DECLARE @NUM INT, @ ...

  3. CALayer总结(二)

    1.CATransaction 事务: UIView有两个方法,+beginAnimations:context:和+commitAnimations,和CATransaction的+begin 和+ ...

  4. iOS : 静态库(.framework)合并

    如果写了一个Framework,根据Build时选择的机器类型,会分为模拟器Framework和真机Framework,两者是不能混用的. 此时可以通过配置一个Run Script,在Script中使 ...

  5. 20150203一些移动端H5小bug解决

    都是一些我也不知道为什么会有的bug. 1. 在三星note2,小米2,页面加载后,页面有黑块. 那么提高被盖住的部分z-index. 2. iphone5 ,ios7.0.4,上文字显示不出 那么就 ...

  6. jQuery里面的普通绑定事件和on委托事件

    以click事件为例: 普通绑定事件:$('.btn1').click(function(){}绑定 on绑定事件:$(document).on('click','.btn2',function(){ ...

  7. html 实时监控发送数据

    我们都知道ajax可以做异步提交,可以从一个文件里得到返回的数据,如此便能够实时的得到数据,实时刷新页面,如下代码 setInterval(function(){ $.ajax({ url:'demo ...

  8. $.ajax() ,$.post(),$.get() 的用法

    在编写代码的过程中,我们会用到一些的需要局部刷新,而且需要数据传递的情况,我们通常是有$.ajax() ,$.post(),$.get() 这三种方式. $.ajax()方法通过 HTTP 请求加载远 ...

  9. 学习笔记day5:inline inline-block block区别

    1. block元素可以包含block元素和inline元素:但inline元素只能包含inline元素.要注意的是这个是个大概的说法,每个特定的元素能包含的元素也是特定的,所以具体到个别元素上,这条 ...

  10. heaters

    https://leetcode.com/problems/heaters/ 开始的时候,下面的代码对于两边数字完全一样的情况,测试不通过.原因是heater会有重复情况,这时候对于飘红部分就不会往前 ...