首页  >  文章  >  数据库  >  为什么“set_time_limit”和“ini_set(\'max_execution_time\')”在启用了安全模式的远程服务器上无效?

为什么“set_time_limit”和“ini_set(\'max_execution_time\')”在启用了安全模式的远程服务器上无效?

DDD
DDD原创
2024-10-31 09:45:02630浏览

Why are `set_time_limit` and `ini_set('max_execution_time')` ineffective on my remote server with safe mode enabled?

PHP 时间限制函数在远程服务器上无效

使用 set_time_limit(50) 或 ini_set('max_execution_time', 50) 设置时间限制时在本地,检索 max_execution_time 会产生所需的值。然而,在不同的服务器上,它会恢复为默认值(30 秒),导致这些功能无效。

说明

问题的出现是由于 安全模式远程服务器上的设置。在 PHP 的安全模式下,无法使用 ini_set() 修改 max_execution_time 设置。此限制也适用于 set_time_limit()。

解决方法

要解决此问题,有两个选项:

  1. 禁用安全模式:这可以通过修改服务器的配置来完成。但出于安全考虑,一般不建议这样做。
  2. 修改 php.ini: 编辑远程服务器上的 php.ini 文件,并将 max_execution_time 设置为所需的值。

安全模式限制的原因

PHP 中引入了安全模式,通过限制脚本可以执行的某些操作来增强安全性。防止脚本无限期运行就是这些安全措施之一。

注意: PHP 手册明确指出 set_time_limit() 和 ini_set('max_execution_time', 50) 在安全时没有任何作用模式已启用。唯一的解决方法是禁用安全模式或调整 php.ini 文件中的时间限制。

以上是为什么“set_time_limit”和“ini_set(\'max_execution_time\')”在启用了安全模式的远程服务器上无效?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn