Laravel项目无法启动主因是PHP版本

如果您尝试搭建 Laravel 开发环境但项目无法正常启动或配置失效,则可能是由于 PHP 版本不兼容、扩展缺失、.env 未生效或端口冲突所致。以下是解决此问题的步骤:
一、验证并安装符合要求的 PHP 环境
PHP 是 Laravel 运行的基础,Laravel 10+ 强制要求 PHP ≥ 8.1,并需启用 openssl、pdo、mbstring、tokenizer、xml、ctype、json 等核心扩展。缺失任一扩展都可能导致 composer create-project 失败或 artisan 命令报错。
1、执行 php -v 检查当前 PHP 版本,若低于 8.1,请升级至 PHP 8.1、8.2 或 8.3。
2、运行 php -m | grep -E 'openssl|pdo|mbstring|tokenizer|xml|ctype|json'(Linux/macOS)或 php -m(Windows)确认扩展已启用。
3、若缺 intl 扩展(Mac 常见),Homebrew 用户执行 brew install php@8.2;Ubuntu/Debian 用户执行 sudo apt install php-intl。
二、配置 Composer 并拉取指定 LTS 版本
使用默认命令 composer create-project laravel/laravel 会拉取最新稳定版,可能非长期支持(LTS)版本,易引发生产兼容性风险。必须显式指定版本号以确保稳定性与 MySQL 兼容性。
1、设置国内镜像源提升下载成功率:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/。
2、创建项目时强制指定 Laravel 10(当前 LTS):composer create-project laravel/laravel:^10.0 myapp。
3、进入项目目录后立即执行 php artisan --version,确认输出为 Laravel Framework 10.x.x,否则说明版本未正确安装。
三、初始化并验证 .env 配置
.env 文件在 Laravel 启动时仅读取一次,后续全由配置缓存驱动。未清缓存即修改 .env,会导致 APP_DEBUG=false、数据库连接失败等静默错误。
1、复制示例文件:cp .env.example .env。
2、编辑 .env,确保以下三项准确无误:APP_ENV=local、APP_DEBUG=true、APP_URL=http://localhost:8000。
3、执行 php artisan key:generate 生成密钥(不可跳过,否则 session 加密失效)。
4、清除全部缓存:php artisan config:clear && php artisan cache:clear。
四、解决 MySQL 连接失败问题
SQLSTATE[HY000] [1045] Access denied 错误本质是凭据不匹配,而非 Laravel 框架缺陷。关键在于 DB_HOST 解析方式、数据库是否预创建、以及密码空值处理逻辑。
1、将 DB_HOST=localhost 改为 DB_HOST=127.0.0.1,避免 Unix socket 连接歧义(尤其 MAMP/Docker 环境)。
2、确认 DB_DATABASE 对应的数据库已在 MySQL 中手动创建,Laravel 不自动建库。
3、若 MySQL root 密码为空(如 Homebrew 默认),请设 DB_PASSWORD=(留空),切勿写成 DB_PASSWORD=null 或删除该行。
五、修复 php artisan serve 启动失败
Address already in use 表明 8000 端口被占用,常见于 Valet、Docker、其他 PHP 服务或残留进程。强行使用 sudo 绑定 80 端口将导致权限混乱,必须规避。
1、检查端口占用:macOS/Linux 执行 lsof -i :8000,Windows 执行 netstat -ano | findstr :8000。
2、终止占用进程:macOS/Linux 使用 kill -9 PID,Windows 使用 taskkill /PID PID /F。
3、换端口启动:php artisan serve --port=8001,并确保浏览器访问 http://localhost:8001。


















