WordPress(Nginx)修改URL后出现白屏死亡(White Screen of Death)求助
WordPress站点崩溃问题分析与修复方案
一、你添加的wp-config.php代码作用
这段代码不会修改任何文件或数据库内容,仅在每次请求时根据访问者的IP动态设置两个WordPress核心常量:
- 当访问者是本地服务器(IP为127.0.0.1或::1),设置
WP_SITEURL和WP_HOME为http://localhost - 当访问者是内网设备(IP以192.168.0.开头),设置为内网IP
http://192.168.0.142 - 其他情况(公网访问),设置为你填写的公网IP
这些常量仅在当前请求生效,不会留下持久修改。
二、当前故障的修复步骤
从错误日志和你提供的wp-blog-header.php内容来看,核心问题是这个文件的代码被重复粘贴了两次,且缺少开头的<?php标签,导致PHP解析错误,wp()函数还未被加载就被调用,引发500错误/白屏。
具体修复操作:
替换损坏的wp-blog-header.php文件
直接用官方WordPress的干净版本覆盖服务器上的对应文件:- 从WordPress官方安装包中提取
wp-blog-header.php,覆盖服务器路径/var/www/html/wp-blog-header.php - 干净的文件内容如下:
<?php /** * Loads the WordPress environment and template. * * @package WordPress */ if ( ! isset( $wp_did_header ) ) { $wp_did_header = true; // Load the WordPress library. require_once __DIR__ . '/wp-load.php'; // Set up the WordPress query. wp(); // Load the theme template. require_once ABSPATH . WPINC . '/template-loader.php'; }
注意开头的
<?php标签是PHP文件的必要标识,不能缺失。- 从WordPress官方安装包中提取
验证核心文件完整性
- 检查
/var/www/html/wp-load.php是否存在且未被篡改,这个文件是WordPress的核心加载入口,损坏会直接导致站点崩溃。 - 确认服务器PHP版本符合WordPress要求(推荐7.4及以上版本)。
- 检查
重新配置公网访问(可选)
如果还要实现内网/公网地址自动切换,建议用更稳妥的方式:- 先在数据库的
wp_options表中,将siteurl和home字段设置为你的公网IP或域名 - 在
wp-config.php中添加以下代码(必须放在require_once(ABSPATH . 'wp-settings.php');这行之前):$remote_ip = $_SERVER['REMOTE_ADDR']; if (strpos($remote_ip, '192.168.0.') !== false || $remote_ip == '127.0.0.1' || $remote_ip == '::1') { define('WP_SITEURL', 'http://192.168.0.142'); define('WP_HOME', 'http://192.168.0.142'); }
这种方式让内网访问自动用内网地址,公网访问则使用数据库中设置的公网地址,避免复杂IP判断逻辑出错。
- 先在数据库的
内容的提问来源于stack exchange,提问作者Bob Loblaw
相关产品推荐
相关产品推荐

