在CentOS 6.5上安装 HHVM 3.2

1 篇文章 0 订阅
安装HHVM开始:
  
  
# yum install http://ftp.riken.jp/Linux/fedora/epel/6/i386/epel-release-6-8.noarch.rpm
# cd /etc/yum.repos.d
# wget http://www.hop5.in/yum/el6/hop5.repo
# yum remove libevent-devel libevent-doc
# yum install hhvm 
查看HHVM是否安装成功:
  
  
# hhvm --version
显示如下信息,则说明安装成功:

   
   
HipHop VM 3.2.0 (rel)
Compiler: tags/HHVM-3.2.0-0-g01228273b8cf709aacbd3df1c51b1e690ecebac8
Repo schema: c52ba40f4a246d35a88f1dfc1daf959851ced8aa

使用 Nginx + HHVM:

  
  
location ~ \.php$ {
       fastcgi_pass 127.0.0.1:9001;
       # fastcgi_pass unix:/var/run/hhvm/sock;
       fastcgi_index index.php;
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       include fastcgi_params;
}
配置service管理hhvm:
  
  
cd /etc/init.d/
rm -rf hhvm     #官方默认脚本是以www运行,建议用我修改后的
wget http://blog.linuxeye.com/wp-content/uploads/2014/05/hhvm --no-check-certificate
chmod +x hhvm
chkconfig hhvm on
/ etc / init . d /hhvm脚本内容如下:

 
 
#!/bin/bash
 
# config: /etc/hhvm/server.ini
# config: /etc/sysconfig/hhvm
# pidfile: /var/run/hhvm/hhvm.pid
 
# Description: Starts The HHVM FastCGI Daemon
 
# Standard LSB functions
#. /lib/lsb/init-functions
 
# Source function library.
. /etc/init.d/functions
# Check that networking is up.
. /etc/sysconfig/network
if [ "$NETWORKING" = "no" ]
then
        exit 0
fi
RETVAL=0
HHVM=/usr/bin/hhvm
prog="Hhvm"
pidfile=${PIDFILE-/var/run/hhvm/pid}
lockfile=${LOCKFILE-/var/run/hhvm/lock}
CONFIG_HDF_FILE="/etc/hhvm/config.hdf"
CONFIG_FILE="/etc/hhvm/server.ini"
SYSTEM_CONFIG_FILE="/etc/hhvm/php.ini"
MODE=daemon
USER=www
ARGS="--config ${CONFIG_FILE} --config ${SYSTEM_CONFIG_FILE} --config ${CONFIG_HDF_FILE}"
 
if [ -f /etc/sysconfig/hhvm ]; then
        . /etc/sysconfig/hhvm
fi
 
start() {
        echo -n $"Starting $prog: "
        dir=$(dirname ${pidfile})
        [ -d $dir ] || mkdir $dir
        ${HHVM} --mode ${MODE} --user ${USER} ${ARGS}
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && touch ${lockfile}
}
 
stop() {
        echo -n $"Stopping $prog: "
        killproc -p ${pidfile} ${HHVM}
        RETVAL=$?
        echo
        if [ $RETVAL -eq 0 ] ; then
                rm -f ${lockfile} ${pidfile}
        fi
}
 
restart () {
        stop
        start
}
 
# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  status)
        status -p ${pidfile} ${HHVM}
        RETVAL=$?
        ;;
  restart)
        restart
        ;;
  *)
        echo $"Usage: $prog {start|stop|status|restart}"
        RETVAL=2
 
esac
exit $RETVAL
 配置HHVM,修改 /etc/hhvm/config.hdf:
  
  
ResourceLimit {
  CoreFileSize = 0          # in bytes
  MaxSocket = 10000         # must be not 0, otherwise HHVM will not start
  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
 
}
Log {
  Level = Info
  AlwaysLogUnhandledExceptions = true
  RuntimeErrorReportingLevel = 8191
  UseLogFile = true
  UseSyslog = false
  File = /var/log/hhvm/error.log
  Access {
    * {
      File = /var/log/hhvm/access.log
      Format = %h %l %u % t \"%r\" %>s %b
    }
  }
}
 
MySQL {
  ReadOnly = false
  ConnectTimeout = 1000      # in ms
  ReadTimeout = 1000         # in ms
  SlowQueryThreshold = 1000  # in ms, log slow queries as errors
  KillOnTimeout = false
}
 
Mail {
  SendmailPath = /usr/sbin/sendmail -t -i
  ForceExtraParameters =
}
修改属主:
   
   
chown -R www:www /var/run/hhvm
chown -R www:www /var/log/hhvm
chmod -R 755 /var/run/hhvm
chmod -R 755 /var/log/hhvm
修改 /etc/hhvm/server.ini,(默认配置为server.hdf,为旧版本使用):
   
   
; php options
pid = /var/run/hhvm/pid
 
; hhvm specific
; hhvm.server.port = 9001
hhvm.server.file_socket = /var/run/hhvm/sock
hhvm.server.type = fastcgi
hhvm.server.default_document = index.php
hhvm.log.level = Info
hhvm.log.always_log_unhandled_exceptions = true
hhvm.log.runtime_error_reporting_level = 8191
hhvm.log.use_log_file = true
hhvm.log.file = /var/log/hhvm/error.log ; 请注意此处目录属主要和HHVM相同,并且目录可写
hhvm.repo.central.path = /var/run/hhvm/hhvm.hhbc
hhvm.mysql.typed_results = false
修改 /etc/hhvm/php.ini:
     
     
hhvm.mysql.socket = /tmp/mysql.sock ;指定mysql.sock路径(hhvm默认路径sock路径是/var/lib/mysql/mysql.sock
expose_php = 0 ;关闭头信息X-Powered-By (和hhvm.server.expose_hphp = false作用一样)
memory_limit = 400M
post_max_size = 50M 
    最后,启动 HHVM服务:
  
  
# service hhvm start
另外,添加Nginx虚拟机脚本:
   
   
wget http://blog.linuxeye.com/wp-content/uploads/2014/05/vhost_hhvm.sh --no-check-certificate
注意事项:
hhvm进程经常会自杀,所以必须要有一个守护进程。这里使用supervisor
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值