composer create-project是安装全新laravel项目的唯一正解,需指定稳定版本如"10.*"并确保php≥8.1及openssl、mbstring、curl扩展启用;安装后须复制.env并生成密钥,再配置storage与bootstrap/cache权限。

composer create-project 装 Laravel 为什么总失败
不是 composer install,也不是 composer require,装全新 Laravel 项目唯一正解是 composer create-project。很多人卡在「找不到包」或「版本冲突」,本质是没指定稳定版本,或者本地 PHP 版本/扩展不达标。
-
composer create-project laravel/laravel myapp默认拉最新开发版(可能含未发布特性),CI 或生产环境容易翻车 - 必须显式加版本约束:比如
composer create-project laravel/laravel myapp "10.*"(Laravel 10 要求 PHP ≥8.1) - 常见报错
Your requirements could not be resolved,大概率是 PHP 版本太低,或缺openssl、mbstring、curl这几个扩展 - Windows 用户如果用 Git Bash,别用
winpty composer create-project...—— 直接用 PowerShell 或 CMD,否则终端乱码+命令挂起
Laravel 安装后 php artisan serve 启动不了
装完只是文件就位,不代表能跑。artisan 命令依赖 .env 和基础配置,漏一步就报错。
- 首次运行前必须进项目目录执行
cp .env.example .env,否则php artisan key:generate会失败,接着serve也起不来 -
php artisan serve默认绑定127.0.0.1:8000,如果端口被占,加--port=8001;想外网访问得加--host=0.0.0.0(仅开发机,别在服务器开) - Mac M1/M2 用户遇到
zsh: command not found: php,说明没装 Homebrew PHP 或 PATH 没配对,别硬改~/.zshrc,直接用/opt/homebrew/bin/php artisan serve
为什么 composer global require laravel/installer 不推荐
全局装 laravel/installer 是旧方式,现在官方文档已移除,它和 create-project 冲突还难调试。
-
laravel new myapp看似方便,但背后仍调create-project,且会强制用它内置的镜像源,国内经常超时 - 全局命令升级不及时:
composer global update容易漏,导致新建项目用旧版 installer,生成的composer.json里 Laravel 版本写死成 9.x - 多个 PHP 版本共存时,全局 bin 目录可能指向错误 PHP,
laravel new创建的项目实际用的是 CLI 的 PHP,而非你php -v看到的那个
安装完发现 storage 和 bootstrap/cache 权限不对
Linux/macOS 下 Web 服务器(如 Nginx/Apache)和 CLI 用户不一致,会导致日志写不进 storage/logs,缓存生成失败。
- 别直接
chmod -R 777 storage bootstrap/cache—— 这是安全隐患,且下次部署会被覆盖 - 正确做法:查 Web 服务器用户(Nginx 通常是
www-data,Apache 是apache或_www),然后sudo chgrp -R www-data storage bootstrap/cache+sudo chmod -R ug+rwx storage bootstrap/cache - Windows WSL 用户注意:NTFS 挂载点下
chmod无效,得在/etc/wsl.conf加metadata=true并重启 WSL
最麻烦的其实是权限链路:CLI 执行 php artisan cache:clear 生成的文件属主是当前用户,但 Web 请求进来时由 www-data 写日志,两边 UID 不同就卡住 —— 这个细节,90% 的人装完跑两步就忘了查。










