在PHP中将“auto_prepend_file”用于“.user.ini”文件

时间:2014-07-16 10:38:48

标签: php ini

我想在项目的任何页面运行时加载文件variables.php(它只包含变量),这样我就可以在任何地方使用变量。

我创建了一个名为.user.ini的文件(并将其放在根文件夹中):

; Automatically add files before PHP document.
; http://php.net/auto-prepend-file
auto_prepend_file = /Volumes/www/project_name/admin/libs/variables.php

它不起作用。 PHP似乎没有读取.user.ini文件。

默认情况下,php.ini是正确配置的:

user_ini.cache_ttl    300           300
user_ini.filename     .user.ini     .user.ini

我哪里错了?

2 个答案:

答案 0 :(得分:5)

好吧,the manual says it all

  

自PHP 5.3.0起,PHP包括对a上的配置INI文件的支持   每个目录的基础。 这些文件仅由CGI / FastCGI处理   SAPI 即可。此功能废弃了PECL htscanner扩展。

  

如果您使用的是Apache,请使用.htaccess文件获得相同的效果。

......虽然它实际上是指Apache 模块

如果您需要独立于SAPI的自定义设置,我担心您必须使用两者。如果将这些设置保持在最低限度,则可以最大限度地减少维护负担(大多数PHP指令可以在PHP代码本身中提供)。而且,当.htaccess不可用时,您需要确保mod_php设置不会崩溃:

<IfModule mod_php5.c>
    php_value auto_prepend_file /Volumes/www/project_name/admin/libs/variables.php
</IfModule>

答案 1 :(得分:0)

我认为.user.ini应位于项目根文件夹中,例如/Volumes/www/project_name/.user.ini

  

除了主要的php.ini文件外,PHP还会扫描每个文件中的INI个文件   目录,从所请求的PHP文件的目录开始,和   一直到当前文档根目录(如设置中所示)   $_SERVER['DOCUMENT_ROOT'])。如果PHP文件在   文档根目录,只扫描其目录。

.user.ini documentation