我在PHP自己的错误日志中遇到间歇性错误,如下所示:
09-Mar-2015 09:18:12欧洲/都柏林] PHP致命错误:第27行的C:\ inetpub \ site \ www \ index.php超过120秒的最长执行时间
应用程序在CakePHP上运行,因此index.php只是Cake的正常请求处理程序。对应用程序的每个请求都会通过此文件。
该站点在Windows / IIS中的PHP 5.4上运行。 IIS'此特定请求的自己的日志显示这是一个POST请求。
这是index.php。第27行是注释后第一行实际代码,因此可以安全地假设它是PHP尝试在请求上执行的第一行。
<?php
/**
* Requests collector.
*
* This file collects requests if:
* - no mod_rewrite is available or .htaccess files are not supported
* - requires App.baseUrl to be uncommented in app/Config/core.php
* - app/webroot is not set as a document root.
*
* PHP 5
*
* CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
* Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
*
* Licensed under The MIT License
* Redistributions of files must retain the above copyright notice.
*
* @copyright Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
* @link http://cakephp.org CakePHP(tm) Project
* @since CakePHP(tm) v 0.2.9
* @license MIT License (http://www.opensource.org/licenses/mit-license.php)
*/
/**
* Get Cake's root directory
*/
define('APP_DIR', 'app');
define('DS', DIRECTORY_SEPARATOR);
define('ROOT', dirname(__FILE__));
define('WEBROOT_DIR', 'webroot');
define('WWW_ROOT', ROOT . DS . APP_DIR . DS . WEBROOT_DIR . DS);
/**
* This only needs to be changed if the "cake" directory is located
* outside of the distributed structure.
* Full path to the directory containing "cake". Do not add trailing directory separator
*/
if (!defined('CAKE_CORE_INCLUDE_PATH')) {
define('CAKE_CORE_INCLUDE_PATH', ROOT . DS . 'lib');
}
require APP_DIR . DS . WEBROOT_DIR . DS . 'index.php';
我在这里遇到两个问题。
首先,导致这个问题的原因是什么?我还没有想到一些IIS或PHP设置?我无法在开发中重现它。
其次,遇到此错误的用户只是获得死亡的白屏,因为CakePHP框架尚未启动并注册了关闭功能或错误处理程序。关于如何处理这个问题的任何临时想法至少是一个优雅的&#34;出了问题,请再试一次&#34;会有用的。你不能在index.php中使用register_shutdown_function(),因为它会覆盖CakePHP的错误处理程序。
答案 0 :(得分:0)
问题原来是max_input_time
设置得太低了。只有在上传大文件的慢速连接上的用户才会出现此问题。我在php.ini中增加了max_input_time
,问题就消失了。