为什么我的 CLI 和 Apache 上的 php 设置不同?

为什么我的 CLI 和 Apache 上的 php 设置不同?

我目前正在设置一个新的 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 的服务器应用程序。

答案1

看起来 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 文件,但可以通过两种方式强制扫描:

  1. 在启动 Apache 之前在 init 脚本中插入以下行

    export PHP_INI_SCAN_DIR=/etc/php.d
    
  2. 将以下内容添加到 Apache 配置文件:

    php_value include_path "/etc/php.d"
    

相关内容