Php
未載入 php cli 附加 .ini 文件
我已經編譯了 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 作為解決方法。