0

出于某种原因,有时在共享服务器上运行时,我的 PHP 代码会出现以下致命错误:

致命错误:第 8 行 C:\HostingSpaces[username][subdomain]\wwwroot\index.php 中的最大执行时间超过 30 秒

那行就是:

session_regenerate_id();

这个问题可能来自托管在共享服务器上的代码并且资源不可用?或者这个问题还有其他原因吗?

由于它是共享服务器,我无法更改任何 PHP 设置。

编辑:

第 8 行之前的唯一一行是模型对象的几require_once行。唯一的另一行是session_start().

我检查了我的 PHP 设置,它指出 session.save_handler 是本地和主值的文件。由于它正在使用文件,因此问题可能是尝试从磁盘读取和写入吗?

4

1 回答 1

1

我认为您的问题可能是您所怀疑的性能和资源问题,但我觉得奇怪的是它只在第 8 行停止。我猜如果其余代码非常少,那么机会可能会很高。

您是否尝试过更改代码以使超时发生在不同的行上?例如,您可以尝试添加sleep(25);并查看致命超时是否发生在该行上。

另外,您确定不能设置最大执行时间限制吗?我怀疑即使您无法更改共享的 php.ini,您也可以max_execution_time通过以下其他选项之一进行设置:

我相信 for 的值/参数以max_execution_time秒为单位,如果将其设置为 0(零),则将不使用执行时间限制。(您是否认为使用零安全取决于您。)

于 2012-04-17T15:29:09.453 回答