LAMP服务器升级操作系统后文件权限异常引发404错误的批量解决方法咨询
嗨Adrian,碰到这种批量文件权限的问题确实挺头疼的,尤其是400多页的网站手动改太费时间了。我给你几个高效的解决办法,应该能帮你快速搞定:
用SSH命令批量修改文件权限:
直接登录到服务器的命令行,先切换到你的网站根目录(比如cd /var/www/html,换成你实际的网站路径),然后执行这条命令:find . -type f -exec chmod 644 {} \;
这里的644对应文件所有者拥有读写权限(rw-),组用户和其他用户拥有读权限——这样既满足了你要把权限从rwx改成rw-的需求,又能保证Apache服务器进程可以正常读取文件,避免404错误。如果你确实需要严格只给所有者rw-权限(其他用户完全无权限),可以把命令里的644换成600,但要注意这样可能会导致服务器无法读取文件,所以更推荐644。排查权限异常的根源(避免后续再出问题):
OS升级后出现权限问题,大概率是Apache的运行用户/组发生了变化。你可以先查看当前Apache的运行用户:ps aux | grep apache(如果是CentOS等系统可能用ps aux | grep httpd)
然后检查网站文件的所有者是否和这个用户匹配。如果不匹配,可以用这条命令批量修改文件所有者:chown -R www-data:www-data /var/www/html
把www-data换成你查到的Apache运行用户/组,路径换成你的网站目录,这样从根源上匹配权限,能避免以后再出现类似问题。用Krusader批量修改(图形化方式):
如果你习惯用Krusader操作,其实它本身支持批量权限修改:选中所有需要调整的文件(按Ctrl+A),右键点击选择「属性」或「权限设置」,在弹出的窗口里直接设置你需要的权限,点击确认就能批量应用,不用一个个手动改。
另外补充一下,系统升级后权限异常通常是因为升级过程中重置了系统服务的配置、改变了文件系统的默认权限规则,或者调整了Apache的运行身份,导致之前的权限设置不再适配新环境。
备注:内容来源于stack exchange,提问作者Adrian

