点了「更新插件」,页面刷新后整站只剩一句话:Briefly unavailable for scheduled maintenance. Check back in a minute. 一分钟过去了,十分钟也过去了,还是这句。后台也进不去。这个状态不难解,但很多人不知道它是怎么来的,解完过几天又中招。
它为什么会卡住
WordPress 在执行更新前会往站点根目录写一个 .maintenance 文件,里面存一个时间戳。更新完成后这个文件被自动删掉。如果更新过程中断——PHP 超时、内存不够、网络掉线、插件包下载一半失败——文件就留在那儿了。WordPress 每次加载都会读到它,然后返回维护页。
最快的解法:删掉那个文件
用 FTP、SFTP 或主机面板的文件管理器,进到 WordPress 根目录(和 wp-config.php 同一级)。这个文件以点开头,属于隐藏文件,记得在客户端里打开「显示隐藏文件」。
有 SSH 的话一条命令就行:
cd /var/www/html
ls -la | grep maintenance
rm .maintenance
删完刷新页面,站点立刻恢复。
删完还是白屏或报错
说明更新只做到一半,文件被替换了但没替换完。按下面顺序清一遍。
wp-content/upgrade/ 目录里的残留包foo → foo-off)临时禁用调试日志在 wp-config.php 里加三行开启,报错会写进 wp-content/debug.log:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
问题解决后记得把 WP_DEBUG 改回 false,日志文件公开可访问是个风险点。
怎么让它别再卡
更新中断基本都是资源不够或超时。核心站点更新前先把这几项调宽一点。
| 配置项 | 建议值 | 改哪里 |
|---|---|---|
| memory_limit | 256M | php.ini 或 wp-config.php 的 WP_MEMORY_LIMIT |
| max_execution_time | 300 | php.ini |
| 目录权限 | 755 / 属主为 www-data | wp-content 及其子目录 |
| 更新方式 | 一次只更一个插件 | 后台批量勾选容易超时 |
能用 SSH 的话,直接用 WP-CLI 更新更稳,不受 PHP 网页请求超时限制:
wp plugin update --all
wp core update
wp maintenance-mode deactivate
常见问题
问:根目录里找不到 .maintenance 文件?
答:先确认文件管理器开了显示隐藏文件。还是没有的话,维护页可能来自缓存插件或 CDN,清一次缓存再看。有些安全插件也会自带维护模式开关。
问:删了文件,过一会儿又出现了?
答:说明有更新任务在后台反复触发。检查 WordPress 的自动更新设置和 cron,必要时在 wp-config.php 加 define('AUTOMATIC_UPDATER_DISABLED', true); 暂时关掉自动更新,手动更完再打开。
问:更新到一半站点数据会不会坏?
答:插件文件替换不完整通常只影响功能,不会动数据库。但核心版本更新中断有可能停在数据库升级那一步,进后台如果提示需要更新数据库,跟着走一遍 /wp-admin/upgrade.php 就行。
更新翻车前建议先备份一次。你遇到过哪种更新卡死的情况?到 fenij.com 留言说说,我看看能不能补充进来。