直接用集成环境或容器最省事,PHP 8.2 + Composer + MySQL 组合无需编译,关键在版本匹配、扩展齐全、配置无冲突;Windows 推荐 PHPStudy 或宝塔面板,macOS 用 Homebrew,Linux 用 APT 安装,并务必配置 Composer 国内镜像源及 Laravel 项目启动前清缓存。

直接用集成环境或容器最省事,PHP 8.2 + Composer + MySQL 这套组合不需要从零编译,重点是版本对得上、扩展开得全、配置不冲突。
选对工具,避开手动折腾
Windows 用户优先用 PHPStudy 或宝塔面板,它们已预装 PHP 8.2、MySQL 8.0+ 和 Apache/Nginx,界面点几下就能启停服务,不用改 PATH、不碰 php.ini。macOS 用户推荐 Homebrew:brew install php@8.2 mysql,再执行 brew services start mysql。Linux(如 Ubuntu)用 APT 安装更稳:sudo apt install php8.2-cli php8.2-mysql php8.2-mbstring php8.2-xml php8.2-opcache php8.2-curl——别漏掉 php8.2-mysql,这是 PDO 连接 MySQL 的关键。
Composer 必须配国内镜像源
默认源在国外,拉 Laravel 项目常卡住或失败。安装完 Composer 后立刻执行:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/- 验证是否生效:
composer config -g repo.packagist应返回阿里云地址 - 创建项目时加
--prefer-dist加速下载:composer create-project laravel/laravel:^10.0 myapp --prefer-dist(Laravel 10 是当前 LTS,兼容 PHP 8.2)
MySQL 连接不上的几个硬核细节
报 SQLSTATE[HY000] [1045] Access denied 不是 Laravel 的问题,90% 出在凭据或连接方式:
立即学习“PHP免费学习笔记(深入)”;
- DB_HOST 写 127.0.0.1,别写 localhost:后者在多数环境下会走 Unix socket,而 Laravel 默认走 TCP
-
DB_DATABASE 必须是已创建的库名:Laravel 不自动建库,进 MySQL 手动执行:
CREATE DATABASE myapp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -
密码为空也要显式写出来:比如 MAMP 或 Homebrew MySQL 默认 root 密码为空,
DB_PASSWORD=不能留空行,要写成DB_PASSWORD= -
Docker 环境注意容器名:如果 DB 在容器里,
DB_HOST=mysql(对应 docker-compose.yml 中的服务名),不是127.0.0.1
启动前必做的三件事
很多人跑 php artisan serve 失败,其实和 Laravel 本身无关:
- 检查 8000 端口是否被占:
lsof -i :8000(macOS/Linux)或netstat -ano | findstr :8000(Windows),找到 PID 后杀掉,或直接换端口:php artisan serve --port=8001 -
.env改完必须清缓存:php artisan config:clear,否则APP_DEBUG=true不生效 - 确保
APP_ENV=local和APP_DEBUG=true同时存在且拼写正确——production 下APP_DEBUG永远无效



















