宝塔“一键部署”wordpress失败是因为默认使用旧镜像且跳过权限与PHP校验;需手动下载最新包、设www权限、启用必要扩展、改mysql认证方式并配置httpS协议头。

宝塔面板里点“一键部署”为什么装不上 WordPress
不是按钮坏了,是它根本没在装 WordPress——宝塔的「一键部署」默认调用的是官方镜像或旧版离线包,不走 WordPress.org 最新发布流程,且跳过了 PHP 版本兼容校验和 wp-config.php 权限初始化。常见现象是:页面卡在“正在安装”,日志里反复出现 file_put_contents(/www/wwwroot/xxx/wp-config.php): failed to open stream。
- 确认站点根目录权限为
www:www(非root或www-data),执行chown -R www:www /www/wwwroot/你的域名 - PHP 版本必须 ≥ 7.4(WordPress 6.0+ 强制要求),且需启用
curl、openssl、mysqli、gd扩展(宝塔 → 软件商店 → PHP 设置 → 禁用扩展里不能勾选它们) - 数据库名/用户名别含短横线(
my-site会导致创建失败),改用下划线或纯字母数字
手动部署比“一键”更稳:三步完成真实可用的 WordPress
所谓“手动”,其实只是补上一键漏掉的两个关键动作:下载最新包 + 正确解压路径。宝塔本身不校验 ZIP 完整性,直接从官网拉取能避开缓存旧包、签名失效等问题。
- 进宝塔终端,cd 到站点根目录:
cd /www/wwwroot/你的域名 - 用
wget下载最新英文版(中文版更新滞后):wget https://wordpress.org/latest.tar.gz && tar -zxvf latest.tar.gz && mv wordpress/* . && rm -rf wordpress latest.tar.gz - 浏览器访问域名,走完 Web 安装向导;若提示“无法创建 wp-config.php”,说明目录不可写,执行
chmod -R 755 /www/wwwroot/你的域名再刷新
MySQL 8.0+ 连接失败?WordPress 默认不支持 caching_sha2_password
宝塔 8.x 默认装 MySQL 8.0,但 WordPress 直到 5.9 才原生支持其默认认证插件。老版本或缓存未清时,会报错 Client does not support authentication protocol requested by server。
- 登录宝塔 → 数据库 → 点击对应数据库名 → “修改密码”旁的“高级选项” → 认证方式选
mysql_native_password - 或者进 phpmyadmin,执行 SQL:
ALTER USER '你的用户名'@'localhost' IDENTifIED WITH mysql_native_password BY '你的密码'; - 改完立刻生效,无需重启 MySQL,但需清空浏览器缓存再重试安装页
HTTPS 后后台地址错乱?别只改宝塔 SSL 开关
宝塔开启 SSL 后,WordPress 仍可能沿用 HTTP 协议加载 admin.js 或重定向回 http://,导致白屏或无限跳转。这不是宝塔的问题,是 WordPress 不会自动感知反向代理协议。
- 编辑
/www/wwwroot/你的域名/wp-config.php,在/* That's all, stop editing! */上方加两行:define('FORCE_SSL_ADMIN', true);和if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') $_SERVER['HTTPS']='on'; - 确保宝塔站点设置里,“SSL”开关已开,且“强制 HTTPS”也已勾选(二者缺一不可)
- 如果用了 CDN,还需在 CDN 后台把“HTTP 头”里的
X-Forwarded-Proto设置为https,否则上面那行 PHP 判断永远不成立
最常被忽略的是 CDN 层没透传协议头,哪怕宝塔和 WordPress 都配对了,请求一进 CDN 就变 HTTP,后台照样崩。检查方法:在主题的 functions.php 里临时加一行 error_log(print_r($_SERVER['HTTP_X_FORWARDED_PROTO'], true));,看日志输出是不是 https。