Laravel 项目启动失败主因是PHP版本/扩展不达标、Web服务器配置错误或.env未生效;需确认PHP≥8.1并启用mbstring等扩展,DocumentRoot指向public目录,且执行key:generate与config:clear。
直接用 laravel/installer 或 composer create-project 能跑起来,但多数人卡在 PHP 版本、扩展缺失、Apache/Nginx 配置或 .env 未生效上。
确认 PHP 环境是否达标
Laravel 10+ 要求 PHP ≥ 8.1,且必须启用 mbstring、openssl、pdo、tokenizer、xml、ctype、json 这些扩展。Windows 用户常漏掉 php.ini 中的 extension=openssl 和 extension=mbstring —— 注释没去掉就报 Class "Mbstring" not found。
- 运行
php -v看版本,再执行php -m | grep -E "(mbstring|openssl|pdo)"(Linux/macOS)或php -m(Windows,手动扫一遍) - 如果缺扩展,Linux 用
sudo apt install php-mbstring php-xml php-zip;macOS 用brew install [email protected]后注意echo 'export PATH="/opt/homebrew/opt/php/bin:$PATH"' >> ~/.zshrc - Windows 下改
php.ini后必须重启 Web 服务(不是浏览器),否则phpinfo()里看不到变化
用 Composer 创建项目时绕过权限和路径坑
别在系统根目录或带空格/中文路径下运行 composer create-project laravel/laravel myapp —— Windows 上容易因路径解析失败导致 vendor/autoload.php 找不到,报错 Failed to open stream: No such file or directory。
- 先确保 Composer 已全局安装且可用:
composer --version - 切换到干净英文路径,例如
D:\laravel\myapp或~/Sites/myapp - 运行
composer create-project laravel/laravel:^10.0 myapp(显式指定版本避免拉到 dev 分支) - 如果卡在
Installing dependencies,加--no-interaction --prefer-dist参数提速
Web 服务器配置最容易忽略的两点
用 php artisan serve 只适合本地调试;真要配 Apache/Nginx,核心是让请求全部落到 public/index.php,而不是项目根目录。很多人把整个 Laravel 文件夹扔进 htdocs,结果一访问就看到满屏文件列表或 403。