Php

未載入 php cli 附加 .ini 文件

  • April 4, 2015

我已經編譯了 PHP 5.3,除了從命令行執行 PHP 外,一切似乎都正常工作。

當我執行時:

# php --ini

它產生這個輸出:

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)

當我創建一個頁面並輸出 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 

我無法弄清楚為什麼在通過 apache 執行 php 而不是在使用 CLI 時載入了額外的 .ini 文件。有沒有人有任何想法?

這是我用來編譯 PHP 的精簡配置:

'./configure' \
'--prefix=/usr' \
'--with-config-file-path=/etc/php5/apache2' \
'--with-config-file-scan-dir=/etc/php5/apache2/conf.d'

我需要為我在命令行上執行的東西載入 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..

由於 Apache 附帶 apache2.conf,其中包括模組指令和 httpd.conf,因此 httpd.conf 實際上是空的。

只需添加:

# Dummy LoadModule directive to aid module installations
# LoadModule dummy_module /usr/lib/apache2/modules/mod_dummy.so

到 httpd.conf 允許 apxs 執行而沒有任何錯誤,並且完整的 php 安裝成功完成。

PDO 驅動程序隨後可通過 CLI 以及 Apache 獲得。

正如radius所暗示的那樣,從本質上講,我沒有使用好的二進製文件。謝謝你的幫助。

我不知道為什麼在 cli 中執行 php 時不使用 config-file-scan-dir (你確定你載入的二進製文件是好的嗎?我的意思是你重建的那個)。

但是您可以使用 php -c /etc/php5/apache2/conf.d 或將 PHP_INI_SCAN_DIR 設置為 /etc/php5/apache2/conf.d 作為解決方法。

引用自:https://serverfault.com/questions/44776