0%

.user.ini文件

场景

.user.ini文件放置于PHP项目的目录下,用于对具体项目的进行更灵活的配置。常见的文件内容如下:

1
2
;Limit the files that can be accessed by PHP to the specified directory-tree, including the file itself.
open_basedir=/home/test/pro:/tmp/:/proc/:/var/tmp/

open_basedir限制PHP对于指定文件的访问权限

介绍

自5.3.0版本起,PHP加入了对每个目录下的INI配置文件的支持,但仅在CGI/FastCGI SAPI下被支持。
除了主要的配置文件php.ini,PHP会浏览每个目录,从当前请求文件所属目录一直上溯到$_SERVER['DOCUMENT_ROOT'],如果当前文件在[DOCUMENT_ROOT]外,则只会浏览当前目录。浏览完所得有效配置文件,会覆盖php.ini中的配置,作为当前配置。

  • 若请求文件目录,和root目录的.user.ini文件分别包含相同的配置,则以文件目录为准
  • 具体什么配置可以放在.user.ini文件中,php.ini中的配置(引用3)有一列”Changeable”列,PHP_INI_PERDIR和PHP_INI_USER可以写在.user.ini

(大部分翻译自官网,加入少部分自己理解)

生效

.user.ini是默认文件名,在php.ini中可以配置

1
2
;TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes)
;user_ini.cache_ttl = 300

默认修改后5分钟生效,也可直接重启PHP-FPM

Reference & Thanks