第一行脚本超出了PHP最大执行时间

时间:2015-03-09 10:28:39

标签: php cakephp iis

我在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的错误处理程序。

1 个答案:

答案 0 :(得分:0)

问题原来是max_input_time设置得太低了。只有在上传大文件的慢速连接上的用户才会出现此问题。我在php.ini中增加了max_input_time,问题就消失了。