Laravel Installer本身无需sudo,普通用户即可执行laravel new;但项目生成后必须设置storage和bootstrap/cache目录的写权限(如chmod -R 775),并确保Web服务器用户(如www-data)有相应读写权限。

使用 Laravel Installer 新建项目本身对系统权限要求不高,但关键在于后续项目能正常运行和写入。真正需要关注的不是“安装器命令执行时”的权限,而是它生成的项目目录、文件及运行环境所需的读写权限。
Laravel Installer 命令执行权限
laravel new project-name 是一个本地 PHP 脚本,只要你的当前用户能运行 Composer 全局命令(即 ~/.composer/vendor/bin 在 $PATH 中),通常无需 sudo。
- ✅ 普通用户身份即可执行;
- ❌ 不推荐用
sudo laravel new ...,否则项目文件可能归属 root,导致后续 Web 服务器或 Artisan 命令失败。
项目生成后必须设置的目录权限
Laravel Installer 创建的项目默认不会自动设好 storage 和 bootstrap/cache 的写权限,而这两个目录是运行所必需的:
-
storage/:记录日志、缓存视图、session、文件上传等; -
bootstrap/cache/:存放配置缓存、路由缓存等生成文件。
正确做法(Linux/macOS):
cd your-project chmod -R 755 storage bootstrap/cache # 或更稳妥(尤其多用户/生产环境): chmod -R 775 storage bootstrap/cache chown -R $USER:www-data storage bootstrap/cache # 若 Web 服务器用 www-data
Windows 用户注意:
- 无需手动改 chmod,但需确保项目目录未被设为“只读”;
- 若用 WSL 或 Docker,仍需按 Linux 方式处理权限;
- 使用 Apache/Nginx 时,确保服务进程用户(如
www-data或nginx)对storage/和bootstrap/cache/有写权限。
Composer 全局安装器自身的权限问题
composer global require laravel/installer 会把可执行文件装到用户目录(如 ~/.composer/vendor/bin/laravel)。如果报错 Permission denied,常见原因:
-
~/.composer/vendor/bin不在$PATH; -
~/.composer所有者或权限异常(如被sudo composer错误修改过):sudo chown -R $USER:$USER ~/.composer chmod -R 755 ~/.composer
Web 服务器运行时的权限匹配(部署场景)
开发时用 php artisan serve 无此问题,但上线后:
- Apache(用户通常是
apache或www-data)或 Nginx(用户通常是nginx或www-data)必须能:- 读取所有项目文件(755 足够);
- 写入
storage/和bootstrap/cache/(建议775+ 同组);
- 推荐操作:
sudo usermod -a -G www-data $USER sudo chown -R $USER:www-data your-project sudo chmod -R 775 your-project/storage your-project/bootstrap/cache
不复杂但容易忽略。


















