出于某种原因,有时候,在共享服务器上运行时,我的PHP代码会出现以下致命错误:
致命错误:第8行的C:\ HostingSpaces [username] [subdomain] \ wwwroot \ index.php超出了30秒的最长执行时间
那条线就是:
session_regenerate_id();
这个问题可能来自托管在共享服务器上的代码和资源不可用吗?或者是否有其他原因导致此问题?
由于它是共享服务器,我无法更改任何PHP设置。
修改
第8行之前的唯一一行是模型对象的几条require_once
行。唯一的另一行是session_start()
。
我检查了我的PHP设置,并指出session.save_handler是本地值和主值的文件。由于它正在使用文件,问题可能是尝试从磁盘读取和写入?
答案 0 :(得分:1)
我认为您的问题可能是您怀疑的性能和资源问题,但我觉得奇怪的是它只停在第8行。我猜如果剩下的代码非常多,那么机会可能会很高最小的。
您是否尝试更改代码以尝试在其他行上发生超时?例如,您可以尝试添加sleep(25);
并查看是否在该行发生了致命超时。
另外,您确定无法设置最长执行时间限制吗?我怀疑即使你不能改变共享的php.ini,也可以通过以下其中一个选项设置max_execution_time
:
php_value max_execution_time
指令
set_time_limit
ini_set
and max_execution_time
我相信max_execution_time
的值/参数以秒为单位,如果将其设置为0(零),则将使用NO执行时间限制。 (你认为使用零是否安全取决于你。)