应使用 composer create-project topthink/think tp8 安装 TP8,它自动提供完整骨架;禁用 APP_DEBUG=true 保障安全;生产环境部署须加 --no-dev 和 --optimize-autoloader 参数。

直接用 composer create-project 装 TP8,别手动生成 composer.json
TP8 官方已放弃手动 require 方式,create-project 是唯一推荐入口。它会自动拉取带完整骨架(含 app、config、public)的稳定版,省去后续路径配置和入口文件补全的麻烦。
常见错误现象:composer require topthink/think 后发现没 public/index.php、app 目录空、php think 命令报错——这是老版本习惯导致的误操作。
- 正确命令:
composer create-project topthink/think tp8(tp8是项目目录名,可自定义) - 想装特定版本?加
@v8.0.0后缀,比如:composer create-project topthink/think tp8 @v8.0.0 - 国内慢?提前配好镜像:
composer config -g repo.packagist composer https://packagist.phpcomposer.com或用阿里云源
装完立刻检查 think 命令是否可用,否则是环境或权限问题
think 是 TP8 的核心 CLI 工具,用于生成控制器、运行服务、查看路由等。装完进项目根目录执行 php think,如果报 Command "think" is not defined 或直接提示找不到文件,大概率不是框架问题,而是:
-
vendor/bin没加入系统 PATH(Windows 下尤其常见),临时解决:用php vendor/bin/think代替 - Linux/macOS 权限不足,
chmod +x vendor/bin/think再试 - PHP 版本低于 8.1 —— TP8 强制要求 PHP ≥ 8.1,
php -v必须确认
部署到生产环境前,必须改掉 .env 里的 APP_DEBUG=true
本地开发时开 APP_DEBUG 没问题,但上线后不关,等于把所有异常堆栈、数据库连接信息、路径结构全暴露在 HTTP 响应里。这不是“建议”,是安全红线。
立即学习“PHP免费学习笔记(深入)”;
- 编辑
.env,把APP_DEBUG=true改成APP_DEBUG=false - 顺手检查
LOG_LEVEL=debug是否也改成了error或warning,避免日志写爆磁盘 - 别依赖 .env 文件权限控制——Web 服务器若配置不当,.env 可能被直接下载。Nginx/Apache 需显式禁止访问:
location ~ \.env$ { deny all; }
composer install 在服务器上失败?先确认是否漏了 --no-dev
TP8 的 composer.lock 包含 dev 依赖(如 phpunit、fakerphp/faker),这些在生产环境完全不需要,还可能因扩展缺失(如 ext-xdebug)导致安装中断。
- 线上部署务必用:
composer install --no-dev --optimize-autoloader -
--optimize-autoloader会生成类映射表,提升自动加载性能,TP8 默认未启用,这里必须加 - 如果仍报错,检查
composer show topthink/think输出的版本号,和本地开发是否一致;不一致说明lock文件没提交,或者有人手动改过composer.json
TP8 的骨架比以前重,vendor 目录体积大、autoload 规则更细,一个参数漏掉就容易卡在「Class not found」或「Command not found」。别跳步骤,尤其是 --no-dev 和 --optimize-autoloader 这两个开关。










