PHP CLI 自定义 ini 未加载


php cli custom ini not loading

脚本

从命令行调用:

/fullpath/php -q -c /fullpath/php.ini /fullpath/script.php

我希望它使用普通的 php.ini而不是 cli 的 php,但 -c 标志不起作用。

什么原因导致这种情况?

您可以检查哪些配置文件实际加载了--ini开关。

这是我的正常配置的样子:

krakjoe@fiji:/usr/src/php-src$ php --ini

收益 率:

Configuration File (php.ini) Path: /etc
Loaded Configuration File:         /etc/php-cli.ini
Scan for additional .ini files in: /etc/php.d
Additional .ini files parsed:      /etc/php.d/apcu.ini,
/etc/php.d/auto.ini,
/etc/php.d/autostrict.ini,
/etc/php.d/ds.ini,
/etc/php.d/inspector.ini,
/etc/php.d/memcached.ini,
/etc/php.d/mongodb.ini,
/etc/php.d/mysql.ini,
/etc/php.d/opcache.ini,
/etc/php.d/pdo.ini,
/etc/php.d/uopz.ini,
/etc/php.d/xdebug.ini,
/etc/php.d/yaml.ini

请注意,它加载php-cli.ini,因为它存在并且我们处于cli中。

如果我们这样做:

krakjoe@fiji:/usr/src/php-src$ php -c php.ini-development --ini

我们得到:

Configuration File (php.ini) Path: /etc
Loaded Configuration File:         /usr/src/php-src/php.ini-development
Scan for additional .ini files in: /etc/php.d
Additional .ini files parsed:      /etc/php.d/apcu.ini,
/etc/php.d/auto.ini,
/etc/php.d/autostrict.ini,
/etc/php.d/ds.ini,
/etc/php.d/inspector.ini,
/etc/php.d/memcached.ini,
/etc/php.d/mongodb.ini,
/etc/php.d/mysql.ini,
/etc/php.d/opcache.ini,
/etc/php.d/pdo.ini,
/etc/php.d/uopz.ini,
/etc/php.d/xdebug.ini,
/etc/php.d/yaml.ini

这次没有加载php-cli.ini,指定的是,但扫描目录中的所有文件也是如此。

最后,如果我们这样做:

krakjoe@fiji:/usr/src/php-src$ php -c php.ini-development -n --ini

我们得到:

Configuration File (php.ini) Path: /etc
Loaded Configuration File:         /usr/src/php-src/php.ini-development
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)

因此,添加额外的开关-n 会阻止 PHP 使用扫描目录配置。