【发布时间】:2011-03-01 06:58:09
【问题描述】:
我在我的 PHP 错误日志中看到以下错误:
PHP Fatal error: Maximum execution time of 60 seconds exceeded in D:\sites\s105504\www\index.php on line 3PHP Fatal error: Maximum execution time of 60 seconds exceeded in D:\sites\s105504\www\search.php on line 4
有问题的行是:
index.php:
01 <?php
02 session_start();
03 ob_start();
04 error_reporting(E_All);
05 $_SESSION['nav'] = "range"; // <-- Error generated here
search.php
01 <?php
02
03 session_start();
04 $_SESSION['nav'] = "range";
05 $_SESSION['navselected'] = 21; // <-- Error generated here
分配$_SESSION[] 值真的需要长达 60 多秒的时间吗?
平台是:
- Windows 2003 SP2 + IIS6
- FastCGI for Windows 2003(原始 RTM 版本)
- PHP 5.2.6 非线程安全构建
当会话过期时,在服务器上清除会话数据文件没有任何问题。我看到的最早的 sess_XXXXXXXXXXXXXX 文件大约有 2 小时的历史。
事件日志中没有明显的磁盘超时或其他可能表明创建会话数据文件有困难的磁盘健康问题。
该站点也在负载不重的服务器上。该网站很忙,但没有受到重创,而且反应迅速。只是我们得到这些错误,连续三四个,每三四个小时一次。
我还应该补充一点,我不是这段代码的原始开发者,它属于一个开发者早已离开的客户。
【问题讨论】:
-
您是否有任何会话处理程序可能会对会话进行某些操作?
-
我不知道这可能是什么。设置自定义会话保存处理程序php.net/manual/en/function.session-set-save-handler.php 只是为了查看问题是否仍然存在并进行更详细的调试如何?手册页有一个完整的示例,应该足以复制+粘贴。