php.ini不同于php信息(仅限cli)

时间:2017-05-31 15:22:21

标签: php configuration zend-server

我编写了一个脚本来从我们的服务器收集某些配置数据,以比较不同的环境。为此,我使用php -i命令获取PHP设置。

我现在注意到' php -i'的输出没有显示与加载的php.ini文件中相同的值。

# /usr/local/zend/bin/php -c /usr/local/zend/etc/php.ini -i | grep -E -e 'Configuration File|max_exec'

Configuration File (php.ini) Path => /usr/local/zend/etc
Loaded Configuration File => /usr/local/zend/etc/php.ini
max_execution_time => 0 => 0

# cat /usr/local/zend/etc/php.ini | grep max_exec
max_execution_time=1200

请注意,这只是php CLI,不涉及服务器。我验证了以下内容:

  • 扫描了其他.ini文件但其中没有一个包含 max_execution_time 指令。
  • php -i 不会在php.ini中报告语法错误(因为其他问题可能会出现问题)

2 个答案:

答案 0 :(得分:0)

The docs声明

  

从命令行运行PHP时,默认设置为0。

我不认为此设置在CLI中有任何意义,并且无法从php.ini中读取。

为了澄清:您仍然可以ini_set它并且CLI将相应地运行,它似乎无法从php.ini文件中读取。

答案 1 :(得分:0)

您无法为CLI设置max_execution_time。请参阅" 重写 php.ini 指令"部分中的the manual

  

shell环境中的PHP往往用于比典型的基于Web的脚本更多样化的目的,并且由于这些脚本可以长时间运行,因此最大执行时间设置为无限制。

换句话说,无论您在max_execution_time中为php.ini设置什么,CLI都会将其覆盖为无限制。

如果要限制脚本的执行时间,可以在脚本本身中使用set_time_limit()函数。