运行HHVM并回退到PhP - Apache

时间:2015-05-09 05:28:39

标签: php apache nginx hhvm

该站点非常复杂,具有数千个函数和数百万行代码,在此阶段可以逐行调试。

我们已经从Apache转移到Nginx并设置了网站。它的运行速度要快得多,但有些区域无法运行。

某些php的默认功能无法正常工作/无法正常工作。我找到了一件我们用来添加/编辑评论的东西,但是没有用。

$comment = eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)',
    '\\1<a href="https://\\2" target=_blank>\\2</a>', $comment);

这导致将变量注释为空白,并导致在讨论中将空白值插入数据库。

示例:这只是一个非常小的区域,我想要的是如果HHVM可以与PHP / Apache一起运行,它在请求中失败,以便请求通过PHP / Apache运行

对此的任何建议都会受到极大的欢迎。

2 个答案:

答案 0 :(得分:0)

  

自PHP 5.3.0起,此功能已被弃用。非常不鼓励依赖此功能。

     

http://docs.hhvm.com/manual/en/function.eregi.php

您应该使用preg_match代替-i标志。

你应该考虑使用某种错误记录来解决这些错误。

答案 1 :(得分:0)

看看Etsy从PHP迁移到HHVM的经历:

https://codeascraft.com/2015/04/06/experimenting-with-hhvm-at-etsy/

他们在负载均衡器上使用tee来复制两个PHP实现的流量,并比较结果。

主要报价:

  

你可以在命令行上像tee一样想到“tee”。我们在f5负载均衡器上编写了一个iRule来克隆发往一个池的HTTP流量并将其发送给另一个池。这使我们能够将生成的流量发送到我们的API集群,并将其发送到我们的实验性HHVM集群,以及用于比较的独立PHP集群。

基本上Etsy复制了他们的请求 - 请求被发送到原始的PHP解释器以及HHVM。客户只返回了原始PHP解释器的值,但也将其与HHVM的输出进行了比较,以消除任何问题。

以下是创建tee的一些选项:

Duplicate TCP traffic with a proxy