thinkphp 6.x 项目跑不起来主因是环境未达三个硬性门槛:composer未显式指定^6.1版本、web根目录未设为public/、.env未置于项目根目录或权限不足。

ThinkPHP 6.x 项目跑不起来,八成不是框架问题,而是环境卡在三个硬性门槛上:Composer 版本没锁、public/ 没设为 Web 根目录、.env 文件位置或权限不对。
composer create-project 必须显式指定 ^6.1 版本
直接运行 composer create-project topthink/think tp 极大概率拉到 TP5 或 TP8(dev-main)分支——TP6 已进入维护期,官方不再默认推稳定版。
- 正确命令是:
composer create-project "topthink/think:^6.1"(双引号防 shell 解析错误) - Windows 用户确认
composer命令全局可用:where composer或composer --version;若报“不是内部命令”,说明composer.phar没放对 PATH - 国内源建议提前配置:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 执行后检查项目根目录是否存在
think可执行文件(Linux/macOS 需chmod +x think)
Web 服务器必须指向 public/ 目录
TP6 强制入口统一收口到 public/,否则路由失效、静态资源 404、__ROOT__ 路径错乱——这不是可选配置,是框架设计决定的。
- 内置服务器启动方式:
php -S localhost:8000 -t public/(注意-t public/不可省略) - Apache:确保
DocumentRoot指向/path/to/your/project/public,且.htaccess生效(AllowOverride All) - Nginx:
root必须设为/path/to/your/project/public,且fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name(不能写成$root) - 别把
index.php手动拖进浏览器地址栏访问——那绕过了框架路由,永远看不到控制器逻辑
.env 文件加载失败的典型表现和验证方法
.env 只在应用初始化早期加载一次,改完不重启进程=白改;权限不对或路径错位=完全不生效。
- 必须放在项目根目录(和
think文件同级),不是public/下,也不是app/下 - Linux/macOS 检查权限:
ls -l .env,确保 web 服务器用户(如 www-data)有读取权;若由 root 创建,可能需chmod 644 .env - 验证是否加载成功:在
app/common.php开头加一行var_dump($_ENV['APP_DEBUG'] ?? 'not loaded');,然后访问页面看输出 - 最常被跳过的一行:
APP_DEBUG=true必须写进.env,否则异常静默、只返回空白页或 500,根本没法 debug - 改完
.env后,用php think run的必须 Ctrl+C 终止再重跑;Apache/Nginx 必须 reload
真正卡住人的从来不是“怎么写控制器”,而是 public/ 目录没设对、.env 权限被忽略、Composer 拉错版本还浑然不觉——这些点不先钉死,后面所有代码都跑在流沙上。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











