广告

Windows 11 上开启 PHP 服务的完整教程:本地开发环境搭建与常见问题解答

本文聚焦 Windows 11 上开启 PHP 服务的完整教程:本地开发环境搭建与常见问题解答。无论你选择集成环境还是手动搭建,本文都给出步骤、命令与注意事项,帮助你快速上手。

1. 快速上手:在 Windows 11 上使用 XAMPP/WAMP 搭建本地 PHP 服务

1.1 下载与安装

在 Windows 11 上快速搭建本地开发环境,优选 XAMPP 或 WampServer。 这类集成环境将 Apache、PHP、数据库等组合在一个安装包中,便于初学者快速起步。下载后按照向导一步步安装,选择合适的根目录(如 C:\xampp\htdocs),并在安装完成后打开控制面板。

安装完成后,确保防火墙允许端口 80/443 的访问,以便本地浏览器可以直接访问。为了验证 PHP 是否工作正常,可以在 htdocs 目录创建一个测试文件。

# 在 XAMPP 安装目录下创建一个测试 PHP 文件
New-Item -Path "C:\xampp\htdocs\info.php" -ItemType File -Force -Value ""

在 Windows 资源管理器中浏览到 http://localhost/info.php,若看到 PHP 信息页,表示 PHP 服务已经在本地正常工作。注意:不同版本的 XAMPP 可能自带不同版本的 PHP,请根据项目需求选择对应版本。

1.2 启动与验证

使用 XAMPP 控制面板,点击“Start”按钮启动 Apache 和 MySQL,确保服务处于 绿色运行状态。若遇到端口冲突,可以临时修改监听端口或停止占用端口的其他服务。

在浏览器中输入 http://localhost,若看到默认欢迎页,表示服务器已就绪。此时可以将应用代码放在 C:\xampp\htdocs\ 目录下,并通过 http://localhost/你的文件夹名 访问。务必保持开发环境的简单清晰,便于后续维护。

1.3 数据库与常用扩展

大多数本地开发项目需要数据库支持,XAMPP 默认包含 MariaDB/mysql,你可以通过 phpMyAdmin(通常是 http://localhost/phpmyadmin)进行数据库管理。若需要额外的 PHP 扩展,例如 mysqli、pdo_mysql,请在控制面板中勾选或在 php.ini 中启用相应扩展。

为了确保开发过程的一致性,记录数据库版本与 PHP 版本,并在新的项目中使用相同的环境配置。这样可以减少“在本机跑不起来”的问题。若项目涉及 Laravel、ThinkPHP 等框架,请按照框架文档配置数据库连接。

2. 使用 WSL2 + Ubuntu 的本地开发环境(LAMP)

2.1 启用 WSL2 与安装 Ubuntu

在 Windows 11 上,WSL2 提供了接近原生 Linux 的环境,适合搭建 LAMP/LEMP 栈。先开启 WSL2,然后安装 Ubuntu 发行版。可以使用以下命令快速安装最新 Ubuntu 版本:wsl --install -d Ubuntu-22.04

# 通过管理员权限的 PowerShell 执行
wsl --install -d Ubuntu-22.04

安装完成后,在 Windows 终端或 PowerShell 中输入 wsl 即可进入 Ubuntu shell。首次进入时,按照提示创建用户及密码。确保机器开启虚拟化,并使用 WSL2 作为默认版本,以获得更好的性能与兼容性。

2.2 安装 Apache、PHP、MySQL

在 Ubuntu 中安装 LAMP 栈,Apache、PHP、MySQL 一次到位,基本命令如下:需要 root 权限或 sudo

sudo apt update
sudo apt upgrade -y
sudo apt install -y apache2 php libapache2-mod-php php-mysql mysql-server
sudo systemctl enable apache2.service
sudo systemctl start apache2.service
sudo systemctl enable mysql.service
sudo systemctl start mysql.service

安装完成后,在浏览器中访问 http://localhost,如果看到 Apache 的默认页,表示 LAMP 服务已就绪。为了测试 PHP,可以在 /var/www/html/ 下创建 info.php,内容为 <?php phpinfo(); ?>,然后在浏览器访问 http://localhost/info.php

<?php
phpinfo();
?>

如果你需要更高的安全性,对 MySQL 设置 root 密码并创建普通用户来测试数据库连接。也可以安装 phpMyAdmin 做数据库可视化管理,常用命令如下:安装 phpMyAdmin 需要额外配置

2.3 配置与测试

为了使本地 CLI 与 Web 环境保持一致,将项目代码放在 /var/www/html 下,确保文件权限正确(可使用 sudo chown -R www-data:www-data /var/www/html)。

如果要在 Windows 端直接访问 WSL 的 Web 服务,可以通过 127.0.0.1 或 localhost 访问,WSL2 已经实现了对端口的转发能力,确保防火墙没有阻止相关端口。在测试时,可以使用 curl 进行快速验证:curl http://localhost/info.php

# 测试 PHP 是否工作
curl http://localhost/info.php

2.4 进一步的本地开发配置

对于多项目开发,建议使用虚拟主机来管理不同站点。你可以在 Apache 的配置中添加 虚拟主机,并为每个项目配置不同的域名或子域名。确保 /etc/hosts 中有相应的映射,如 127.0.0.1 example.test,再在 Apache 配置中启用对应的虚拟主机。这样可以更接近生产环境的开发体验

Windows 11 上开启 PHP 服务的完整教程:本地开发环境搭建与常见问题解答

# 例:创建一个简单的虚拟主机(/etc/apache2/sites-available/example.conf)
ServerName example.testDocumentRoot /var/www/html/exampleAllowOverride AllRequire all granted

# 启用站点并重启 Apache
sudo a2ensite example.conf
sudo systemctl reload apache2

3. 手动逐步搭建(非集成安装)

3.1 下载并配置 Windows 端 PHP

如果你选择不使用集成环境,可以从 windows.php.net 下载 PHP 的 Windows 二进制包,然后手动配置。首先下载合适的 PHP 版本,解压到一个目录,例如 C:\php\php-8.2,并把该目录添加到系统 PATH,这样在任意命令行窗口都可以直接使用 php 命令。

# 在 PowerShell(管理员)中执行:
setx PATH "%PATH%;C:\php\php-8.2"

接着需要手动配置一个简单的服务器环境,浏览器端仍然需要通过某个服务器(如 Apache)来处理 PHP 请求。确保在 php.ini 中启用必要扩展,例如 extension=mysqli、extension=pdo_mysql。

3.2 配置 Apache 与 PHP 的联动

如果使用手动安装 Apache,请在 httpd.conf 中添加 PHP 模块的加载与处理程序。一个简化示例如下,确保路径指向你实际的 PHP 组件:

# httpd.conf 的简化片段
LoadModule php7_module "C:/php/php-7.4/php7apache2_4.dll"
AddHandler application/x-httpd-php .php
PHPIniDir "C:/php/php-7.4"

完成配置后,重启 Apache,再通过浏览器访问包含 的文件,验证 PHP 是否被正确解析。若成功,表示 Windows 端的手动搭建也已完成。记得定期更新组件版本以修复漏洞

4. 常见问题解答

4.1 端口冲突怎么办?

如果本地服务无法启动,先检查端口是否被其他程序占用,如 IIS、Skype、Teams 等。你可以通过在命令行查看端口占用情况,停止占用端口的进程或修改服务监听端口,从而让 PHP 服务正常启动。

# 在 Windows 上查看 80 端口占用
netstat -ano | findstr :80
# 结束对应 PID 的进程(以管理员权限执行)
taskkill /PID  /F

4.2 防火墙配置影响本地访问吗?

是的,防火墙默认可能阻止本地端口访问。请确认防火墙设置中允许对本机的端口 80、443 以及你使用的自定义端口的访问。对于短期测试,可以临时关闭防火墙或添加例外规则,但请在完成测试后恢复安全设置。

# Windows 防火墙示例(PowerShell)
New-NetFirewallRule -DisplayName "Allow Apache Port 80" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow

4.3 PHP 版本未生效或扩展无法加载

若浏览器显示未找到页面或 PHP 信息页为空,请确认 PHP 路径、版本与 Apache 的加载模块配置一致。常见原因包括 php.ini 路径错误、扩展未加载、或 多个 PHP 版本混用。建议统一版本并重启服务,确保配置生效。

 

4.4 数据库连接失败如何排查?

若应用需要连接数据库,请检查数据库用户、密码、主机名与端口,以及数据库名称是否存在。确保数据库服务器正在运行,并且 使用正确的主机地址(如 mysqli_connect('localhost','user','pass','db'))。在 WSL2 场景下,增添跨平台访问的配置也很常见。

connect_errno) {echo "MySQL 连接失败: " . $mysqli->connect_error;
} else {echo "MySQL 连接成功";
}
?> 

4.5 WSL2 性能与兼容性优化

在 Windows 11 上使用 WSL2 时,默认的磁盘 I/O 与文件系统性能对 PHP 的响应时间有影响。为了获得更稳定的性能,可以将代码放在 Linux 文件系统中(/home/你的用户名/)并尽量减少在 Windows 与 WSL 之间大量频繁的文件共享。开启 WSL2 的内存与 CPU 限制优化也有帮助,可通过 .wslconfig 文件进行配置。

# 示例:~/.wslconfig 的简单优化
[wsl2]
memory=4GB
processors=2
swap=0

通过以上方法,你可以在 Windows 11 上实现 开启 PHP 服务的完整教程:本地开发环境搭建与常见问题解答,涵盖从快速集成到手动定制的多种途径,以及常见问题的排查要点。无论是在企业开发、个人练习还是教学演示中,这些步骤都能帮助你快速建立可用的本地 PHP 开发环境。

广告

后端开发标签