zoukankan      html  css  js  c++  java
  • hiphop-php 搭建 (CentOS)

    前提:只支持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
        }
      }
      
    View Code

    出错:

    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;
    }

  • 相关阅读:
    做个坚强的逆行者,献给终日奋斗的你我——《当幸福来敲门》
    学习jvm,关于MAT an internal error occurred during:"Parsing heap dump" from问题
    很详尽KMP算法(厉害)
    插入排序[数据结构](复习)
    JVM监控工具介绍jstack, jconsole, jinfo, jmap, jdb, jstat(复制)
    Hadoop集群配置搭建
    Tomcat IO阻塞异常
    centos通过yum安装jdk
    关于PHPExcel上传Excel单元格富文本和时间类型读取数据问题
    负载均衡集群总结(Haproxy)
  • 原文地址:https://www.cnblogs.com/liushannet/p/3229413.html
Copyright © 2011-2022 走看看