Laravel项目目录由composer create-project命令直接指定路径决定,如composer create-project laravel/laravel /var/www/myapp;目标路径须为空,Web服务器root应指向public子目录,.env须保留在项目根目录。

Laravel框架安装时,项目存放目录默认由你执行 composer create-project 命令时指定的路径决定,并非框架自动固定。所谓“自定义项目存放目录”,本质是在安装命令中直接声明目标路径,而非安装后再移动或配置。
✅ 安装时直接指定项目目录
使用 Composer 创建 Laravel 项目时,语法为:
composer create-project laravel/laravel /your/custom/path/to/project
例如:
composer create-project laravel/laravel /var/www/myapp
这会将完整 Laravel 项目(含 app/、public/、config/ 等)直接初始化到 /var/www/myapp 目录下。该路径就是你的自定义项目根目录。
- ✅ 不需要额外配置
- ✅ 无需安装后剪切重放
- ✅ 推荐用于生产部署或特定服务器结构(如 Nginx 的
root指向需精确)
⚠️ 注意:目标路径必须为空或不存在,否则 Composer 会报错拒绝覆盖。
✅ 使用 -n 参数跳过交互式设置(适合脚本化部署)
composer create-project laravel/laravel /opt/laravel-prod --no-interaction
--no-interaction(简写 -n)避免安装过程询问是否清空缓存等,适合自动化流程。
✅ 配合 .env 和 Web 服务器指向 public 子目录
Laravel 的 Web 入口是 public/ 目录,不是项目根目录。因此:
- 若你把项目放在
/opt/myproject,Nginx/Apache 的root必须设为/opt/myproject/public -
.env文件位于项目根目录(即/opt/myproject/.env),不可移入public/
常见错误:把整个项目目录设为 Web 根目录 → 导致敏感文件(如 .env、app/)可被直接访问。
❌ 不推荐的做法
- 先在默认位置安装,再整体移动目录:可能因软链接、缓存路径、
bootstrap/cache/config.php中硬编码路径导致异常 - 修改
index.php中的require __DIR__.'/../vendor/autoload.php';等路径:破坏可维护性,且 Composer 自动加载机制依赖标准结构
不复杂但容易忽略。


















