百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

HHvm建站环境搭建方法:Nginx、lnmp/lamp等安装部署

moboyou 2025-08-19 19:32 8 浏览

HHVM起源于Facebook公司,是一个开源的PHP虚拟机,使用JIT的编译方式以及其他技术,让PHP代码的执行性能大幅提升。HHVM提升PHP性能的途径,采用的方式就是替代Zend引擎来生成和执行PHP的中间字节码(HHVM生成自己格式的中间字节码)。

HHvm可以很大程度上提高PHP的性能,能够让同等配置的服务器承受更多的流量。HHvm建站环境搭建起来有点复杂,之前的HHVM安装使用教程和HHvm Apache 2.4 Nginx建站环境因为要依赖于编译,各种代码执行,会出现各种莫名的问题,安装HHvm成功率比较低。

本篇文章就来为大家介绍一下在CentOS上实现Nginx,Mariadb,hhvm及lnmp/lamp快速安装部署的方法,让你轻松用上HHvm建站环境,体验HHvm极致性能。

HHvm建站环境搭建方法:Nginx、Mariadb、hhvm及lnmp/lamp安装部署

一、 HHvm建站环境安装前准备

1、本文以 CentOS 6.5 X86_64 为例,同时请各位使用 64 位系统安装 hhvm,VPS 内存不大的孩子们(128M 这种)、还是放弃吧,HHVM 太折腾。

2、执行如下命令,添加源:

rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm yum -y install http://ftp.riken.jp/Linux/fedora/epel/6/i386/epel-release-6-8.noarch.rpm wget -O /etc/yum.repos.d/hop5.repo http://www.hop5.in/yum/el6/hop5.repo 

3、除了上面的三个,我们还需要添加一下 MariaDB 的源:vim
/etc/yum.repos.d/MariaDB.repo ,然后在文件中加入如下内容:

[mariadb] name = MariaDB baseurl = http://yum.mariadb.org/5.5/centos6-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1 

4、至此,要用的源都有了。顺便执行一下 yum clean all;yum makecache 。如果出现问题的话,将如下 hosts 加入到你的 VPS(这是我暂时反代的,如果反代失效了你就自己反代一个然后加 hosts):

192.243.116.132 www.hop5.in 192.243.116.132 nginx.org 

二、安装Nginx、Mariadb、hhvm

1、安装 nginx,执行命令:yum install nginx -y ,然后可以选择删除相应的文件目录:rm -rf /etc/nginx/conf.d/

2、安装 mariadb ,执行命令:yum install MariaDB-server MariaDB-client MariaDB-devel -y

3、在安装完毕后启动 mysql 并执行一下配置向导,命令如下:

service mysql start mysql_secure_installation 

4、第一个要求输入密码的直接按回车(因为默认安装密码为空),然后跟着向导走。如图(点击放大):

3、安装 hhvm 所需要的依赖环境:

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

4、安装完上面的杂碎,然后就正式开始安装 hhvm,命令:yum install hhvm -y

5、如果出现“hhvm: error while loading shared libraries: liblcms2.so.2: cannot open shared object file: No such file or directory”错误,执行如下命令:

yum -y install http://pkgrepo.linuxtech.net/el6/release/x86_64/liblcms2-2.4-1.el6.x86_64.rpm

6、安装成功的话,下载 linuxeye 的启动文件替换原来的:

wget -O /etc/init.d/hhvm http://cdn.zntec.cn/store/tools/vhost_hhvm/hhvm chmod +x /etc/init.d/hhvm 

4、安装 memcached(可选,不过我建议如果是 WordPress 的话还是安装吧):yum install memcached -y

注:相关网站建设技巧阅读请移步到建站教程频道。

三、配置并运行HHvm建站环境

1、首先,设为开机启动是必须的:

chkconfig nginx on chkconfig mysql on chkconfig hhvm on chkconfig memcached on 

2、给 hhvm 单独新建个配置,方便日后使用:vi /etc/nginx/hhvm.conf ,然后在里面加入如下内容:

location ~ [^/]\.php(/|$) { fastcgi_keep_conn on; fastcgi_pass unix:/var/run/hhvm/sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } 

3、然后删掉原先的配置文件自己新建 hhvm 配置:

rm -rf /etc/hhvm/* vi /etc/hhvm/server.ini 

4、在其中加入如下内容:

; 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

5、然后编辑:vi /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 = }

6、新建站点配置: vi
/etc/nginx/conf.d/xxxxx.conf ,加入如下配置:

server { listen 80; server_name xxxxx; index index.html index.htm index.php; root /home/wwwroot/xxxxx; #include wordpress.conf; include hhvm.conf; location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location ~ .*\.(js|css)?$ { expires 12h; } access_log /home/wwwlogs/xxxxx.log; }

7、然后记得给自己生成个日志文件和相关的目录:

mkdir /home/wwwroot mkdir /home/wwwlogs touch /home/wwwlogs/xxxxx.log

8、请把如上内容中的 “xxxxx” 改为你的域名,然后把网站文件放在 /home/wwwroot/xxxxx 下即可搭建网站(lnmp 用习惯了,目录习惯改不掉了)

9、注意:如果你的站点是 wordpress,就把上面配置代码中的 include wordpress.conf 前的“#”号去掉,然后编辑:vi /etc/nginx/wordpress.conf ,加入如下内容:

location / { try_files $uri $uri/ /index.php?$args; } # Add trailing slash to */wp-admin requests. rewrite /wp-admin$ $scheme://$host$uri/ permanent;

10、重启一下 nginx 看看可否启动: service nginx restart 。如果启动的时候说端口被占用了,就看看 netstat -anp | grep hhvm ,估计你得到的结果就 hhvm 占用了 80 端口。 执行命令: pkill hhvm

11、然后再重新启动 nginx 就会显示 OK 了。最后晒个探针图(点击放大):

12、 这样配置的阿里云,使用 hhvm 用探针做性能测试的话,如下图(点击放大):

13、利用上文介绍的搭建hhvm 的方法,管理数据库之类的可以使用 phpmyadmin ,在线管理文件可以使用 kodexplorer ,如果是再次新建站点的时候就直接执行:

cp /etc/nginx/conf.d/xxxxx.conf /etc/nginx/conf.d/xxx.conf

四、LNMP+HHVM建站环境配置

1、在目前的国人网络里面,可以说、建站用的最多的就是 CentOS 6 和军哥的 lnmp 一键包了。这里再介绍一如何在 CentOS 6 使用 lnmp 一键包中加入 HHVM。首先在 CentOS 6 下安装好 lnmp 一键包。

2、使用linuxeye的一键包安装并稍微配置 hhvm。

wget http://mirrors.linuxeye.com/lnmp.tar.gz tar zvxf lnmp.tar.gz cd lnmp ./install.sh

3、按照下图操作,我们只安装 hhvm 就够了(点击放大)。

4、然后修改部分文件,先修改 /etc/hhvm/server.ini,保持为如下内容。

5、然后修改 /etc/hhvm/config.hdf,保持为如下内容。

6、下载 linuxeye 现成的启动文件并设为开机启动。

wget -O /etc/init.d/hhvm http://cdn.zntec.cn/store/tools/vhost_hhvm/hhvm chmod +x /etc/init.d/hhvm chkconfig hhvm on

7、至此为止,HHVM 算是安装也配置好了。下载zntec.cn博主基于 lnmp 中 vhost 脚本修改后的 hhvm 虚拟主机脚本:

wget -O /root/vhost_hhvm.sh http://cdn.zntec.cn/store/tools/vhost_hhvm/vhost_hhvm.sh chmod +x ~/vhost_hhvm.sh

8、然后创建 HHVM 主机的时候就使用 ~/vhost_hhvm.sh 命令。

五、lnmp、lamp、lnmpa+HHvm一键安装

1、上面在安装LNMP+HHvm时,我们已经用到了linuxeye.com开发的lnmp、lamp、lnmpa+HHvm一键安装包。官方网站:

1、项目首页:
https://blog.linuxeye.com/31.html

2、Github地址:
https://github.com/lj2007331/lnmp

2、lnmp/lamp/lnmpa(Linux、Nginx/Tengine、MySQL/MariaDB/Percona、PHP),适用于CentOS 5~7(包括redhat)、Debian 6~8、Ubuntu 12.04~15.04的32位和64位。

3、lnmp、lamp、lnmpa+HHvm一键安装包最大的特点就可以让你一键安装Nginx/Tengine、Apache、PHP、Redis、memcached,同时提供ZendOPcache、xcache、apcu、eAccelerator及php加解密工具ionCube、ZendGuardLoader一键安装。

4、不会安装的可以直接使用lnmp、lamp、lnmpa+HHvm一键安装包,支持CentOS 6、7下HHVM安装。执行命令:

yum -y install wget screen #for CentOS/Redhat #apt-get -y install wget screen # for Debian/Ubuntu wget http://aliyun-oss.linuxeye.com/lnmp-full.tar.gz #阿里云内网下载 wget http://mirrors.linuxeye.com/lnmp-full.tar.gz # 包含源码,国内外均可下载 wget http://mirrors.linuxeye.com/lnmp.tar.gz # 不包含源码,建议仅国外主机下载 tar xzf lnmp-full.tar.gz #tar xzf lnmp.tar.gz cd lnmp # 如果需要修改目录(安装、数据存储、Nginx日志),请修改options.conf文件 screen -S lnmp # 如果网路出现中断,可以执行命令`screen -r lnmp`重新连接安装窗口 ./install.sh # 请勿sh install.sh或者bash install.sh这样执行

5、 根据你的需要,你可以选择lnmp、lamp、lnmpa任意搭配,Apache、PHP、MysqL等都可以选择不同的版本。(点击放大)

6、同时你也可以选择相应的组件,例如ZendOPcache、xcache、apcu、eAccelerator等等。(点击放大)

7、添加虚拟主机时请直接使用以下命令:

cd ~/lnmp # 必须进入lnmp目录下执行 ./vhost.sh

8、你可以设置网站的目录、绑定域名、防盗链、静态规则、访问日志等。如果你安装了HHvm,你创建虚拟主机时会让你选择是使用PHP还是HHvm。(点击放大)

六、 HHVM 建站环境小结

1、在使用HHVM过程中我们经常会遇到服务器502错误。 如果你使用的是军哥的LNMP一键安装包,在lnmp 中已经有现成的解决方案可供参考。

yum install crontabs -y cp lnmp1.1-full/check502.sh ~/ vim ~/check502.sh

2、把脚本中相应的内容修改为下图方框所示:

3、修改完之后执行如下命令导入到定时任务:

echo "* * * * * /root/check502.sh" /var/spool/cron/root

4、HHvm建站环境对于提升PHP的性能是非常有帮助的,但是当前有不少的PHP程序对于HHvm还不是完美兼容,已知Wordpress在HHvm中运行没有任何问题,国内的Discuz!论坛在HHvm上有部分问题。

相关推荐

Excel技巧:SHEETSNA函数一键提取所有工作表名称批量生产目录

首先介绍一下此函数:SHEETSNAME函数用于获取工作表的名称,有三个可选参数。语法:=SHEETSNAME([参照区域],[结果方向],[工作表范围])(参照区域,可选。给出参照,只返回参照单元格...

Excel HOUR函数:“小时”提取器_excel+hour函数提取器怎么用

一、函数概述HOUR函数是Excel中用于提取时间值小时部分的日期时间函数,返回0(12:00AM)到23(11:00PM)之间的整数。该函数在时间数据分析、考勤统计、日程安排等场景中应用广泛。语...

Filter+Search信息管理不再难|多条件|模糊查找|Excel函数应用

原创版权所有介绍一个信息管理系统,要求可以实现:多条件、模糊查找,手动输入的内容能去空格。先看效果,如下图动画演示这样的一个效果要怎样实现呢?本文所用函数有Filter和Search。先用filter...

FILTER函数介绍及经典用法12:FILTER+切片器的应用

EXCEL函数技巧:FILTER经典用法12。FILTER+切片器制作筛选按钮。FILTER的函数的经典用法12是用FILTER的函数和切片器制作一个筛选按钮。像左边的原始数据,右边想要制作一...

office办公应用网站推荐_office办公软件大全

以下是针对Office办公应用(Word/Excel/PPT等)的免费学习网站推荐,涵盖官方教程、综合平台及垂直领域资源,适合不同学习需求:一、官方权威资源1.微软Office官方培训...

WPS/Excel职场办公最常用的60个函数大全(含卡片),效率翻倍!

办公最常用的60个函数大全:从入门到精通,效率翻倍!在职场中,WPS/Excel几乎是每个人都离不开的工具,而函数则是其灵魂。掌握常用的函数,不仅能大幅提升工作效率,还能让你在数据处理、报表分析、自动...

收藏|查找神器Xlookup全集|一篇就够|Excel函数|图解教程

原创版权所有全程图解,方便阅读,内容比较多,请先收藏!Xlookup是Vlookup的升级函数,解决了Vlookup的所有缺点,可以完全取代Vlookup,学完本文后你将可以应对所有的查找难题,内容...

批量查询快递总耗时?用Excel这个公式,自动计算揽收到签收天数

批量查询快递总耗时?用Excel这个公式,自动计算揽收到签收天数在电商运营、物流对账等工作中,经常需要统计快递“揽收到签收”的耗时——比如判断某快递公司是否符合“3天内送达”的服务承...

Excel函数公式教程(490个实例详解)

Excel函数公式教程(490个实例详解)管理层的财务人员为什么那么厉害?就是因为他们精通excel技能!财务人员在日常工作中,经常会用到Excel财务函数公式,比如财务报表分析、工资核算、库存管理等...

Excel(WPS表格)Tocol函数应用技巧案例解读,建议收藏备用!

工作中,经常需要从多个单元格区域中提取唯一值,如体育赛事报名信息中提取唯一的参赛者信息等,此时如果复制粘贴然后去重,效率就会很低。如果能合理利用Tocol函数,将会极大地提高工作效率。一、功能及语法结...

Excel中的SCAN函数公式,把计算过程理清,你就会了

Excel新版本里面,除了出现非常好用的xlookup,Filter公式之外,还更新一批自定义函数,可以像写代码一样写公式其中SCAN函数公式,也非常强大,它是一个循环函数,今天来了解这个函数公式的计...

Excel(WPS表格)中多列去重就用Tocol+Unique组合函数,简单高效

在数据的分析和处理中,“去重”一直是绕不开的话题,如果单列去重,可以使用Unique函数完成,如果多列去重,如下图:从数据信息中可以看到,每位参赛者参加了多项运动,如果想知道去重后的参赛者有多少人,该...

Excel(WPS表格)函数Groupby,聚合统计,快速提高效率!

在前期的内容中,我们讲了很多的统计函数,如Sum系列、Average系列、Count系列、Rank系列等等……但如果用一个函数实现类似数据透视表的功能,就必须用Groupby函数,按指定字段进行聚合汇...

Excel新版本,IFS函数公式,太强大了!

我们举一个工作实例,现在需要计算业务员的奖励数据,右边是公司的奖励标准:在新版本的函数公式出来之前,我们需要使用IF函数公式来解决1、IF函数公式IF函数公式由三个参数组成,IF(判断条件,对的时候返...

Excel不用函数公式数据透视表,1秒完成多列项目汇总统计

如何将这里的多组数据进行汇总统计?每组数据当中一列是不同菜品,另一列就是该菜品的销售数量。如何进行汇总统计得到所有的菜品销售数量的求和、技术、平均、最大、最小值等数据?不用函数公式和数据透视表,一秒就...