本地开发环境搭建:PHP 8 + MySQL 从零配置
学 PHP 第一步不是写代码,是先把环境跑起来。环境装不好,后面每一步都在跟报错纠缠。这里把 Windows 上搭 PHP + MySQL 的三种常用方案讲清楚,按自己的情况选一种就行。
方案一:集成环境(最省事)
PHPStudy、XAMPP 这类集成包把 Apache/Nginx、PHP、MySQL 打包在一起,一键启动。适合刚起步的阶段:点一下图标,环境就绪,专心写代码。
缺点是版本更新慢、目录结构和自己装的服务器不一样,上线前最好在服务器上再验证一遍。
方案二:Docker(接近生产)
用 Docker 起 PHP + MySQL 两个容器,目录结构和线上基本一致。项目根目录放一个 docker-compose.yml:
services:
web:
image: php:8.2-apache
ports:
- "8080:80"
volumes:
- .:/var/www/html
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: root然后 docker compose up -d 就起来了。适合项目已经有一定规模、需要和团队保持一致的时候。
方案三:手动安装(了解原理)
官方下载 PHP(Windows 版解压即可用)和 MySQL,手动配置。麻烦,但能彻底搞懂每部分是什么。不建议新手一上来走这条路。
数据库连不上的常见原因
环境起来了,程序报"Connection refused"或者"Access denied",按这个顺序查:
- MySQL 服务有没有启动(集成环境里看图标状态);
- 端口对不对:默认 3306,被占用时可能被改成别的;
- 用户名密码对不对:root 的密码是安装时自己设的,不是默认的 root;
- PHP 连 MySQL 用的是 PDO 还是 mysqli,代码里对应写对:
<?php
$pdo = new PDO("mysql:host=127.0.0.1;dbname=test;charset=utf8mb4", "root", "你的密码");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "连接成功";这段代码能跑通,说明环境没问题,后面写代码遇到问题就不是环境的锅了。
最后提醒一句:本地环境永远别用生产数据练手,数据库密码也别图省事全设成 root。真出了事,恢复数据的成本远高于设个强密码的时间。