必须用 composer create-project 安装 TP6,因 TP6 是「框架即项目」结构,仅此命令能生成含 app/、public/、think 脚本等完整骨架并注入 PSR-4 自动加载;手动解压 ZIP 或 require 会导致 Class not found、白屏或路由失效。

phpEnv 里装 TP6 必须用 composer create-project,不能拖文件
phpEnv 自带 PHP、Apache/Nginx 和 Composer,但很多人误以为把下载的 TP6 ZIP 解压进网站目录就能跑——不行。TP6 的核心已移入 vendor,靠 Composer 自动加载,手动复制只会卡在 Class not found 或 require(): failed to open stream。
正确做法是:打开 phpEnv 自带的命令行(它默认就 cd 进了网站根目录,比如 C:\phpenv\www),直接执行:
composer create-project "topthink/think:^6.1" myproject
注意两点:^6.1 必须显式写上,否则可能拉到 TP5 或 TP8 dev 分支;myproject 是新建目录名,可改,但别带空格或中文。
- 执行完会生成
myproject/目录,里面含app、public、vendor、think等标准结构 - 确认
myproject/.env存在且和think文件同级,不是放在public/或app/下 - 如果报
Could not find package topthink/think,先运行composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/换镜像
phpEnv 站点配置必须指向 public/,不是项目根目录
TP6 强制要求 Web 入口是 public/,否则路由 404、静态资源找不到、__ROOT__ 错乱——这不是“建议”,是框架底层路径硬编码决定的。
在 phpEnv 的「网站管理」里新增站点时:
-
网站域名填本地测试用的,比如
tp6.test -
网站目录必须选到
myproject/public,不是myproject - 保存后,去系统
C:\Windows\System32\drivers\etc\hosts最后加一行:127.0.0.1 tp6.test
如果访问 http://tp6.test 显示空白页或 500,大概率是 .env 里没开调试:APP_DEBUG=true 缺失或拼错。别猜,先加这行再刷新。
phpEnv 启动 TP6 内置服务器要加 -t public/,否则报错
想跳过 Apache/Nginx 直接试运行?可以,但命令容易错:
cd myproject<br>php think run
这个命令在 phpEnv 命令行里大概率失败,报 Unable to load configuration 或白屏——因为 php think run 默认用当前目录当 Web 根,而 TP6 入口在 public/。
正确启动方式(必须指定 -t public/):
php -S localhost:8000 -t public/
或者用 TP6 自带的封装命令(需确保 think 文件有执行权限,Windows 一般不用管):
php think run -p 8000
两者效果一样,都等价于 php -S localhost:8000 -t public/。浏览器打开 http://localhost:8000 就能看见欢迎页。
runtime 目录权限和 .env 加载时机是 phpEnv 里最常忽略的两个点
phpEnv 在 Windows 上跑得顺,但一旦涉及日志写入、缓存生成、模板编译,就会卡在 runtime/ 目录——它默认没写入权限,尤其当你用管理员身份装的 phpEnv,而 Apache/Nginx 是以普通用户(如 SYSTEM)运行时。
解决方法很简单:右键点击 myproject/runtime → 属性 → 安全 → 编辑 → 添加 IIS_IUSRS 或 Users 组,并勾上“写入”权限。
另一个隐形坑是 .env 修改后不生效:
-
.env只在应用初始化最早期读一次,之后改了也没用 - 改完必须重启 Web 服务(phpEnv 里点「重启 Apache」或「重启 Nginx」)或重跑
php think run - 验证是否加载成功?在
app/common.php开头加一行:var_dump($_ENV['APP_DEBUG'] ?? 'not loaded');,看输出是不是true
这两处不处理,你会反复遇到“明明改了数据库配置却连不上”“日志死活不生成”这类问题,查半天发现是权限或加载时机不对。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











