You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress多站点迁移服务器后新增站点无法登录:空白页及HTTP 500错误

WordPress Multisite: Blank Dashboard/500 Error After Migration (New Sites Can't Login)

我碰到过好几个用户在迁移WordPress多站点后遇到这种棘手的问题——能建新站点但登不上仪表盘,要么空白要么跳500,既然你已经排查过.htaccess,咱们一步步来挖根儿解决:

  • 先抓PHP错误日志(最核心的线索)
    HTTP 500和空白页大多是PHP层面的问题,而且很多服务器默认会关闭错误输出,导致看不到具体原因。你可以这么做:

    1. 去新服务器的日志目录找PHP错误日志,Apache一般在/var/log/apache2/,Nginx在/var/log/nginx/;
    2. 如果找不到,临时开启WordPress的调试模式:在wp-config.php里添加这两行代码:
      define('WP_DEBUG', true);
      define('WP_DEBUG_LOG', true);
      
      然后刷新错误页面,去wp-content/debug.log里看具体报错——比如是不是插件冲突、文件权限不对,或者数据库里的站点URL没更全?
  • 核对数据库里的站点URL配置
    多站点的子站点信息藏在几个关键表里,很容易在迁移时漏改:

    1. 检查wp_blogs表(如果你的数据库前缀不是wp_就对应修改)里每个子站点的domain和path字段,确保指向新服务器的地址;
    2. 每个子站点对应的wp_{blog_id}_options表(比如子站点ID是2就是wp_2_options)里的siteurl和home字段,必须和新站点的访问URL一致;
    3. 主站点的wp_options表(siteurl、home)和wp_sitemeta表(siteurl)也要再核对一遍。
  • 修复文件权限问题
    迁移后文件权限大概率会乱套,这是500错误的常见诱因:

    • 所有文件权限设为644,目录权限设为755;
    • 确保服务器的运行用户(比如www-data、apache)拥有wp-content/、wp-config.php这些关键文件的读写权限——不然PHP没法生成缓存、写入日志,直接就崩了。
  • 排查插件/主题冲突
    先把所有插件临时禁用:直接把wp-content/plugins/目录改名为plugins-disabled,然后切换到WordPress默认主题(比如Twenty Twenty-Four),再试试登录仪表盘。如果能进去,再一个个恢复插件,找到搞事情的那个。
    注意:网络激活的插件也要排查,主站点的插件可能会影响所有子站点。

  • 重新生成.htaccess(再确认一遍)
    虽然你已经检查过,但多站点的.htaccess规则和单站点不一样,容易写错。如果能进主站点的网络仪表盘,去「设置→网络设置」里复制官方生成的规则覆盖现有文件;如果进不去,直接用标准规则:
    子目录型多站点:

    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    
    # add a trailing slash to /wp-admin
    RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
    
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]
    RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
    RewriteRule ^(.*\.php)$ $1 [L]
    RewriteRule . index.php [L]
    

    子域名型多站点:

    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    
    # add a trailing slash to /wp-admin
    RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
    
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]
    RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
    RewriteRule ^(.*\.php)$ $1 [L]
    RewriteRule . index.php [L]
    

    改完后记得把.htaccess权限设为644,确保服务器能读取。

  • 检查PHP版本和扩展
    新服务器的PHP版本是不是和旧服务器差太多?比如旧服务器用PHP7.4,新服务器用PHP8.2,有些老插件/主题可能扛不住高版本PHP。另外,确认WordPress必需的PHP扩展都开启了——比如mysqli、curl、gd,缺了这些也会直接500。

内容的提问来源于stack exchange,提问作者Revathy Murugan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:00:01