今天在调试网站时,由于客户使用的是某个服务器的虚拟主机,一直在报错 set_time_limit() has been disabled for security reasons ,虽然问题很好解决,但防止以后有别人用户遇到,就写一下这个错误的解决方法吧。

错误提示及原因

错误提示:

set_time_limit() has been disabled for security reasons

中文意思:

出于安全原因,已禁用set_time_limit()

错误原因:

php 禁用了 set_time_limit() 函数,所以会报错。

set_time_limit() 禁用的可能原因:

关于 php 中 set_time_limit() 函数的禁用问题,是存在很多的争议的。其中坚持禁用此函数的人认为:php 的 set_time_limit() 函数在开启后,如果被黑客入侵,放入一些不安全的代码或做一些 ee-vil 操作,并在此后规定的多长时间后运行,会对服务器的安全造成威胁。

解决方法1:

1、打开 php 的配置文件 php.ini , 并搜索“disable_functions”

找开如下代码:

disable_functions = symlink,popepassthru,set_time_limit

PS:注意,你找到的代码,不一定和我的相同,但“disable_functions = ”后面,肯定会带有 set_time_limit

2、修改 php.ini disable_functions 后面的参数,去掉 set_time_limit 即可

disable_functions = symlink,popepassthru

3、重启 php 即可

解决方法2:

使用 error_reporting() 函数,设置PHP的报错级别

代码如下:

@error_reporting (E_ALL & ~E_NOTICE & ~E_WARNING);