大哥云 Gsou
大哥云

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

评论 0 次, 阅读 2825 次
使用 Nginx 系统环境的人多多少少也该遇到过 .user.ini,它比 .htaccess 用的更广,首先要知道,php.ini 是 PHP 的核心配置文件...

使用 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秒),即可被重新加载。

学习要点

首先要了解下 chattr 命令,Linux chattr 命令用于改变文件属性,这项指令可改变存放在 ext2 文件系统上的文件或目录属性,chattr 命令用来改变文件属性,系统不允许对这个文件进行任何的修改,如目录具有这个属性,那么任何的进程只能修改目录之下的文件,不允许建立和删除文件。

最后修改时间:
彧繎叔叔
上一篇 2023年01月20日 03:12
下一篇 2023年02月08日 02:31

相关文章

发表评论

  • 验证码

评论列表

暂无评论