WordPress 后台插件安装与更新失败:cURL error 28、下载失败、维护模式卡住怎么办
把 WordPress 部署在国内云服务器上的站长,几乎都见过这一行红字:「安装失败:下载失败。cURL error 28: Operation timed out after 10001 milliseconds」。插件页搜不出东西、主题列表一直转圈、点了更新以后整站变成「Briefly unavailable for scheduled maintenance. Check back in a minute.」,后台每个页面都要加载十几秒。有人换了好几次本地网络,问题依旧。
原因在于 WordPress 的插件搜索、下载与更新都是服务器自己去访问 api.wordpress.org 和 downloads.wordpress.org,跟你本地电脑走什么网络没有关系;而后台加载慢,则多半是浏览器在等 Gravatar 头像、谷歌字体这类外部资源。前者要在服务器上解决,后者才和本地线路有关。下面先把两条链路分开,再给出分步处理办法。各托管商对出站连接的限制不同,以服务商最新说明为准。
服务器端与浏览器端的区别
看懂这张表,就知道为什么在本地开了线路,后台照样装不了插件:下载请求是从服务器出去的,本地线路管不到服务器。反过来,服务器在海外的站点通常装插件没问题,但站长在国内打开后台仍然会因为头像、字体等外部资源而变慢。两边的问题不要混在一起处理。
| 环节 | 由谁发起 | 访问的地址 | 解决方向 |
|---|---|---|---|
| 插件与主题搜索 | 服务器 | api.wordpress.org | 服务器出站连接或代理 |
| 插件下载与更新 | 服务器 | downloads.wordpress.org | 服务器代理或手动上传 |
| 核心版本更新 | 服务器 | WordPress 官方下载地址 | WP-CLI 或手动更新 |
| 后台头像与字体 | 浏览器 | Gravatar、谷歌字体等 | 本地线路或替换资源 |
| 插件授权验证 | 服务器 | 各插件厂商的接口 | 看厂商接口是否可达 |
| 编辑器区块加载 | 浏览器 | 站点自身与部分外部资源 | 本地线路与缓存 |
从装不上到正常更新:分步操作
- 第一步:先把本地网络线路准备好。管理后台前先连上刺猬VPN,自定义用户名和密码即可匿名注册,不需要邮箱、不需要手机号,免费节点永久免费、不限流量、不限速,它解决的是浏览器端的后台加载慢,也方便你从 wordpress.org 直接下载插件压缩包;
- 第二步:判断服务器能否访问官方接口。登录服务器执行 curl -I https://api.wordpress.org,十秒内没有返回或者超时,就说明服务器出站访问官方接口受阻,后台装不了插件的根源就在这里;
- 第三步:手动安装插件。在本地浏览器打开 wordpress.org 的插件页,点「Download」下载 zip,回到后台「插件 → 安装插件 → 上传插件」选择文件安装,这条路完全不依赖服务器出站连接;
- 第四步:用 WP-CLI 批量处理。服务器能临时走代理时,执行 wp plugin install 插件名 --activate 安装,wp plugin update --all 更新全部插件,wp core update 更新核心,比后台点按钮更快,失败时也能看到完整报错;
- 第五步:给 WordPress 配置出站代理。如果服务器上有可用的 HTTP 代理,在 wp-config.php 里写入 WP_PROXY_HOST、WP_PROXY_PORT,需要认证时再加 WP_PROXY_USERNAME 与 WP_PROXY_PASSWORD,并用 WP_PROXY_BYPASS_HOSTS 排除 localhost 和自己的域名;
- 第六步:处理维护模式。更新中断后站点卡在维护提示,用 FTP 或文件管理器删掉网站根目录下的 .maintenance 文件即可恢复;
- 第七步:处理权限问题。后台弹出要求填写 FTP 信息的页面,说明 PHP 进程没有写入权限,把 wp-content 目录的属主改成运行 PHP 的用户,或在 wp-config.php 里加入 define('FS_METHOD', 'direct');
- 第八步:更新前做备份。数据库导出一份,wp-content 目录打包一份,尤其是大版本更新与页面构建器类插件,出问题时能在几分钟内回滚;
- 第九步:更新后清缓存。缓存插件、CDN 与浏览器缓存都清一次,再用无痕窗口打开前台检查页面是否正常。
按现象排查
WordPress 的报错文字一般很直接,照着原文对号入座即可,中文后台显示的是翻译后的提示,搜索解决办法时切换成英文原文更容易找到资料。必要时在 wp-config.php 里打开 WP_DEBUG 与 WP_DEBUG_LOG,详细错误会写进 wp-content/debug.log。
- cURL error 28:服务器访问官方接口超时,改用手动上传或者为服务器配置出站代理;
- 「An unexpected error occurred. Something may be wrong with WordPress.org or this server's configuration.」:同样是服务器连不上官方接口,插件搜索与主题列表会一起失效;
- cURL error 60 证书问题:服务器的根证书过旧,更新系统的 CA 证书包;
- 「Another update is currently in progress.」:上一次更新的锁没释放,等十五分钟自动过期,或者在数据库 options 表删除 core_updater.lock 一行;
- 「Could not create directory」:目录没有写入权限,检查 wp-content/upgrade 与 plugins 目录的属主和权限;
- 更新后白屏或者 500 错误:新版插件与 PHP 版本或其他插件冲突,通过 FTP 把该插件目录改名即可停用,再逐个排查;
- 后台每页都很慢:浏览器在等外部头像与字体,开启本地线路或用插件替换这些资源;
- 更新后后台提示 403:安全插件或服务器防火墙拦截了请求,按 403 的排查方法逐层检查。
线路与套餐怎么选
需要强调的是,刺猬VPN装在你的电脑和手机上,作用范围是本地设备,不会改变服务器的出站网络。它能让后台加载更顺、让你在本地下载插件压缩包和查阅官方文档,服务器端的下载问题仍要靠手动上传、WP-CLI 或服务器自己的代理配置解决。「不限速」只表示不对账号设速率上限,实际速度受本地网络与节点负载影响。
| 对比项 | 免费节点 | 时长套餐 | 流量包 |
|---|---|---|---|
| 适合场景 | 偶尔登录后台、下载插件 | 每天维护多个站点 | 集中改版的一两周 |
| 流量规则 | 永久免费、不限流量 | 有效期内不限流量 | 用多少扣多少,到期未用完清零 |
| 速度规则 | 不限速 | 不限速 | 不限速 |
| 作用范围 | 本地浏览器与下载 | 本地浏览器与下载 | 本地浏览器与下载 |
| 断线保护 | 支持 Kill Switch | 支持 Kill Switch | 支持 Kill Switch |
| 多设备 | 一个账号多设备在线 | 一个账号多设备在线 | 一个账号多设备在线 |
多站点与托管环境的差别
虚拟主机和面板类环境通常不允许修改系统证书或配置代理,这时手动上传是最稳的办法,也可以在本地用 WP-CLI 配合 SSH 远程执行。云服务器的自由度最高,可以按上面的方法配置代理与权限,但要注意安全组是否限制了出站端口。托管型 WordPress 平台大多自带更新机制,后台的更新按钮可能被隐藏,由平台统一推送,自己不必处理。
多站点网络里,插件只能由超级管理员在「网络管理」中安装和更新,子站点管理员看不到安装按钮,这不是故障。网络启用的插件会对所有子站点生效,更新前先在一个测试子站点验证。站点数量多时,用 WP-CLI 的 --url 参数逐个处理,或者写一个脚本批量执行,比逐个登录后台效率高得多。另外,有条件的话准备一个与正式站同配置的测试站,用插件或面板一键复制正式站,所有更新先在测试站跑一遍,确认前台页面、表单提交与支付流程都正常,再同步到正式站。这一步多花十几分钟,往往能省下半夜回滚的几个小时。
自动更新与安全的取舍
WordPress 默认会自动安装小版本与安全更新,插件和主题的自动更新则需要在列表页逐个开启。安全类插件、表单插件这些常被攻击的组件建议打开自动更新,漏洞公开后几小时内就会有人批量扫描;页面构建器、电商与会员类插件改动大、牵连多,建议关闭自动更新,在测试环境验证后再手动升级。
服务器连不上官方接口还有一个隐患:自动更新会默默失败,后台不一定有明显提示,站点就这样停留在有漏洞的旧版本上。所以即使暂时解决不了出站问题,也要定期登录后台查看「仪表盘 → 更新」页面,或者用 WP-CLI 执行 wp plugin list --update=available 列出待更新的插件,再集中手动处理。长期没有维护的插件即使能装上也要谨慎,作者停更多年的插件更容易出现兼容与安全问题,能找到替代品就尽早替换。
和其他建站问题的分工
插件更新后后台出现 403、某些页面被拦截,常见原因是安全插件、服务器防火墙或 CDN 规则误判,逐层排查的方法见 网站 403 Forbidden 错误排查。
很多主题和页面构建器默认从谷歌字体加载字体文件,访客在国内打开前台会卡在白屏几秒,这个问题与插件更新无关,但常常在更新主题后突然出现,替换与本地托管的办法见 谷歌字体加载慢的解决办法。前台字体问题影响的是所有访客,比后台慢更值得优先处理。
常见报错速查表
| 现象 | 原因 | 解决办法 |
|---|---|---|
| cURL error 28 | 服务器访问官方接口超时 | 手动上传或配置出站代理 |
| An unexpected error occurred | 服务器连不上 wordpress.org | 同上,检查出站连接 |
| Briefly unavailable for scheduled maintenance | 更新中断残留维护文件 | 删除根目录 .maintenance |
| Another update is currently in progress | 更新锁未释放 | 等待过期或删除 core_updater.lock |
| Could not create directory | 目录无写入权限 | 修正属主或设置 FS_METHOD |
| 更新后 500 错误 | 插件与 PHP 或其他插件冲突 | 改名插件目录后逐个排查 |
高频问答
- 问:本地开了线路为什么还是装不了插件?答:插件下载由服务器发起,本地线路管不到服务器,要用手动上传或服务器代理;
- 问:手动上传插件安全吗?答:只从 wordpress.org 或插件官方渠道下载就安全,不要用来路不明的破解版;
- 问:自动更新要不要打开?答:小版本和安全更新建议打开,大版本与页面构建器类插件建议先备份再手动更新;
- 问:服务器在海外也会遇到这些问题吗?答:插件下载一般正常,但国内管理员打开后台仍可能因外部资源而变慢;
- 问:维护模式删掉文件后插件还要重装吗?答:先看插件是否已更新到新版本,版本号不对就重新上传安装;
- 问:WP-CLI 需要额外安装吗?答:需要,多数云服务器可以直接下载安装,部分面板已自带,以服务商说明为准。
让 WordPress 后台维护变轻松
WordPress 插件安装失败、cURL error 28、维护模式卡住,根源大多在服务器出站连接,而后台加载慢则来自浏览器端的外部资源。分清两条链路以后,服务器端用手动上传、WP-CLI 或代理配置解决,浏览器端用本地线路或替换外部资源解决,再加上更新前备份、更新后清缓存的习惯,后台维护就会顺手很多。
刺猬VPN采用 HTTPS+AES 加密传输,支持自定义用户名和密码匿名注册,不需要邮箱和手机号;免费节点永久免费、不限流量、不限速,适合偶尔登录后台和下载插件;时长套餐有效期内不限流量、不限速,适合每天维护多个站点的站长,客户端带断线保护与按域名分流,一个账号支持多设备同时在线。各托管商的出站规则以服务商最新说明为准,实际可用性取决于当前网络环境。
换刺猬VPN告别连接烦恼:一键连接、连接稳定
刺猬VPN提供永久免费节点,不限流量;无需邮箱,自定义用户名即可匿名注册。一个账号支持多设备同时在线,实际可用性取决于当前网络环境。