0

0

用 HHvm 运行 Wordpress 是用 Apache 好还是 Nginx 好一点?

php中文网

php中文网

发布时间:2016-06-06 16:45:34

|

1740人浏览过

|

来源于php中文网

原创

最近想研究一下 HHvm,但是在网上没找到详细的技术文档,所以想自己做一个 Wordpress 实例研究一下,选择 Web 服务器时让我犹豫了一下:
系统: Ubuntu OR RedHat
因为我自己对 Nginx 没有太多研究(我只钟爱Apache)。不知道它支不支持虚拟路径。
所以在这里问一下懂 HHvm 的人,是选 Apache 或是 Nginx 好一点?
也可以提供相关技术文档。
注:我是一个菜鸟……

回复内容:

HHVM通常搭配Nginx比较多,Apache当然也可以,通信方式走fastcgi。

HHVM的介绍如下:
HHVM是一个开源的PHP虚拟机,使用JIT的编译方式以及其他技术,让PHP代码的执行性能大幅提升。据传,可以将当前版本的原生PHP代码提升5-10倍的执行性能。

hhvm起源于facebook公司,facebook早起的很多代码是使用php来开发的,但是,随着业务的快速发展,php执 行效率成为越来越明显的问题。为了优化执行效率,facebook在2008年就开始使用hiphop,这是一种php执行引擎,最初是为了将 fackbook的大量php代码转成 c++,以提高性能和节约资源。使用hiphop的php代码在性能上有数倍的提升。后来,facebook将hiphop平台开源,逐渐发展为现在的 hhvm。


HHVM提升PHP执行性能的方式

HHVM提升PHP性能的途径,采用的方式就是替代Zend引擎来生成和执行PHP的中间字节码(HHVM生成自己格式的中间字节 码),执行时通过JIT(Just In Time,即时编译是种软件优化技术,指在运行时才会去编译字节码为机器码)转为机器码执行。Zend引擎默认做法,是先编译为opcode,然后再逐条 执行,通常每条指令对应的是C语言级别的函数。如果我们产生大量重复的opcode(纯PHP写的代码和函数),对应的则是Zend多次逐条执行这些C代 码。而JIT所做的则是更进一步,将大量重复执行的字节码在运行的时候编译为机器码,达到提高执行效率的目的。通常,触发JIT的条件是代码或者函数被多 次重复调用。

用 HHvm 运行 Wordpress 是用 Apache 好还是 Nginx 好一点?

普通的PHP代码,因为无法固定变量的类型,需要额外添加判断类型的逻辑代码,这样PHP代码是不利于CPU执行和优化 的。因此,HHVM通常需要用到Hack写法(为了兼容某种特性而额外添加的技巧性质的代码)的PHP代码来“配合”,就是为了让变量类型固定,方便虚拟 机编译执行。PHP追求以一种形式来容纳一切类型,而Hack则可以将被容纳的一切标记上确定的类型。

PHP代码的Hack写法的例子:

H5自适应企业网站源码1.0.1
H5自适应企业网站源码1.0.1

H5自适应企业网站源码是一套非常优秀的asp自适应企业网站源码,这套源码有很多优秀的功能,也是很多企业网站所不具备的。H5自适应企业网站源码使用asp+access搭建,运行环境要求windows+IIS。网站前台是动态页面,不过网址URL已经做了伪静态处理,URL的格式都是.html结尾,对搜索引擎也比较友好。H5自适应企业网站源码的一个亮点功能就是会员等级制度及权限划分功能,普通会员栏目发布的

下载
用 HHvm 运行 Wordpress 是用 Apache 好还是 Nginx 好一点?

上面的例子中,PHP代码主要被添加上了变量类型。Hack写法的总体方向,就是将之前“动态”的写法变为“静态”的写法,来配合HHVM。

HHVM因为它的高性能而吸引了不少人的关注,一些一线互联网公司也开始跟进使用。从纯语言执行性能测试结果来看,HHVM领先了开发中的PHP7版本不少。

用 HHvm 运行 Wordpress 是用 Apache 好还是 Nginx 好一点?

不过,从具体业务场景来看,HHVM和PHP7的差距并没有那么大,以WordPress开源博客首页为测试场景的结果中,他们目前的差距并不明显。

用 HHvm 运行 Wordpress 是用 Apache 好还是 Nginx 好一点?

但是,PHP7目前还在开发中,就已经可用的技术方案来看,目前的HHVM略胜一筹。不过,HHVM的部署和应用都存在一些的问题:

  1. 服务部署比较复杂,有一定维护成本。
  2. 对PHP原生代码并非完整支持,PHP拓展也需要做适当的兼容。
  3. HHVM是个新虚拟机,长时间运行有内存泄露。(据说,一线互联网公司在应用这个技术时,是通过自己打Patch的方式解决内存泄露)
PS:PHP7是PHP官方社区的下一个大版本,旨在提升PHP代码的执行性能。

我之前整理的两个社区的科普文:
PHP7和HHVM的性能之争介绍 想知道答案的方法,就是自己去实践。以下内容仅供参考:

apache / nginx 两者侧重点不同,前者适合搭配各种apache旗下软件使用,后者是单纯的前端代理软件。如果你单纯的跑给站的话,hhvm自己就可以,但是如果要权衡前端缓存,反响代理,细致的客户端缓存设置,还是用nginx吧。

而且如果你没有特殊的需求(svn?hadoop?)的话,nginx完全可以满足你的各种需求,而且配置简单。

至于热加载,你需要的是tengine,支持dso(动态加载模块)。

关于安装和配置,可以参考:
  • 配置Ubuntu WebServer基础环境
  • 简单配置服务端代理Apache
  • 简单配置服务端代理Tengine
如果涉及上传,参考php的设置,在/etc/hhvm/php.ini 设置upload_limit/post_limit...

如果你用hhvm跑前端代理和runtime两个角色的话,那么请参考官方文档。

最后,如果只是通过网站响应速度来评定好坏的话,可以参考:
天下武功,唯快不破 标题中的『好』在哪里?不太明白。

先简单来说下 PHP 运行方式,大概有三种:
1. 命令行(解释器),这个跟 Web Server 无关
2. mod_php,这个就是说 Apache 的模块
3. fpm,官方提供的 FastCGI 协议管理程序,走 FastCGI 协议,Apache 和 Nginx 都可以做 FastCGI 协议代理转发,不过这种方式一般人都会选择 Nginx

对于上面的 2、3 中,个人建议采用 Apache(mod_php)方式来运行,主要是简单,稳定,省事,等你折腾到 PHP 自身(优化、配置)的时候再考虑 Nginx 方式。

楼主提到 HHVM 是另外一个东西,这里有个文章:HHVM 是如何提升 PHP 性能的? 请看鸟哥的测试:laruence.com/2014/12/18 博客的话,简单就好。如@smallfish所言。
nginx的话主要是高并发,性能高。 Apache对于多用户访问采用的是每一个用户一个fork,对内存,线程切换开销可想而知。
Apache对于第三方插件可以“热”插拔,重启apache即可。Nginx则需要重新编译。
Hackshell和php与@smallfish说的一样,fadtcgi,可以说是php的“虚拟机”,相当于是php自身是个服务器,apache和nginx是用来做代理用,处理http请求的一些细节。 这件事情取决于你博客的访问量. 大部分人的博客访问量, 对apache+phpmod或者nginx+php-fpm, 压力不会太大, 这点区别, 跟在wordpress启用页面cache插件比, 还是比较小的.

你提供的场景信息太少, 没法做详细的分析 nginx + hhvm 运行时候, 跟nginx + php-fpm 运行时候。hhvm 此时等同于 php-fpm 的。都是监听端口或者unix 本地 sock解释PHP的。就是HHVM解析速度快,目前感受是废一点内存,CPU省一半儿, 兼容性良好, 就是稳定性大概我用HHVM3.3.0 2个月进程意外崩一次, 目前的HHVM 3.5应高好一点。

最快最省服务器的,是 nginx + HHVM(hhvm监听本地sock, 比如 /dev/shm/hhvm.sock)这样是最快最好的 ,也很稳定。 听说最好的办法不是nginx+apache+php(wordpress)吗?

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
go语言 注释编码
go语言 注释编码

本专题整合了go语言注释、注释规范等等内容,阅读专题下面的文章了解更多详细内容。

32

2026.01.31

go语言 math包
go语言 math包

本专题整合了go语言math包相关内容,阅读专题下面的文章了解更多详细内容。

23

2026.01.31

go语言输入函数
go语言输入函数

本专题整合了go语言输入相关教程内容,阅读专题下面的文章了解更多详细内容。

16

2026.01.31

golang 循环遍历
golang 循环遍历

本专题整合了golang循环遍历相关教程,阅读专题下面的文章了解更多详细内容。

5

2026.01.31

Golang人工智能合集
Golang人工智能合集

本专题整合了Golang人工智能相关内容,阅读专题下面的文章了解更多详细内容。

6

2026.01.31

2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

268

2026.01.31

高干文在线阅读网站大全
高干文在线阅读网站大全

汇集热门1v1高干文免费阅读资源,涵盖都市言情、京味大院、军旅高干等经典题材,情节紧凑、人物鲜明。阅读专题下面的文章了解更多详细内容。

195

2026.01.31

无需付费的漫画app大全
无需付费的漫画app大全

想找真正免费又无套路的漫画App?本合集精选多款永久免费、资源丰富、无广告干扰的优质漫画应用,涵盖国漫、日漫、韩漫及经典老番,满足各类阅读需求。阅读专题下面的文章了解更多详细内容。

170

2026.01.31

漫画免费在线观看地址大全
漫画免费在线观看地址大全

想找免费又资源丰富的漫画网站?本合集精选2025-2026年热门平台,涵盖国漫、日漫、韩漫等多类型作品,支持高清流畅阅读与离线缓存。阅读专题下面的文章了解更多详细内容。

85

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
RunnerGo从入门到精通
RunnerGo从入门到精通

共22课时 | 1.7万人学习

尚学堂Mahout视频教程
尚学堂Mahout视频教程

共18课时 | 3.2万人学习

Linux优化视频教程
Linux优化视频教程

共14课时 | 3.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号