composer create-project第三个参数是目标目录名(或完整路径),必须为相对或绝对路径,不可含url、通配符、空格或中文;安装后需将web服务器根目录指向public/子目录以保障安全。

直接用 composer create-project 的第三个参数指定目标目录,路径必须是相对或绝对路径,不能带 URL 或通配符。
指定目录安装时路径写法必须准确
命令格式为:composer create-project topthink/think 。这里的 是项目根目录的名称(或完整路径),不是 Web 服务器的 DocumentRoot。
- 在
D:\phpEnv\www下执行composer create-project topthink/think tp8.com,会生成D:\phpEnv\www\tp8.com目录 - 想装到
E:\projects\myapp,就先cd /d E:\projects,再运行composer create-project topthink/think myapp - Windows 下不支持
~/这类波浪线缩写;./subdir可以,但../outside容易因权限或路径越界失败 - 目录名里不要含空格或中文——虽然部分系统能创建成功,但后续
php think run或 Apache 配置常出错
为什么 composer create-project 后还要改 Web 根目录?
ThinkPHP8 默认结构中,Web 入口是 public/ 子目录,而 composer create-project 创建的是整个项目根目录(含 app/、config/、public/ 等)。直接把项目根设为网站根目录会导致敏感文件(如 .env、app/)可被 Web 访问,存在安全风险。
-
phpEnv / phpStudy 用户:需在控制台把站点根目录从
D:\phpEnv\www\tp8.com改成D:\phpEnv\www\tp8.com\public - Apache/Nginx 用户:DocumentRoot 必须指向
public目录,不是项目根目录 - 如果跳过这步,访问时可能看到 403、500 错误,或直接列出目录内容(说明
public/index.php没被正确路由)
--ignore-platform-reqs 不是目录参数,别混用
这个选项只影响 PHP 版本和扩展依赖检查,和路径无关。它解决的是「明明装了 PHP 8.2,却因 composer 检测失败而回退到 TP6」的问题,不是路径写错的补救措施。
- 路径错误导致的报错通常是:
Could not create directory ... Permission denied或Failed to clone ... No such file or directory -
--ignore-platform-reqs常见于:Windows 下杀软拦截、PHP 版本检测失败、或ext-fileinfo未启用时的静默中断 - 正确用法示例:
composer create-project topthink/think tp8 --ignore-platform-reqs,注意空格和位置
最容易被忽略的一点:路径指定后,后续所有命令(php think run、composer install)都必须在该目录下执行,而不是它的子目录或上层目录。哪怕只多进了一层 public,vendor/autoload.php 就会找不到。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











