迁移WP站点后新发布文章丢失且无法访问?技术求助
WordPress迁移至独立服务器后发布文章异常的排查方案
这种情况我之前帮朋友排查过好几次,确实大概率和权限相关,但也可能涉及固定链接配置或数据库同步问题,咱们一步步来定位解决:
1. 优先排查目录与文件权限
独立服务器的权限管控比虚拟主机严格得多,WordPress需要特定目录有写入权限才能正常发布文章:
- 通过SSH登录服务器,执行以下命令检查关键目录权限:
正常配置下,# 查看wp-content目录权限 ls -ld wp-content # 查看uploads子目录权限(文章媒体、草稿/发布文件存在这里) ls -ld wp-content/uploadswp-content应为755权限,uploads子目录为775或755(核心是确保web服务器用户,比如www-data(Apache)或nginx(Nginx)拥有写入权限)。 - 如果权限不符,执行命令修正:
# 递归设置wp-content目录权限 chmod -R 755 wp-content # 单独放宽uploads目录权限 chmod -R 775 wp-content/uploads # 修正文件所有者(假设web用户是www-data) chown -R www-data:www-data wp-content
2. 验证数据库用户权限
迁移过程中容易忽略数据库用户的权限配置,导致WordPress无法将文章数据写入wp_posts表:
- 登录数据库管理工具(如phpMyAdmin),找到WordPress对应的数据库,检查当前使用的DB用户是否拥有
INSERT、UPDATE、DELETE权限。 - 如果权限缺失,给该用户分配目标数据库的读写权限(避免直接给全局权限,保障安全性)。
3. 重置固定链接与重写规则
虚拟主机通常默认启用了URL重写,但独立服务器可能未配置,导致新文章的永久链接无法解析:
- 登录WordPress后台,进入「设置」→「固定链接」,先切换为「朴素」格式保存,再切回你原本使用的格式(比如「文章名」)。这会自动重新生成
.htaccess文件(Apache环境)。 - 若使用Nginx服务器,需在站点配置文件中添加WordPress重写规则:
添加后执行location / { try_files $uri $uri/ /index.php?$args; }sudo systemctl restart nginx重启服务生效。
4. 检查数据库是否真的写入了文章
如果以上步骤都无效,直接验证数据是否写入数据库:
- 进入数据库的
wp_posts表(注意前缀可能不是wp_,以你的wp-config.php配置为准),用发布时得到的文章ID进行搜索。- 如果能找到记录:说明是前端读取异常,大概率是缓存或固定链接问题,回到步骤3排查。
- 如果找不到记录:确认
wp-config.php中的数据库连接信息(DB_NAME、DB_USER、DB_PASSWORD、DB_HOST)是否正确,尤其是独立服务器的DB_HOST可能是localhost或127.0.0.1,别和虚拟主机的配置混淆。
5. 排除缓存插件冲突
迁移后若未清空缓存或缓存插件未适配新服务器,可能导致文章列表无法刷新:
- 暂时禁用所有缓存类插件,清空WordPress后台的缓存(如果有),再尝试发布文章测试。
另外还要注意:迁移时是否完整同步了wp_postmeta表?这个表存储文章的元数据,若同步不全也会导致文章无法正常显示。
内容的提问来源于stack exchange,提问作者InvalidSyntax
相关产品推荐
相关产品推荐

