WordPress 主题在线编辑报错 loopback_request_failed 完整解决

11次阅读
没有评论

报错翻译

无法与站点通信来检查致命错误,因此 PHP 修改已被回滚。您需要采用其他方式(如 SFTP)上传您修改的 PHP 文件。

报错核心原因

WordPress 自带代码安全自检机制:在线编辑保存 PHP 代码后,WP 会立刻发起一次 ** 本地回环请求(Loopback)** 访问自己网站,检测修改后的代码是否直接导致网站崩溃白屏。

  1. 服务器禁止本机 IP 访问自身网站(防火墙、安全组、nginx/apache 防盗链、hosts 解析异常)
  2. 刚改的 PHP 语法本身有错,自检访问直接 500 报错,WP 判定代码危险自动撤销修改
  3. 主机禁用 fsockopen / cURL / file_get_contents 回环请求函数
  4. 站点域名 SSL 证书异常、重定向死循环,本机请求打不开网页
  5. 宝塔面板防火墙、云服务器安全组拦截 127.0.0.1 内网访问

方案一:临时绕过在线编辑器限制(最简单)

方法 1 直接禁用代码编辑自检(推荐)

打开网站根目录 wp-config.php,添加一行:

php

运行

define( 'DISALLOW_FILE_EDIT', false );
define( 'WP_SITEURL', 'https://你的域名' );
// 关闭回环检测校验
define( 'CORE_UPGRADE_SKIP_NEW_BUNDLED', true );

若写 DISALLOW_FILE_EDIT = true彻底关闭后台主题文件编辑入口,适合生产环境防篡改。

方法 2 放弃后台在线编辑

使用 FTP/SFTP/ 宝塔文件管理器 直接修改主题目录文件:

wp-content/themes/你的主题名/

改完直接覆盖上传,不会触发 WP 回滚检测,这是官方提示的标准方案。

方案二:修复服务器回环请求失败(根治问题)

1. 检查服务器 hosts 解析

Linux 服务器编辑 /etc/hosts

bash

运行

vim /etc/hosts

添加本机域名指向内网 IP(替换成你服务器内网 IP + 域名)

plaintext

127.0.0.1 你的网站域名

2. 放行防火墙 / 安全组

  • 宝塔面板:防火墙 → 放行 80、443 端口,关闭拦截内网访问规则
  • 阿里云 / 腾讯云:服务器安全组入方向放行 80/443,出站不限制本机访问
  • 关闭 nginx/apache 防盗链、IP 黑白名单拦截 127.0.0.1

3. 开启 PHP 必要函数

宝塔→PHP 设置→禁用函数,删除这几项:

fsockopencurl_execfile_get_contents

保存重启 PHP 服务。

4. 排查网站重定向与 SSL

  1. 后台 设置 – 常规,WordPress 地址、站点地址必须完全一致,不能一个 http 一个 https
  2. 不要存在 Nginx 强制跳转死循环,配置正确 SSL 证书
  3. 伪静态规则不要拦截本机 127.0.0.1 访问

方案三:代码改错后再保存

大概率是你修改的 PHP 存在语法错误(少分号、括号不匹配、函数写错),自检访问直接 500,WP 强制回退:

  1. 先把刚才修改的内容撤销
  2. 分段少量修改代码,不要一次性大篇幅改写
  3. 改一小段保存一次,就能定位到哪一行语法出错

生产环境最佳建议

网站上线后直接关闭后台文件编辑,杜绝木马篡改漏洞:

wp-config.php 写入:

php

运行

define('DISALLOW_FILE_EDIT', true);
define('DISALLOW_FILE_MODS', true);

后续所有主题、插件代码修改全部用 FTP / 面板文件管理操作。

正文完
可以使用微信扫码关注公众号(ID:xzluomor)
post-qrcode
 0
评论(没有评论)
验证码