【问题标题】:php.ini different from php info (cli only)php.ini 与 php info 不同(仅限 cli)
【发布时间】:2017-05-31 23:34:17
【问题描述】:

我编写了一个脚本来从我们的服务器收集某些配置数据来比较不同的环境。为此,我使用 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 中报告语法错误(作为可能的问题提到的其他问题)

【问题讨论】:

    标签: php configuration zend-server


    【解决方案1】:

    您不能为 CLI 设置 max_execution_time。请参阅“重写的 php.ini 指令”部分中的the manual

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

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

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

    【讨论】:

      【解决方案2】:

      The docs 声明

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

      我认为这个设置在 CLI 中没有任何意义,也不是从 php.ini 中读取的。

      澄清一下:您仍然可以ini_set 它,CLI 会相应地运行,只是似乎没有从php.ini 文件中读取。

      【讨论】:

        猜你喜欢
        • 2013-11-18
        • 1970-01-01
        • 2011-08-14
        • 2014-01-20
        • 1970-01-01
        • 2019-04-23
        • 2017-06-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多