推荐用 laravel/installer 创建 Laravel 项目,它自动执行 composer install、生成密钥、设置 storage 和 bootstrap/cache 权限;Laravel 11 需 PHP 8.2+ 及 mbstring、openssl、pdo、tokenizer、xml、ctype、json 扩展;APP_KEY 必须首次部署前生成,否则抛 RuntimeException;页面空白或 500 错误常因 storage 权限或 APP_KEY 缺失导致。

直接用 laravel/installer 装 Laravel 项目,比手动下载或 Git 克隆更可靠,也天然兼容最新 PHP 版本和 Composer 依赖约束。
用 laravel/installer 创建新项目
这是官方推荐方式,避免了手动配置 composer create-project 时容易漏掉的权限、缓存、脚本钩子等问题。
- 先全局安装安装器:
composer global require laravel/installer(确保~/.composer/vendor/bin已加入$PATH) - 新建项目:
laravel new myapp(会自动执行composer install、生成密钥、设置存储目录权限) - 不建议用
composer create-project laravel/laravel myapp—— 它跳过laravel/installer内置的初始化逻辑,比如storage和bootstrap/cache目录的可写性检查
PHP 版本和扩展必须匹配 Laravel 版本
Laravel 11 要求 PHP 8.2+,且必须启用 mbstring、openssl、pdo、tokenizer、xml、ctype、json;少一个,php artisan 命令就可能报错退出,而不是明确提示缺哪个扩展。
- 检查命令:
php -m | grep -E 'mbstring|openssl|pdo|tokenizer|xml|ctype|json' - 常见坑:Docker 或 WAMP/XAMPP 环境里,CLI 使用的
php.ini和 Web Server 的不是同一份,务必用php -i | grep 'Loaded Configuration File'确认 CLI 加载的是哪个配置 - Mac 用户用 Homebrew 安装 PHP 后,常漏装
php-intl,导致 Carbon 或本地化功能异常,补装命令:brew install php-intl
APP_KEY 必须在首次部署前生成
没运行 php artisan key:generate 就访问首页,会直接抛出 RuntimeException:“No application encryption key has been specified.”,这个错误不提示怎么修,只报错。
- 新项目用
laravel new已自动完成,但如果是从 Git 克隆的模板项目,.env里APP_KEY=是空的,必须手动补上 - 不要复制别人项目的
APP_KEY—— 加密密钥泄露会导致 session、cookie、加密数据全部可被解密 - CI/CD 部署时,建议用
php artisan key:generate --no-interaction,避免交互式命令卡住流程
很多人卡在 “页面空白” 或 “500 错误”,其实只是 storage 目录没写权限,或者 APP_KEY 没生成。Laravel 不会在日志里明确说“你忘了设密钥”,它只抛异常——得看 storage/logs/laravel.log 最顶上的那条记录,而不是浏览器看到的 HTML 错误页。

















