php cli 未加载附加 .ini 文件

Ste*_*odd 5 php configuration command-line-interface

我已经编译了 PHP 5.3,除了从命令行运行 PHP 时,一切似乎都工作正常。

当我跑步时:

# php --ini
Run Code Online (Sandbox Code Playgroud)

它产生这样的输出:

Configuration File (php.ini) Path: /etc/php5/apache2
Loaded Configuration File:         /etc/php5/apache2/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)
Run Code Online (Sandbox Code Playgroud)

当我创建页面并输出 phpinfo(); 时 我得到这个输出:

Configuration File (php.ini) Path: /etc/php5/apache2
Loaded Configuration File:         /etc/php5/apache2/php.ini
Scan for additional .ini files in: /etc/php5/apache2/conf.d
Additional .ini files parsed:      /etc/php5/apache2/conf.d/curl.ini, /etc/php5/apache2/conf.d/gd.ini, /etc/php5/apache2/conf.d/imagick.ini, /etc/php5/apache2/conf.d/memcache.ini, /etc/php5/apache2/conf.d/mhash.ini, /etc/php5/apache2/conf.d/ming.ini, /etc/php5/apache2/conf.d/mysql.ini, /etc/php5/apache2/conf.d/mysqli.ini, /etc/php5/apache2/conf.d/pdo.ini, /etc/php5/apache2/conf.d/pdo_mysql.ini, /etc/php5/apache2/conf.d/pdo_sqlite.ini, /etc/php5/apache2/conf.d/pspell.ini, /etc/php5/apache2/conf.d/recode.ini, /etc/php5/apache2/conf.d/snmp.ini, /etc/php5/apache2/conf.d/sqlite.ini, /etc/php5/apache2/conf.d/tidy.ini, /etc/php5/apache2/conf.d/xmlrpc.ini, /etc/php5/apache2/conf.d/xsl.ini 
Run Code Online (Sandbox Code Playgroud)

我不明白为什么当通过 apache 执行 php 时会加载额外的 .ini 文件,而不是在使用 CLI 时加载。有人有什么想法吗?

这是我用来编译 PHP 的精简配置:

'./configure' \
'--prefix=/usr' \
'--with-config-file-path=/etc/php5/apache2' \
'--with-config-file-scan-dir=/etc/php5/apache2/conf.d'
Run Code Online (Sandbox Code Playgroud)

我需要为我在命令行上运行的东西加载 PDO mysql 驱动程序,我猜这是问题的根源。

任何建议都将受到欢迎。

Ste*_*odd 1

问题不在于 php 最后没有包含额外的 .ini 文件。

我重新编译 php 并注意到“make install”命令未能完成。产生的错误是:

apxs:Error: Activation failed for custom /etc/apache2/httpd.conf file..
apxs:Error: At least one `LoadModule' directive already has to exist..
Run Code Online (Sandbox Code Playgroud)

由于 Apache 附带了 apache2.conf,其中包括模块指令和 httpd.conf,因此 httpd.conf 实际上是空的。

只需添加:

# Dummy LoadModule directive to aid module installations
# LoadModule dummy_module /usr/lib/apache2/modules/mod_dummy.so
Run Code Online (Sandbox Code Playgroud)

httpd.conf 允许 apxs 运行而没有任何错误,并且完整的 php 安装成功完成。

然后,PDO 驱动程序可以通过 CLI 以及 Apache 获得。

正如半径所建议的,本质上,我没有使用好的二进制文件。感谢您的帮助。