我的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'来处理。 以下是我所做的步骤:
在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:(无)
第一次尝试
===================
在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"