安装 laravel 应指定 lts 版本如 composer create-project laravel/laravel:^10.0,避免默认最新版;启动前需 php artisan config:clear 确保 .env 生效,并用 php artisan --version 确认版本。

composer create-project 装出来的 Laravel 版本不对
默认执行 composer create-project laravel/laravel 会拉取最新稳定版,但不是你想要的 LTS(长期支持)版本,比如 Laravel 10 或 11。LTS 版本更稳,适合生产起步。
- 要装 Laravel 10(当前 LTS),加版本号:
composer create-project laravel/laravel:^10.0 - 如果本地 PHP 版本是 8.2+,Laravel 11 可用,但注意它不支持 MySQL 5.7,必须 8.0+;Laravel 10 支持 MySQL 5.7
- 别直接
composer create-project laravel/laravel后再改composer.json,容易因依赖冲突卡在composer install - 装完立刻跑
php artisan --version确认版本,别只看composer.lock里写的
php artisan serve 启动失败:Address already in use
这是端口被占了,不是 Laravel 本身问题,但新手常以为是安装坏了。
- 默认端口是 8000,先查谁在用:
lsof -i :8000(macOS/Linux)或netstat -ano | findstr :8000(Windows) - 换端口启动:
php artisan serve --port=8001 - 别用
sudo php artisan serve强行绑定 80,开发环境没必要,还可能引发权限混乱 - 如果用 Valet 或 Docker,它们默认占了 80/443,
artisan serve必须换端口,否则永远起不来
.env 文件没生效,APP_DEBUG 显示 false 却看不到错误
Laravel 启动时读一次 .env,之后全靠缓存。改了 .env 不清缓存,等于白改。
- 改完
.env必须运行:php artisan config:clear(清配置缓存) - 如果还无效,检查
APP_ENV=local是否写错成production或拼错 —— 只有local才允许显示详细错误 -
APP_DEBUG=true仅在APP_ENV=local下生效,两者缺一不可 - 别把
.env提交到 Git,也别在服务器上手动改完就跑,记得清缓存
MySQL 连接不上:SQLSTATE[HY000] [1045] Access denied
这错误不是 Laravel 的锅,是 .env 里的数据库凭据和实际 MySQL 实例对不上。
- 确认
DB_HOST是127.0.0.1(不是localhost),尤其用 MAMP/MAMP Pro 或 Docker 时,localhost会走 socket,而127.0.0.1走 TCP,更可靠 -
DB_DATABASE必须是已创建好的库名,Laravel 不会自动建库 —— 先用mysql -u root -p -e "CREATE DATABASE myapp;" - Mac 上用 Homebrew 装的 MySQL,默认 root 密码为空;MAMP 默认是
root;Docker 镜像通常设为password,看你自己docker run时传的-e MYSQL_ROOT_PASSWORD - 改完
.env后,一定php artisan config:clear,不然 Laravel 还在用旧配置
最常被跳过的其实是 config:clear —— 改了 .env 却没清缓存,所有后续调试都建立在错误前提上。










