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 驱动程序,我猜这是问题的根源。
任何建议都将受到欢迎。
问题不在于 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 获得。
正如半径所建议的,本质上,我没有使用好的二进制文件。感谢您的帮助。