Apache-2.2

為什麼我在 CLI 和 Apache 上的 php 設置不同?

  • September 12, 2013

我目前正在設置一個新的 Mac Mini Lion 伺服器。我現在正在安裝 mongodb 和 apc 擴展。我想在 /etc/php.d 目錄中包含擴展的 ini 設置(類似於我在 centOS 上的伺服器設置)

我試著做

php -i | grep php.d

它給了我

Scan this dir for additional .ini files => /etc/php.d/
Additional .ini files parsed => /etc/php.d/apc.ini,
/etc/php.d/mongo.ini
PHP_INI_SCAN_DIR => /etc/php.d/
_SERVER["PHP_INI_SCAN_DIR"] => /etc/php.d/

但是當我在 php 腳本上嘗試 phpinfo() 時,我得到了:

Configuration File (php.ini) Path   /etc
Loaded Configuration File   /private/etc/php.ini
Scan this dir for additional .ini files     (none)
Additional .ini files parsed    (none) 

CLI 和 php 腳本上的 php 環境與 php 相同

/usr/bin/php

並在 php 腳本頁面上

路徑 /usr/bin:/bin:/usr/sbin:/sbin

我應該在apache方面設置什麼嗎?

我正在考慮堅持使用 mac 安裝中的內置 apache 和 php,因為我喜歡 Mac 中的伺服器應用程序。

看起來 PHP CLI 正在使用/etc/php.ini文件,請通過以下方式驗證:

php -i | grep 'Configuration File'

在 Apache 載入/private/etc/php.ini文件時:

Configuration File (php.ini) Path   /etc
Loaded Configuration File   /private/etc/php.ini

通過指令指向您想要的正確php.ini文件PHPINIDir


編輯

不知道為什麼phpinfo()忽略額外的 .ini 文件,但可以通過 2 種方式強制掃描:

  1. 在初始化腳本中啟動 Apache 之前插入以下行
export PHP_INI_SCAN_DIR=/etc/php.d
  1. 將以下內容添加到 Apache 配置文件中:
php_value include_path "/etc/php.d"

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