PHP站点自动更新脚本误删blog目录WordPress安装如何解决
解决方案
1. 修正忽略目录匹配规则
- 首先确认站点根目录下的
blog目录大小写和你写入配置的字符完全一致,Linux服务器对路径大小写敏感,若实际目录名为Blog,小写的blog配置会失效。 - 部分脚本的忽略规则需匹配完整相对路径,可修改
_feed_config.php的配置为多形式匹配,覆盖不同判断逻辑:public static $dirsIgnore = array('__tmp', 'blog', './blog', '/blog');
2. 校验更新脚本的删除逻辑
打开_update.php,搜索包含unlink(删除文件)、rmdir(删除目录)、glob/scandir(遍历目录)的代码段,确认遍历逻辑中是否有调用$dirsIgnore做排除判断。
如果没有对应的排除规则,可直接在删除执行代码前添加拦截逻辑,将下方代码插入到删除操作的循环体内即可:
// 拦截blog目录的删除操作,其中$path为脚本中当前待操作的文件/目录路径变量,可根据脚本实际变量名替换 if (strpos($path, 'blog') !== false) { continue; }
3. 兜底权限方案(无代码修改成本)
如果调整代码无法生效,可直接给blog目录设置只读权限,从系统层面禁止删除操作:
- Linux服务器执行命令:
chmod -R 555 你的站点根目录绝对路径/blog - Windows服务器右键点击
blog目录,依次选择「属性」-「安全」,取消对应运行脚本的用户的写入、修改、删除权限。
后续需要更新WordPress时,再临时将权限改回可写即可。
内容的提问来源于stack exchange,提问作者lemans455
相关产品推荐
相关产品推荐

