phpinfo.php没有显示额外的PHPconfiguration文件的额外文件夹

我的phpinfo.php没有显示额外的PHPconfiguration文件的额外文件夹。 我在CentOS v6.3 32位上运行Apache v2.4.4(使用PHP DSO)和PHP v5.4.14。 Apache和PHP安装是从源代码编译的。

我没有使用PHP的configuration选项“–with-config-file-scan-dir = PATH”。 (而不会使用,因为我将需要多个文件夹)。

环境variablesPHPRC和Apache指令PHPIniDir与主PHP文件相关,这使我得到了环境variables'PHP_INI_SCAN_DIR'来处理。 以下是我所做的步骤:

第1步 – PHP的设置

在Apache启动之前,需要设置作为OS环境variables的“PHP_INI_SCAN_DIR”。 所以我将以下条目添加到我的/etc/profile.d/php.sh文件中。

 PHP_INI_SCAN_DIR = “在/ usr / local / lib目录/ PHP /自定义”
导出PHP_INI_SCAN_DIR

然后重新启动系统。

现在命令的env | grep PHP','php -i | grep INI'和'php –ini'给了我下面的输出。

=>#env | grep PHP

 PHP_INI_SCAN_DIR =在/ usr / local / lib目录/ PHP /自定义

=>#php -i | grep INI

 PHP_INI_SCAN_DIR => / usr / local / lib / php / custom
 _SERVER [“PHP_INI_SCAN_DIR”] => / usr / local / lib / php / custom

=>#php –ini

configuration文件(php.ini)path:/ usr / local / lib
加载的configuration文件:/usr/local/lib/php.ini
在/ usr / local / lib / php / custom中扫描额外的.ini文件
附加的.ini文件parsing:(无)

第2步 – Apache的设置

第一次尝试

===================

在apache2 / bin / envvars&apache2 / bin / envvars-std文件中添加了以下条目。

有关envvars和envvars-std文件有什么区别的评论?

 PHP_INI_SCAN_DIR = “在/ usr / local / lib目录/ PHP /自定义”
导出PHP_INI_SCAN_DIR

重新启动Apache服务。 但是,从phpinfo.php文件中'扫描该目录以获取其他.ini文件'的值显示为空。

第二次尝试

===================

所以我删除了envvars&envvars-std的条目。 我有默认加载模块mod_env。 我在httpd.conf中添加了以下内容。

 SetEnv PHP_INI_SCAN_DIR“/ usr / local / lib / php / custom”

重新启动Apache服务。 从“phpinfo.php”文件中“扫描此目录以获取其他.ini文件”的值仍显示为空。

第三次尝试

===================

再次,我从httpd.conf中删除条目。 在httpd-vhosts.conf中的VirtualHost的目录部分添加了相同的行。

 SetEnv PHP_INI_SCAN_DIR“/ usr / local / lib / php / custom”

重新启动Apache服务。 从“phpinfo.php”文件中“扫描此目录以获取其他.ini文件”的值仍显示为空。

回答你的一些想法:

  • 是的,我的phpinfo.php文件仅由phpinfo()组成。 这不是一个静态文件。

  • 是的,浏览器caching清理。 我也尝试了另一个浏览器。

最后

那么,谁能告诉我为什么我的phpinfo文件没有显示额外的PHPconfiguration文件的额外的文件夹?

提前致谢。

您必须使用该环境variables集启动apache。 在/etc/profile.d/php.sh设置variables只会为PHP可执行文件本身设置,mod_php5不会使用它。

我刚刚经历了这个怪胎。 使用SetEnv设置variables将不起作用,因为它是在加载mod_php5之后定义的。

在CentOS 6.5中,我发现编辑/etc/sysconfig/httpd允许你为apache进程设置和导出额外的环境variables。 所以尝试添加它:

export PHP_INI_SCAN_DIR="/usr/local/lib/php/custom"