宝塔ThinkPHP8.0一键部署零基础图文教程
使用宝塔面板部署 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 部分的配置,将用户名、密码、数据库名暂时留空,后续在宝塔面板中单独创建数据库后再填写
- 保存后,在浏览器中访问
http://你的域名/.env,应返回 403 或 404 状态码。如果仍能读取内容,说明屏蔽规则未生效,需检查 Nginx 配置
此外,runtime 目录的写入权限和伪静态规则也是常见陷阱。日志、缓存、模板编译均依赖 runtime 目录的可写权限,如果不可写,页面将直接报错或功能异常。URL 路由依赖伪静态规则转发请求,缺少该规则会导致所有链接返回 404。
- 在【文件】管理器中找到 runtime 目录 → 右键 →【权限】→ 设置为 755,所有者和用户组均选择 www
- 站点【设置】→【伪静态】→ 清空原有内容 → 粘贴以下 Nginx 规则:
location / { try_files $uri $uri/ /index.php?$query_string; } - 无需重启 Nginx,保存配置后立即生效
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
列表遍历时动态判断阈值并返回相应文本
遍历数值列表时,先筛选满足阈值的元素,再根据结果输出列表或友好提示。推荐使用列表推导式结合条件判断,注意边界用`>=`,空列表自动为假。也可用`any()`提前终止遍历,提升效率。此法简洁,避免显式循环,特别适合阈值筛选。
Maven项目中如何强制使用本地构建的依赖版本
多模块开发中强制使用本地依赖的正确做法是使用-SNAPSHOT版本并配合`-U`参数强制更新,或重构为多模块项目统一管理生命周期。避免使用版本范围语法或手动复制JAR,确保构建行为可靠可重复。
Go语言net.Conn并发写安全与原子性保障解析
Go标准库中net Conn支持并发方法调用,但Write()不保证原子性。多goroutine同时写入时,系统可能拆分数据包,导致内容交错,破坏消息边界。必须使用互斥锁或bufio Writer等显式同步机制确保写操作完整性,不可依赖系统调用本身的原子性。
Python在Windows系统中获取指定卷标U盘驱动器字母的方法
使用Pythonwmi库通过Win32_Volume接口查询Windows系统中卷标为“TOSHIBA”的U盘盘符。需安装wmi和pywin32,注意大小写区分及多设备过滤。仅适用于Windows。
TP6.0消息已读功能基于Redis Bitmap未读计数方案
TP6 0中使用Redis位图实现消息已读标记,每条消息仅占一个比特,内存效率高。需将消息ID映射为连续偏移量,通过SETBIT和GETBIT操作。需提前维护用户ID到偏移量的映射表,注意键过期与驱动类型(phpredis与predis)问题。此方法内存极省,适合海量消息场景,且需确保偏移量唯一。
- 日榜
- 周榜
- 月榜
相关攻略
2026-07-08 06:50
2026-07-08 06:50
2026-07-08 06:50
2026-07-08 06:49
2026-07-08 06:49
2026-07-08 06:49
2026-07-08 06:49
2026-07-08 06:49
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程
热门话题

