CentOS 7系统中hhvm Nginx环境安装配置

CentOS 7(hhvm只支持64位)下hhvm Nginx环境搭建,,到目前为止CentOS 7下还没有hhvm rpm安装包,因此采用源码编译。在安装hhvm前强力建议先利用《lnmp一键安装包》安装完整的lnmp(包括Nginx、PHP、MySQL),通过这种方式我们可以在同一台服务器对每个虚拟主机进行配置,如在同一台服务器上有www.111cn.net跑在PHP上、另一个网站blog.linuxeye.com可以选择跑在hhvm,并可以自由切换用php还是hhvm,只需要简单修改虚拟主机配置文件。

安装步骤:
1. 安装完整的LNMP,参考《lnmp一键安装包》

2. 安装hhvm

rpm -Uvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm
yum -y install git mariadb-devel curl-devel expat-devel libpng-devel psmisc binutils-devel \
boost-devel libmcrypt-devel libmemcached-devel jemalloc-devel libevent-devel sqlite-devel \
libxslt-devel libicu-devel tbb-devel libzip-devel bzip2-devel openldap-devel readline-devel \
elfutils-libelf-devel libdwarf-devel libcap-devel libyaml-devel libedit-devel lz4-devel \
libvpx-devel unixODBC-devel libgmp-devel libpng-devel ImageMagick-devel curl-devel expat-devel
cd lnmp/src
wget https://google-glog.googlecode.com/files/glog-0.3.3.tar.gz
tar xvzf glog-0.3.3.tar.gz
cd glog-0.3.3
./configure
make && make install
cd ..
wget http://www.geocities.jp/kosako3/oniguruma/archive/onig-5.9.5.tar.gz
tar xvzf onig-5.9.5.tar.gz
cd onig-5.9.5
./configure
make && make install
cd ..
git clone https://github.com/facebook/hhvm -b master  hhvm  --recursive
cd hhvm
./configure
## use newer ImageMagick from remi
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
## remove the obsolete ImageMagick version
yum -y remove ImageMagick
yum -y install ImageMagick-last* --enablerepo=remi
cmake -D LIBMAGICKWAND_INCLUDE_DIRS="/usr/include/ImageMagick-6" \
-D LIBODBC_INCLUDE_DIRS="/usr/lib64" -D LIBODBC_LIBRARIES="/usr/lib64" \
-D LIBVPX_INCLUDE_DIRS="/usr/lib64" -D LIBXSLT_INCLUDE_DIR="/usr/lib64" \
-D LIBXSLT_LIBRARIES="/usr/lib64/libxslt.so"  -D LIBMAGICKWAND_LIBRARIES="/usr/lib64/libMagickWand-6.Q16.so" \
-D LIBMAGICKCORE_LIBRARIES="/usr/lib64/libMagickCore-6.Q16.so" .
make -j2 #利用cpu多核编译加快速度,2代表核数,单核不用加-j2,查看cpu核数:cat /proc/cpuinfo | grep processor | wc -l
注:编译过程非常消耗系统资源,有可能会报内存不够导致编译中断,如下错误:

[ 30%] Building CXX object third-party/thrift/CMakeFiles/hphp_thrift.dir/thrift/lib/cpp/async/TEventTask.cpp.o
c++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate
编译通过后,执行如下命令安装:

make install
安装成功后,打印出hhvm版本:

hhvm --version
HipHop VM 3.4.0-dev (rel)
Compiler: heads/master-0-g0b46339509ebd9612623d52c296fdcc8e6f93dff
Repo schema: d8dcfe0a4feda06dea7087bd82b55ef19217b170
Extension API: 20140829
3. 配置hhvm
创建并修改hhvm目录权限

mkdir /etc/hhvm /var/run/hhvm /var/log/hhvm
chown -R www.www /var/run/hhvm /var/log/hhvm
修改/usr/local/nginx/conf/nginx.conf使其中一段成为如下:

        location ~ .*\.(php|php5)?$  {
                fastcgi_pass   unix:/var/run/hhvm/sock;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include        fastcgi_params;
                }
service nginx reload
添加hhvm虚拟主机的方法: 请执行vhost_hhvm.sh

cd lnmp
wget http://blog.linuxeye.com/wp-content/uploads/2014/05/vhost_hhvm.sh
chmod +x vhost_hhvm.sh
创建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 =
}
配置hhvm修改/etc/hhvm/server.ini,保持如下:

; 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.use_log_file = true
hhvm.log.file = /var/log/hhvm/error.log
hhvm.repo.central.path = /var/run/hhvm/hhvm.hhbc
修改/etc/hhvm/php.ini指定mysql.sock路径(hhvm默认路径sock路径是/var/lib/mysql/mysql.sock)

hhvm.mysql.socket = /tmp/mysql.sock
expose_php = 0 ;关闭头信息X-Powered-By (和hhvm.server.expose_hphp = false作用一样)
memory_limit = 400M
post_max_size = 50M
添加开机自启动脚本
保证文件/etc/systemd/system/hhvm.service内容如下:

[Unit]
Description=HHVM HipHop Virtual Machine (FCGI)

[Service]
ExecStart=/usr/local/bin/hhvm --mode daemon --user www --config /etc/hhvm/server.ini \
--config /etc/hhvm/php.ini --config /etc/hhvm/config.hdf

[Install]
WantedBy=multi-user.target
管理hhvm服务

systemctl enable hhvm #开机自启动
systemctl start hhvm #启动hhvm
systemctl status hhvm #查看hhvm状态

时间: 2024-09-13 03:10:43

CentOS 7系统中hhvm Nginx环境安装配置的相关文章

centos系统中kvm qemu 虚拟机安装配置教程

二,安装配置KVM  代码如下 复制代码 # yum -y install kvm python-virtinst libvirt bridge-utils \  virt-manager qemu-kvm-tools virt-viewer virt-v2v qemu-kvm tunctl    [root@localhost ~]#vim /etc/sysconfig/selinux //关闭selinux    SELINUX=disabled    [root@localhost ~]#

CentOS 7系统下的LEMP环境搭建配置详解

最近由于项目需求,将服务器从CentOS6升级到CentOS7,对应的PHP版本也升级到PHP5.6.我们熟悉的有LEMP环境一键安装包,但是本文我们将单独安装各个组件模块,并搭建一个完整的PHP运行平台. 我们常说的LNMP环境是指Linux/nginx/MySQL/PHP组合,而LEMP是什么呢?其实Nginx的发音是Engine-X = E,LEMP包是由Linux.nginx.MariaDB/MySQL和PHP组成的,那么看来LEMP和LNMP是一样的,而现在业内习惯性的称作LEMP.M

CentOS系统中Redis数据库的安装配置指南_Redis

1.检查安装依赖程序 yum install gcc-c++ yum install -y tcl yum install wget 2.获取安装文件 wget http://download.redis.io/releases/redis-2.8.13.tar.gz 3.解压文件 tar -xzvf redis-2.8.19.tar.gz mv redis-2.8.19 /usr/local/redis 4.进入目录 cd /usr/local/redis 5.编译安装 make make i

Ubuntu系统部署HHVM网站环境(LEMH)

  HHVM(HipHop Virtual Machine),由大名鼎鼎的FACEBOOK公司开发的用来执行PHP脚本的虚拟机环境,可以大大的提高PHP执行环境性能.相比较我们传统的网站环境来看,同等的硬件配置可以承受更大的流量访问用户压力,只不过我们国内还没有流行起来,提供这类安装环境的教程比较少,也或者我们暂时还没有重视.   之前一段时间有网友提到是否可以提供这些方面的教程,毕竟老左之前也没有安装过和使用过,于是只能现学现用,参考国内.国外的已有较少的教程.这篇文章介绍在Ubuntu 14

CentOS Linux系统搭建Android开发环境详细介绍_Linux

CentOS Linux系统搭建Android开发环境详细介绍        很多人都是在Windows下进行Android开发,但是对于Linux,Android开发环境方面的资料比较少,今天在网上找到了一位网友分享的在CentOS Linux系统中搭建Android开发环境的过程.下面就是其介绍的配置的详细步骤原文:        由于我最近每天使用的是CentOS 5.5,所以选择CentOS5.5作为我的开发环境.        主要包括以下步骤: 1.JDK安装 2.Eclipse安装

Nginx简要安装配置方法图文教程_nginx

直入主题: 1.nginx安装所需文件 1).nginx-1.2.8.tar.gz 2).openssl-1.0.1g.tar.gz 3).pcre-8.31.tar.gz 4).zlib-1.2.7.tar.gz 上述安装包的下载地址正常可用,由于本人用的是上述版本的安装包,所以下述安装均以此作为基础. 2.Linux机器的配置环境 2.1.java环境 $java -version java version "1.8.0_45" Java(TM) SE Runtime Enviro

Windows7下PHP开发环境安装配置图文方法_php实例

      操作系统:Windows 7 Ultimate       WEB服务器:IIS 6.1(内部版本7600).       数据库:MySql5.0.67       PHP版本:5.2.13       我还担心Win7下可能会不兼容,结果是一点问题都没有.    一.安装MySql数据库       MySql数据库在这里下载:http://www.mysql.com/downloads/ 客户端工具Navicat(导航猫)在这里下载:http://www.navicat.com

jira 子任务 流程配置-jira系统中能单独给子任务配置流程吗?若是能怎么配置?

问题描述 jira系统中能单独给子任务配置流程吗?若是能怎么配置? jira系统中能单独给子任务配置流程吗?若是能,怎么将标准工作流程和子任务的流程分开配置? 解决方案 Ubuntu 下如何配置Jira 解决方案二: 这个i流程一般是靠项目指定的一些规则来控制,我们的子任务一般都是通过owner来传递,每个人完成了自己在这个子任务中的工作就转交给下一个owner 直到task结束. 解决方案三: 在项目的工作流程配置方案中添加配置完成的工作流程,并分配相应的问题类型即可.

如何在linux系统中搭建PHP环境

构建PHP环境 PHP几乎支持所有流行的数据库,几乎所有系统平台,混合了c java perl等语法及自创语法,是服务器端的HTML嵌入式脚本 1.安装PHP软件包 1). 解压并释放下载的PHP源码包到/usr/src/目录中,并切换进入展开的源码文件夹 [root@www ~]# tar zxvf php-5.2.6.tar.gz -C /usr/src [root@www ~]# cd /usr/src/php-5.2.6/ 2). 预先配置编译时的参数 [root@www php-5.2