Windows11部署PHP环境教程
时间:2025-07-25 17:40:47 127浏览 收藏
本文详细介绍了在Windows 11上搭建PHP环境及本地部署的两种主流方法,旨在帮助开发者快速搭建高效的开发测试环境。针对初学者或追求快速上手的用户,推荐使用XAMPP集成环境,它简化了Apache、MySQL、PHP的配置过程,只需下载安装并启动服务,即可将项目文件放入指定目录进行访问。对于有经验的开发者,则推荐使用WSL2+Ubuntu+LAMP/LEMP栈,此方法更贴近生产环境,提供原生Linux体验,通过配置虚拟主机实现更专业的项目访问。文章还深入探讨了XAMPP的安装配置注意事项,以及多种PHP项目本地部署方案,包括htdocs目录直接部署和配置虚拟主机等,帮助读者根据自身需求选择合适的方案,高效进行PHP开发。
搭建Windows 11上的PHP开发和测试环境有两种主流方式:1. 使用XAMPP快速搭建,适合初学者或追求快速上手的用户,只需下载安装XAMPP、选择合适安装路径和组件,启动Apache和MySQL后,将项目文件放入htdocs目录即可访问;2. 使用WSL2+Ubuntu+LAMP/LEMP栈,适合有经验的开发者,启用WSL2后安装Apache或Nginx、MySQL、PHP及相关扩展,配置虚拟主机并部署项目文件至WSL文件系统,通过本地或IP地址访问。两种方式各有优势,XAMPP简单易用,WSL2更贴近生产环境并提供Linux原生体验。部署项目时还可选择htdocs目录直接部署或配置虚拟主机以实现更专业的访问方式。
在Windows 11上搭建PHP开发和测试环境,其实远比很多人想象的要简单和高效。核心思路无非是利用像XAMPP、WampServer这样的集成环境包,它们把Apache、MySQL、PHP以及phpMyAdmin打包在一起,省去了大量手动配置的麻烦。当然,如果你追求更接近Linux的开发体验,Windows Subsystem for Linux 2 (WSL2) 结合Docker或直接安装LAMP/LEMP栈,也是一个非常强大的选择,能让你在Windows下享受到几乎原生的Linux开发便利。本地部署PHP测试项目,最直接的方式就是把项目文件扔进集成环境的网站根目录,或者更优雅一点,配置虚拟主机。

解决方案
搭建PHP环境,我个人倾向于两种路径:对于初学者或追求快速上手的,XAMPP无疑是首选;而对于有一定经验,或者希望环境更贴近生产的,WSL2会是更好的伴侣。
路径一:使用XAMPP快速搭建

下载与安装:
- 访问Apache Friends官网下载最新版的XAMPP。选择适合你Windows 11系统的版本。
- 安装过程基本就是一路“下一步”,但有几点要注意:
- 安装路径: 避免安装在
C:\Program Files
目录下,因为这个目录权限比较特殊,可能会导致一些奇怪的问题。我通常会选择C:\xampp
或者D:\xampp
。 - 组件选择: 确保Apache、MySQL、PHP和phpMyAdmin都选中了。
- 安装路径: 避免安装在
启动与测试:
- 安装完成后,打开XAMPP Control Panel。
- 点击Apache和MySQL旁边的“Start”按钮,如果顺利,它们的状态会变成绿色。
- 打开浏览器,访问
http://localhost/
。如果看到XAMPP的欢迎页面,说明Apache和PHP已经正常工作了。 - 访问
http://localhost/phpmyadmin/
,可以进入phpMyAdmin管理数据库。
PHP项目部署:
- 最简单的部署方式,就是把你的PHP项目文件夹直接复制到
XAMPP安装目录\htdocs
下面。 - 比如,你的项目叫
my_php_project
,把它放到C:\xampp\htdocs\my_php_project
。 - 然后在浏览器中访问
http://localhost/my_php_project/
就可以看到你的项目了。
- 最简单的部署方式,就是把你的PHP项目文件夹直接复制到
路径二:WSL2 + Ubuntu + LAMP/LEMP栈 (进阶)
如果你对Linux环境更熟悉,或者需要更接近生产环境的体验,WSL2是Windows 11上一个非常强大的选择。
启用WSL2:
- 确保你的Windows 11版本支持WSL2。
- 打开PowerShell(管理员权限),运行
wsl --install
。这会自动安装WSL和Ubuntu发行版。 - 如果已经安装,确保你的Ubuntu发行版是WSL2模式:
wsl --set-version Ubuntu 2
。
在Ubuntu中安装LAMP/LEMP:
- 打开Ubuntu终端。
- 更新软件包列表:
sudo apt update && sudo apt upgrade
- 安装Apache2 (或Nginx):
sudo apt install apache2
(如果你喜欢Nginx,可以sudo apt install nginx
) - 安装MySQL Server:
sudo apt install mysql-server
- 安装PHP及其常用扩展:
sudo apt install php libapache2-mod-php php-mysql php-cli php-fpm php-json php-curl php-mbstring php-xml php-zip
(如果你用Nginx,需要php-fpm
而不是libapache2-mod-php
) - 配置Apache/Nginx: 主要是设置虚拟主机和PHP-FPM的连接。这部分比XAMPP复杂,但提供了更大的灵活性。
PHP项目部署 (WSL2):
- 将你的PHP项目文件克隆或复制到WSL文件系统内,例如
~/www/my_php_project
。 - 通过配置Apache/Nginx的虚拟主机,指向这个路径。
- 访问方式通常是
http://localhost
(如果你的WSL2端口映射正确) 或通过WSL的IP地址。
- 将你的PHP项目文件克隆或复制到WSL文件系统内,例如
为什么在Windows 11上搭建PHP环境依然是可行的选择?
很多人可能会觉得,PHP开发就应该在Linux上,Windows总感觉有点“别扭”。说实话,这种看法在以前确实有它的道理,尤其是在性能和兼容性方面。但现在,Windows 11加上WSL2的出现,彻底改变了这种局面。我个人觉得,在Windows 11上搭建PHP环境,不仅可行,甚至在某些场景下还挺香的。
首先,方便性是王道。对于很多开发者来说,日常工作和娱乐都在Windows上,如果能直接在同一个系统里完成开发,那省去了虚拟机切换、文件同步的麻烦。XAMPP这种集成包,点几下鼠标就能跑起来,对新手非常友好。你不需要去理解Linux的包管理、服务管理,直接把精力放在PHP代码上。
其次,WSL2是真正的游戏规则改变者。它提供了一个完整的Linux内核,这意味着你可以在Windows里运行一个几乎原生的Linux环境。PHP在Linux下的性能和兼容性优势,通过WSL2几乎可以无损地带到Windows上。我经常在WSL2里跑Composer、Artisan命令,那感觉跟在纯Linux机器上没两样,而且还能直接访问Windows的文件系统,用Windows下的VS Code、PHPStorm等IDE,无缝切换,效率高得吓人。以前Windows下的文件I/O性能对PHP框架(比如Laravel)来说是个痛点,WSL2则很好地解决了这个问题。
当然,它也有一些小小的“妥协”。比如,如果你完全不用WSL2,直接在Windows原生环境下跑Apache和PHP,遇到一些权限问题或者路径斜杠问题,可能会让你挠头。但这些都是可以解决的,而且社区里有大量的解决方案。总的来说,Windows 11作为PHP开发平台,已经足够成熟和强大,足以应对绝大多数的开发需求。
XAMPP安装与基础配置:避开那些小坑
XAMPP虽然方便,但初次接触时,还是有些小细节需要注意,否则可能会让你卡壳。我第一次装的时候,就因为端口冲突搞得焦头烂额。
安装路径的选择: 前面提过,不要装在
C:\Program Files
。我一般会直接放在C盘根目录,比如C:\xampp
。这样可以避免Windows UAC(用户账户控制)带来的权限问题,尤其是在你尝试修改配置文件或者往htdocs
目录里写入文件时,能省不少心。端口冲突是常客: 这是XAMPP最常见的“坑”。
- Apache (端口80和443): 很多软件都喜欢占用80端口,比如Skype(老版本)、IIS(如果你开了的话)、甚至是某些VPN客户端。如果Apache启动失败,Control Panel里会提示端口被占用。
- 解决方案: 你可以修改Apache的监听端口。打开
XAMPP安装目录\apache\conf\httpd.conf
文件,找到Listen 80
,把它改成Listen 8080
或者其他你喜欢的端口。如果用了HTTPS,也要改XAMPP安装目录\apache\conf\extra\httpd-ssl.conf
里的Listen 443
。改完后,以后访问就是http://localhost:8080/
了。
- 解决方案: 你可以修改Apache的监听端口。打开
- MySQL (端口3306): 同样,如果你的机器上已经安装了其他数据库服务(比如SQL Server Express),或者其他软件占用了3306端口,MySQL就无法启动。
- 解决方案: 打开
XAMPP安装目录\mysql\bin\my.ini
文件,找到port = 3306
,改成port = 3307
之类的。别忘了,你的PHP代码里连接MySQL时也要用新的端口。
- 解决方案: 打开
- Apache (端口80和443): 很多软件都喜欢占用80端口,比如Skype(老版本)、IIS(如果你开了的话)、甚至是某些VPN客户端。如果Apache启动失败,Control Panel里会提示端口被占用。
PHP配置 (
php.ini
): XAMPP默认的php.ini
配置通常已经够用,但有些时候你可能需要调整。- 错误显示: 开发阶段,我习惯把错误显示出来。打开
XAMPP安装目录\php\php.ini
,找到display_errors = Off
改成display_errors = On
,同时error_reporting = E_ALL
确保所有错误都报告。 - 上传文件大小: 如果你的应用需要上传大文件,可能需要调整
upload_max_filesize
和post_max_size
。 - 扩展启用: 某些PHP功能需要特定的扩展。比如,如果你要用GD库处理图片,需要找到
extension=gd
并确保它前面没有分号(;
)。其他像curl
、mysqli
等也是一样。
- 错误显示: 开发阶段,我习惯把错误显示出来。打开
安全提示: XAMPP默认安装后,phpMyAdmin是没有密码的,这在本地开发环境没问题,但如果你不小心把它暴露到公网,那可就危险了。XAMPP Control Panel里有个“Shell”按钮,点击后可以运行
mysql_secure_installation
命令来设置MySQL的root密码。
这些都是些小细节,但处理好了,能让你的开发体验顺畅很多。
PHP测试项目本地部署:多种路径选择
本地部署PHP项目,其实就是让Apache(或Nginx)知道你的项目文件在哪里,并且能通过一个URL访问到它。除了最简单的直接扔进 htdocs
,我们还有更灵活、更接近真实生产环境的方式。
最直接粗暴:
htdocs
文件夹- 这是XAMPP(或WampServer)提供给你的默认网站根目录。
- 操作: 你只需要把你的整个PHP项目文件夹(比如
my_awesome_project
)复制到XAMPP安装目录\htdocs
下面。 - 访问: 然后在浏览器里输入
http://localhost/my_awesome_project/
就可以访问了。 - 优点: 简单,零配置。
- 缺点: URL不够“干净”,所有项目都在
localhost/
下面,如果项目多了,管理起来有点乱。而且,这和生产环境的域名访问方式不太一样。
更优雅专业:配置虚拟主机 (Virtual Hosts)
- 虚拟主机允许你为每个项目设置一个独立的域名(比如
myproject.local
),就像在真实的服务器上一样。这样你的开发环境就更接近生产环境了。 - 操作步骤:
- 启用Apache虚拟主机模块: 打开
XAMPP安装目录\apache\conf\httpd.conf
,找到Include conf/extra/httpd-vhosts.conf
这一行,确保它前面没有#
号(取消注释)。 - 配置虚拟主机: 打开
XAMPP安装目录\apache\conf\extra\httpd-vhosts.conf
文件。你可以在这里添加你的项目配置。一个典型的配置是这样的:DocumentRoot "C:/xampp/htdocs/my_awesome_project/public" # 你的项目根目录,通常是public ServerName myproject.local # 你想用的域名 # 可以添加更多虚拟主机,每个项目一个AllowOverride All # 允许.htaccess文件生效 Require all granted ErrorLog "logs/myproject.local-error.log" CustomLog "logs/myproject.local-access.log" common注意:
DocumentRoot
指向的是你项目的“公开”文件夹,比如Laravel项目就是public
文件夹。 - 修改
hosts
文件: 这一步是让你的电脑知道myproject.local
这个域名应该指向localhost
。- 用管理员权限打开记事本(或者任何文本编辑器)。
- 打开文件
C:\Windows\System32\drivers\etc\hosts
。 - 在文件末尾添加一行:
127.0.0.1 myproject.local
- 保存文件。
- 重启Apache: 在XAMPP Control Panel里,停止Apache再启动。
- 启用Apache虚拟主机模块: 打开
- 访问: 现在你可以在浏览器中直接输入
http://myproject.local/
来访问你的项目了。 - 优点: URL干净,模拟真实生产环境,便于管理多个项目。
- 虚拟主机允许你为每个项目设置一个独立的域名(比如
WSL2下的部署:更接近Linux原生
- 如果你选择了WSL2作为开发环境,部署方式就更像在Linux服务器上操作了。
- 文件位置: 通常,我会把项目克隆或复制到WSL文件系统内的某个目录,比如
~/www/my_awesome_project
。 - Web服务器配置: 在WSL的Ubuntu里,你会像在任何Linux服务器上一样配置Nginx或Apache的虚拟主机。例如,对于Nginx,你会在
/etc/nginx/sites-available/
下创建一个配置文件,然后软链接到/etc/nginx/sites-enabled/
。 - 访问: 由于WSL2和Windows之间有很好的网络集成,你通常可以直接通过
http://localhost
访问到WSL2内部运行的Web服务,或者通过WSL2分配的IP地址。 - 优点: 完全模拟Linux生产环境,性能更好,尤其是在处理大量文件I/O的框架(如Composer、Node.js依赖)时优势明显。
选择哪种部署方式,取决于你的需求和熟悉程度。对我来说,小项目或者快速原型,XAMPP的 htdocs
就够了。稍微正规点的项目,我一定会用虚拟主机。而如果是大型项目或者需要特定Linux工具链的,WSL2是我的不二之选。
今天带大家了解了的相关知识,希望对你有所帮助;关于文章的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
170 收藏
-
220 收藏
-
480 收藏
-
242 收藏
-
426 收藏
-
300 收藏
-
198 收藏
-
386 收藏
-
117 收藏
-
213 收藏
-
146 收藏
-
113 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 511次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 498次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 484次学习