【问题标题】:Apache comes back with nothing阿帕奇一无所有
【发布时间】:2010-12-27 07:41:57
【问题描述】:

我正在运行带有 PHP 5.x 的 Apache 2.046,我在 CodeIgniter 应用程序上遇到了非常奇怪的行为。

令人沮丧的是它并不一致。

有时当我调用我的应用程序时,Apache 什么也不返回。我是说纳达。但后来我点击刷新,一切都按预期工作。有时我必须在页面加载之前多次点击“刷新”。其他时候它会立即出现。当我开始这篇文章时,它发生在 80-90% 的时间里。现在我似乎无法实现它。但它已经发生了好几天,所以我有信心在接下来的几次页面访问中我会再次看到它。

这是在一个流量很少的开发盒子上。当我执行 PS 时,我看到几个 HTTP 线程正在运行 - “top”显示没有任何意外(如失控进程)。

当我跟踪 Apache 访问日志时,当 Apache 返回空白时,我什至看不到记录的请求。没有抛出 Apache 或 PHP 错误。

我提到 codeIgniter 主要是因为我们使用了推荐的 .htaccess 文件和 Mod Rewrite。所以我不确定这是否导致了这个问题。 似乎非 codeIgniter 应用程序也不是问题。这很难有把握地说,因为这个问题是如此不一致。

这似乎不是客户端问题,因为我们看到这发生在多台客户端机器上。

我不知道这是服务器(硬件)问题、Apache 问题还是编码问题。可能是内存问题?

有什么想法吗?


新信息:

在我收到的 PHP 日志文件中:

PHP 致命错误:致命的 flex 扫描器内部错误——第 226 行 /data/www/coreLib/codeIgniter/system/libraries/Hooks.php 中的缓冲区结束

【问题讨论】:

    标签: php apache http codeigniter lamp


    【解决方案1】:

    使用 CI 时出现空白页通常是由于 php 错误导致错误消息被抑制。

    尝试重新启用它们并重新加载。

    error_reporting(E_ALL|E_WARNING)
    

    【讨论】:

    • 谢谢,我很确定错误报告已经启动 - 但我继续将您的建议添加到我的控制器中。谢谢。
    • 因为问题可能在堆栈的底层,所以在你的 index.php 文件中定义它。
    【解决方案2】:

    如果您怀疑您的重写规则是问题的根源,请调高 mod_rewrite 的日志记录级别并找出答案。否则,一切都在您的应用程序之外正常工作的事实使这听起来像是您的代码或可能是框架本身的问题。

    【讨论】:

    • 感谢您的建议。我会这样做(我没有意识到 mod_rewrite 有它自己的日志记录级别)。 CI 应用程序是唯一使用 mod_rewrite 的应用程序 - 因此它不是以某种方式确定的。我很肯定这是一个编码问题 - 但“谁的”编码问题是个问题;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多