应使用 composer create-project topthink/think tp6-demo 直接创建TP6项目,避免手动初始化导致结构缺失;装完须配置 .env 启用调试并设置数据库参数,注意编码与权限;运行前确保 think 可执行、PHP版本≥7.2.5且扩展启用;上线前清理 runtime 和 vendor,用 composer install --no-dev 部署。

直接用 composer create-project 装 TP6,别手动生成 composer.json
TP6 官方早就不推荐手动 init 再 require 的方式了——容易漏掉 thinkphp/think 的根目录结构、自动加载配置和内置命令行入口。直接拉完整项目骨架最稳。
实操命令:composer create-project topthink/think tp6-demo
- 默认装最新稳定版(目前是 v6.3.x),加
@v6.2可指定小版本,比如topthink/think@v6.2.10 - 别用
--prefer-dist强制走压缩包:TP6 有些测试文件或 stub 在 dist 包里被删了,会导致php think make:controller报错 - 如果卡在
Cloning into...或提示 GitHub rate limit,换国内镜像源:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
装完必须立刻改 .env,否则 php think 会报错或连不上数据库
TP6 启动时默认读 .env,但新项目生成的 .env 是空的,且没开启 APP_DEBUG,导致错误全被吞掉,只看到白屏或 500。
最小可用配置(放到项目根目录):
APP_DEBUG = true APP_ENV = local DATABASE_HOST = 127.0.0.1 DATABASE_PORT = 3306 DATABASE_NAME = your_db_name DATABASE_USER = root DATABASE_PASS =
-
DATABASE_PASS留空也要写出来,否则框架解析失败,报Undefined index: password - Windows 下用记事本保存
.env必须选「UTF-8 无 BOM」,否则think命令直接退出不报错 - 别把
.env提交到 Git:TP6 默认已加进.gitignore,但第一次初始化时有人会手动生成并 commit
php think 命令不生效?检查 think 文件权限和 PHP CLI 配置
Linux/macOS 下装完运行 php think 报 Permission denied,或 Windows 下提示“不是内部或外部命令”,基本就两个原因。
立即学习“PHP免费学习笔记(深入)”;
- Linux/macOS:
chmod +x think,TP6 的think是可执行脚本,不是纯 PHP 文件 - Windows:确保 PHP 的
php.exe在系统 PATH 里,且think文件末尾是\n(不是\r\n),否则 shebang 行失效 - PHP CLI 版本必须 ≥ 7.2.5,且开启
mbstring和openssl扩展,缺一个php think就直接 exit - 别在子目录下运行
php ../think:TP6 依赖当前工作目录为项目根,否则app目录定位失败
部署到线上前删掉 runtime 和 vendor,用 composer install --no-dev
本地开发装了一堆 phpunit、psysh,上线还留着不仅占空间,某些扩展(比如 symfony/var-dumper)在生产环境触发 dump 会暴露路径。
- 先清空
runtime/全部内容(日志、缓存、模板编译文件),不然旧缓存可能让新代码不生效 -
composer install --no-dev --optimize-autoloader:省掉 dev 依赖,同时生成静态类映射,启动快 10%~20% - 别用
composer update上线:它会改composer.lock,线上环境必须锁定依赖版本 - 如果用宝塔或 cPanel,注意
public目录要设为网站根目录,runtime和vendor必须不可通过 URL 访问(Nginx/Apache 需额外屏蔽)
runtime 目录权限和 .env 的环境变量继承逻辑——比如用 Supervisor 启动队列,它不读 shell 的环境变量,必须在配置里显式传入 ENV=production,否则还是走 local 配置。











