【问题标题】:Unexpected server reset with php and apache使用 php 和 apache 意外重置服务器
【发布时间】:2013-04-05 23:57:58
【问题描述】:

我有一个与数据库交互的应用程序。在我的 Web 浏览器中,页面突然偶尔会显示 Server connection Reset 错误。更令人惊讶的是,访问 localhost 页面会触发 avast 的警报。

如果我使用Ctrl+R 刷新页面,它偶尔会发生。 PHP 没有显示任何错误消息,而且服务器似乎比平时花费了更多的时间来响应。

我将 wamp 与 apache 2.4、PHP 5.4.3 一起使用。我不知道从哪里开始调试或问题出在哪里。

[Sun May 13 13:01:14 2012] [warn] Init: Session Cache is not configured [hint: SSLSessionCache]
[Sun May 13 13:01:14 2012] [notice] Apache/2.2.22 (Win32) mod_ssl/2.2.22 OpenSSL/0.9.8x configured -- resuming normal operations
[Sun May 13 13:01:14 2012] [notice] Server built: May 13 2012 12:51:11
[Sun May 13 13:01:14 2012] [notice] Parent: Created child process 3660
Apache server interrupted...
arn] Init: Session Cache is not configured [hint: SSLSessionCache]
[Sun May 13 13:01:15 2012] [notice] Child 3660: Child process is running
[Sun May 13 13:01:15 2012] [notice] Child 3660: Acquired the start mutex.
[Sun May 13 13:01:15 2012] [notice] Child 3660: Starting 64 worker threads.
[Sun May 13 13:01:15 2012] [notice] Child 3660: Starting thread to listen on port 80.
[Sun May 13 13:01:15 2012] [notice] Child 3660: Starting thread to listen on port 80.
[Sun May 13 13:01:28 2012] [notice] Parent: Received shutdown signal -- Shutting down the server.
[Sun May 13 13:01:28 2012] [notice] Child 3660: Exit event signaled. Child process is ending.
[Sun May 13 13:01:29 2012] [notice] Child 3660: Released the start mutex
[Sun May 13 13:01:30 2012] [notice] Child 3660: All worker threads have exited.
[Sun May 13 13:01:30 2012] [notice] Child 3660: Child process is exiting
[Sun May 13 13:01:30 2012] [notice] Parent: Child process exited successfully.

更新:

如果使用cachegrind,出现“连接请求”时,它会显示方法调用堆栈的部分列表。意味着它不会运行所有代码。它显示了一些 require_once 调用和它。下次如果我重试获取页面,页面会执行并显示整个调用堆栈。

当“发生连接请求”时显示

18 different functions called in milliseconds (1 runs, 18 shown)

重试后

220 different functions called in 329 milliseconds (2 runs, 220 shown)

我不知道为什么它显示 2 次运行。执行页面也需要更多时间。不到 100 毫秒。

【问题讨论】:

  • apache 日志怎么说?
  • avast 如同在杀毒程序中?? crikey,那条消息说什么?
  • @CodeMonkey 是的防病毒软件。它说'恶意网址已被阻止'
  • @mkjasinski 它没有错误
  • @fallenAngel 如果是外部库例程中的堆栈溢出错误,PHP 不会捕获该错误。它只会杀死服务器进程。检查您是否在某处有无限递归。

标签: php mysql apache debugging


【解决方案1】:
  1. 重新启动计算机并关闭/禁用所有正在运行的应用程序,包括防病毒软件,只保留最少的运行应用程序集。关闭所有东西,即使是那些你确定不会干扰的应用程序——你永远不知道..

  2. 确保 PHP 显示所有错误/警告:

    error_reporting(E_ALL);
    ini_set('display_errors', '1');
    

确保查看从 PHP 收到的每个警告。它可能会给你一个线索。

  1. 尝试找出问题。注释一段您怀疑会导致问题的代码。继续评论直到停止收到错误。然后开始取消注释,直到找到有问题的地方。这样您就可以隔离有问题的代码,一旦看到它,您就可以理解问题所在。

  2. 添加大量将写入日志文件(或只是回显)的语句。然后您可以分析日志文件并了解错误发生的时间点,从而帮助您隔离问题...

最终您会发现有问题的代码块,并能够跟踪问题。希望:)

【讨论】:

    【解决方案2】:

    要通过 PHP 重新启动 Apache,请使用 PHP 中的以下代码

    exec('/etc/init.d/httpd graceful');
    

    同时查看 manual... 并更改您的 httpd 的路径

    【讨论】:

    • 另外,如果您的服务器允许您通过调用通常需要由超级用户从其内部运行的任意脚本来重新启动它,我会非常害怕..)
    【解决方案3】:

    将 apache 监听端口从 80 更改为 8080 文件 httpd.conf ,将 listen 80 更改为 listen 8080 并重新启动 apache

    【讨论】:

      【解决方案4】:

      重新尝试暂时禁用防病毒软件

      【讨论】:

        【解决方案5】:

        也许这不是一个正确的解决方案,但为什么不尝试其他 WAMP 版本或者正确设置您的系统时钟? 您是否尝试过以最低配置运行 Apache? 您可以禁用所有扩展和模块(包括 php 本身),如果 Web 服务器按预期工作,您可以逐个打开模块。我不了解您的环境,但您也可以尝试将工作线程数和其他值更改为最小。我敢打赌它没有帮助,但至少你会尝试。

        【讨论】:

          【解决方案6】:

          如果您启用了 mod_security,请尝试禁用并查看是否会发生同样的情况.. 有时您可能会过度警惕 mod_security,这只会导致 http 失败(有时就像将带有与号的数据插入数据库一样简单)并获胜'不要将任何错误写入服务器日志,使其难以排除故障,听起来与您遇到的相似,我将禁用 mod_security 重新启动服务器并查看行为是否已停止!

          【讨论】:

            【解决方案7】:

            看起来其他人在使用 Wamp 时遇到了同样的问题: 您是否仔细阅读了这篇属于官方论坛的帖子中列举的每个要点:

            http://forum.wampserver.com/read.php?2,67660

            【讨论】:

              【解决方案8】:

              您确定没有包含/要求循环吗?

              这种循环会让 PHP 消耗过多的内存,而 apache 会杀死自己来避免它。

              或者可能是某种 404 循环错误... 如果有时出现 404 错误,就会发生这种循环。这是一个例子:

              您的布局中缺少图像,因此会触发 404 错误。为了显示页面,404 错误会在包含丢失图像的错误页面周围添加布局,这会触发另一个 404 错误。

              希望对您有所帮助。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2017-07-16
                • 2020-08-25
                • 1970-01-01
                • 2018-08-18
                • 2010-12-30
                • 2019-04-23
                • 2019-01-11
                相关资源
                最近更新 更多