记录我的一些生活写照、无聊的牢骚、内心世界的活动 注册 | 登陆

.USER.INI 文件无法删除的解决办法

.USER.INI 文件无法删除的解决办法

使用 Nginx 系统环境的人多多少少也该遇到过 .user.ini,它比 .htaccess 用的更广,首先要知道,php.ini 是 PHP 的核心配置文件,在 PHP 启动时被读取,按照此说法,不管服务器是 Nginx/Apache/IIS,但凡使用 CGI/FastCGI 来解析 PHP 时,PHP 会优先搜索目录下所有的 .ini 文件,并应用其中的配置,类似于 Apache 的 .htaccess,但语法与 .htacces 不同,跟 php.ini 几乎一致。
.user.ini 文件无法删除解决方法
1、user.ini 文件无法删除,是由于文件权限已经被锁定,需要先解除 user.ini 文件锁定,首先通过命令进入 user.ini 文件所在目录执行以下命令,去掉保护,命令如下:
# 进入所在目录
cd /文件所在目录路径
# 解除 user.ini 文件锁定
chattr -i .user.ini
2、通过 SFTP 手动进入目录删除,或通过 rm 命令来执行删除 .user.ini 文件,命令如下:
# 删除 .user.ini 文件
rm -rf .user.ini
什么是 .user.ini
自 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 文件实际就是一个可以由用户自定义的 php.ini,能够自定义的设置是模式为 PHP_INI_PERDIR 或者 PHP_INI_USER 的设置,除了PHP_INI_SYSTEM 以外的模式都是可以通过 .user.ini 来设置的,是能被动态加载的 INI 文件。
也就是说我修改了 .user.ini 后,不需要重启服务器中间件,只需要等待 user_ini.cache_ttl 所设置的时间(默认为300秒),即可被重新加载。

« 上一篇 | 下一篇 »

发表评论

评论内容 (必填):