网站根目录下的 .user.ini 文件

原创 tiangr  2017-02-24 20:34  阅读 215 次

问题的引出:

今天在宝塔的控制面板添加网站之后,发现出现了open_basedir restriction in effect的错误 ,我查了PHP.ini 配置,发现这个参数并没有定义,再查看phpinfo,发现open_basedir 这个配置定义在Local_value 本地变量中,我找了很久,才发现原来这个变量被定义在了网站根目录下的 .user.ini 文件里。所以,本文就介绍一下PHP 读取ini文件的顺序,以及.user.ini的一些知识。

http://php.net/manual/zh/configuration.file.per-user.php

自 PHP 5.3.0 起,PHP 支持基于每个目录的 .htaccess 风格的 INI 文件。此类文件被 CGI/FastCGI SAPI 处理。此功能使得 PECL 的 htscanner 扩展作废。如果使用 Apache,则用 .htaccess 文件有同样效果。

除了主 php.ini 之外,PHP 还会在每个目录下扫描 INI 文件,从被执行的 PHP 文件所在目录开始一直上升到 web 根目录($_SERVER['DOCUMENT_ROOT'] 所指定的)。如果被执行的 PHP 文件在 web 根目录之外,则只扫描该目录。

在 .user.ini 风格的 INI 文件中只有具有 PHP_INI_PERDIRPHP_INI_USER 模式的 INI 设置可被识别。

两个新的 INI 指令,user_ini.filenameuser_ini.cache_ttl 控制着用户 INI 文件的使用。

user_ini.filename 设定了 PHP 会在每个目录下搜寻的文件名;如果设定为空字符串则 PHP 不会搜寻。默认值是 .user.ini

user_ini.cache_ttl 控制着重新读取用户 INI 文件的间隔时间。默认是 300 秒(5 分钟)。

如果你使用Apache,使用.htaccess 文件可以取得相同的作用。

需要说明的是,这个只作用在Apache的模块模式,如果你在Apache CGI/FastCGI服务器环境中,在 .htaccess 文件里写入PHP指令,这个指令将会出现500错误,因此,你不能简单地在这两种环境里创建配置文件。

http://www.php.net/manual/en/ini.list.php 关于"PHP_INI_PERDIR" 和 "PHP_INI_USER"

特别提示:本站资源全部免费下载,因服务器需经费维护,文中部分外链点击后会进入广告,请耐心等待5秒即可跳过广告进入目标页面。如遇页面外链打不开或下载地址失效,您可以在评论中指出错误,或扫描页面底部二维码。
本文地址:http://www.tiangr.com/wang-zhan-gen-mu-lu-xia-de-user-ini-wen-jian.html
版权声明:本文为原创文章,版权归 tiangr 所有,欢迎分享本文,转载请保留出处!

发表评论


表情