2015-05-09 72 views
1

该网站非常复杂,有数千个函数和数百万行代码,在这个阶段太多以至于无法逐行调试。运行HHVM并回退到PhP - Apache

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

某些php的默认功能无法正常工作/无法正常工作。我发现了一件事,我们用它来添加/编辑评论,这是行不通的。

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

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

示例:这只是一个非常小的领域,我期待的是如果HHVM可以与PHP/Apache包装一起运行,它将在请求中失败,以便通过PHP/Apache运行请求。

对此的任何意见都会得到很大的回应。

回答

0

看看Etsy的的经验,从移植到PHP HHVM:

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

他们对他们的负载平衡器使用tee复制数据到受PHP的实现,并对结果进行比较。

主要报价:

您可以在这个意义上像在命令行上发球认为“三通”的。我们在我们的f5负载平衡器上编写了一个iRule来克隆去往一个池的HTTP流量并将其发送给另一个池。这使我们能够将正在发送到我们的API集群的生产流量发送到我们的实验HHVM集群,以及一个用于比较的孤立PHP集群。

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

下面是创建tee一些选项:

Duplicate TCP traffic with a proxy