php cli 自定义 ini 未加载
php cli custom ini not loading
从命令行使用脚本调用:
/fullpath/php -q -c /fullpath/php.ini /fullpath/script.php
我希望它使用正常的 php.ini 而不是用于 cli 的那个,但是 -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 使用扫描目录配置。
从命令行使用脚本调用:
/fullpath/php -q -c /fullpath/php.ini /fullpath/script.php
我希望它使用正常的 php.ini 而不是用于 cli 的那个,但是 -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 使用扫描目录配置。