使用宝塔面板部署 ThinkPHP 8.0 只需三个核心步骤:选择 PHP 8.1 或 8.2 版本并安装必要扩展;将网站根目录指向 /public;关闭调试模式并禁止 .env 文件访问。此外还需确保 runtime 目录可写并配置伪静态规则。

在宝塔面板上部署 ThinkPHP 8.0 无需使用命令行,但关键操作一步都不能出错。核心要点只有三个:正确选择 PHP 版本、将网站根目录设置为 public、关闭调试模式。遗漏其中任何一点,轻则导致页面 404 或白屏,重则可能直接暴露数据库密码——经验教训不可不防。
装 PHP 8.1 或 8.2,别选最新版
ThinkPHP 8.0 需要 PHP 版本至少为 8.0.0,然而 PHP 8.0 官方已停止安全更新,而 8.3 及以上版本可能存在兼容性问题。因此推荐选择 PHP 8.1 或 8.2,既能保证稳定性又能获得良好性能。
- 登录宝塔后台,点击左侧【软件商店】→ 搜索“PHP” → 找到 PHP 8.1(或 8.2)→ 点击【安装】按钮
- 勾选扩展时注意:fileinfo、mbstring、openssl、curl、pdo_mysql、ctype、json 这几个扩展一个都不能少
- 安装完成后,点击该 PHP 版本右侧的【设置】→【服务管理】→ 确认状态显示为“正在运行”,然后点击【重启】一次以确保生效
网站根目录必须设为 /public
ThinkPHP 8.0 的入口文件 index.php 位于 public 目录内。如果网站根目录指向项目根路径(例如 /www/wwwroot/myapp),所有请求将绕过框架直接返回 404,并且可能暴露 app/config 等敏感目录。
- 左侧【网站】→ 点击【添加站点】→ 输入域名(测试可用 test.local)→ 根目录填写
/www/wwwroot/think8→ PHP 版本选择之前安装好的 8.1 - 将完整项目压缩包上传至该根目录 → 在线解压 → 确认解压后包含 public/、app/、config/ 等文件夹
- 返回【网站】列表 → 点击该站点右侧的【设置】→ 选择【网站目录】→ 将【运行目录】修改为 /public → 勾选【重载Nginx配置】→ 点击【保存】
关掉 APP_DEBUG,删掉 .env 里的敏感信息
APP_DEBUG=true 是专用于开发模式的开关。如果在线上环境保持开启,相当于将数据库账号密码、服务器路径、异常堆栈等信息直接输出到网页上——必须避免。
- 进入【文件】管理器,打开项目根目录下的 .env 文件
- 把
APP_DEBUG=true改成APP_DEBUG=false - 检查 DATABASE 部分的配置,将用户名、密码、数据库名暂时留空,后续在宝塔面板中单独创建数据库后再填写
- 保存后,在浏览器中访问
https://你的域名/.env,应返回 403 或 404 状态码。如果仍能读取内容,说明屏蔽规则未生效,需检查 Nginx 配置
此外,runtime 目录的写入权限和伪静态规则也是常见陷阱。日志、缓存、模板编译均依赖 runtime 目录的可写权限,如果不可写,页面将直接报错或功能异常。URL 路由依赖伪静态规则转发请求,缺少该规则会导致所有链接返回 404。
- 在【文件】管理器中找到 runtime 目录 → 右键 →【权限】→ 设置为 755,所有者和用户组均选择 www
- 站点【设置】→【伪静态】→ 清空原有内容 → 粘贴以下 Nginx 规则:
location / { try_files $uri $uri/ /index.php?$query_string; } - 无需重启 Nginx,保存配置后立即生效
