0

我们有一个使用 ZendFrameWork v1.10 开发的电子商务网站。有时网站加载非常缓慢,许多页面根本没有加载并且正在超时。主页加载时间超过 15 秒,许多产品页面根本无法加载,只是超时。

在这种情况下,我们经常重新启动我们的 apache 服务器并正常启动站点。然后我们询问服务器提供商,他们说我们的服务器健康状况良好,他们会像这样生成我们的服务器健康状况

(~) # uptime
 12:00:17 up 655 days, 10:51,  2 users,  load average: 0.87, 0.65, 0.58

(~) # uptime
 12:00:29 up 177 days,  6:46,  1 user,  load average: 0.64, 0.53, 0.47

他们还建议我们检查我们的服务器 error_log,因为他们发现许多 php 错误正在加载到它。当我们检查服务器 erro_log 和它的旧文件时。我们在所有日志文件中发现了许多以下错误。

[Sun Dec 30 02:35:32 2012] [error] [client 66.249.76.16] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.

如果我在 error_log 文件中检查了特定 IP 的上述错误,eg : 66.249.76.16我发现了 6 个结果,如果我检查了从其中剥离最后两位数字的 IP,(66.249.76)我可以在我们的 error_log 文件中看到每天超过 20 个错误,就像上面一样。

我认为,我应该解决的第一个问题是上述“由于可能的配置错误,请求超出了 10 个内部重定向的限制。如有必要,请使用 'LimitInternalRecursion' 增加限制。使用 'LogLevel debug' 获取回溯”Apache 日志问题。

我们已经查看了日志,并且如上所述每天都会发生这种情况,所以我需要找出实际上是什么代码导致了这个错误。我们要求我们的服务器支持启用“Loglevel debug”(我对此不太熟悉),但启用此功能后我仍然看不到任何有用或错误日志中的任何差异。

我的问题是 - 我该怎么做才能找出在我们网站的哪个位置产生了这个错误?知道哪个 PHP 脚本(我们有 100 个)实际上使“请求超出了 10 个内部重定向的限制”重定向发生,这将非常有帮助。

关于如何进行的任何建议?

4

1 回答 1

1

我们也遇到了一些这样的问题。我们在 index.php 中记录了日志,这让我们非常清楚是哪个请求导致了问题。您可以执行相同的操作并检查哪些请求占用了最多的执行时间。

<?php

define('EXECUTION_START',  microtime(true));

.
.
.
// Create application, bootstrap, and run
$application = new Zend_Application(
    APPLICATION_ENV,
    APPLICATION_PATH .DS. 'configs'.DS.'application.ini'
);
$application->bootstrap()
            ->run();

$endTime = microtime(true);
$executionTime = $endTime-EXECUTION_START;
$ipaddress = $_SERVER['REMOTE_ADDR'];
$url = $_SERVER['REQUEST_URI'];

$logString="$ipaddress|$url|$startTime|$endTime|$executionTime\n";
$file = 'executiontime.txt';
file_put_contents($file, $logString, FILE_APPEND | LOCK_EX);
于 2013-01-09T08:04:07.680 回答