【问题标题】:Running HHVM with fallback to PhP - Apache运行 HHVM 并回退到 PhP - Apache
【发布时间】:2015-07-20 02:39:57
【问题描述】:

该站点非常复杂,有数千个函数和数百万行代码,现阶段无法逐行调试。

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

一些 php 的默认功能不工作/不能正常工作。我发现我们用于添加/编辑 cmets 的一件事不起作用。

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

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

示例: 这只是一个很小的区域,我正在寻找的是,如果 HHVM 可以与 PHP/Apache 一起运行,它会在请求中失败,以便请求通过 PHP/Apache 运行.

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

【问题讨论】:

    标签: php apache nginx hhvm


    【解决方案1】:

    自 PHP 5.3.0 起,该函数已被弃用。强烈建议不要依赖此功能。

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

    您应该使用带有-i 标志的preg_match

    您可能还应该考虑使用某种错误日志记录来发现这些错误。

    【讨论】:

      【解决方案2】:

      看看 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

      【讨论】:

        猜你喜欢
        • 2015-02-04
        • 2012-05-19
        • 1970-01-01
        • 2010-09-08
        • 1970-01-01
        • 1970-01-01
        • 2016-06-10
        • 1970-01-01
        • 2011-09-05
        相关资源
        最近更新 更多