Windows 安装
在 Windows 系统上安装 PHP 有多种方式可供选择,从官方提供的预编译二进制包到集成的开发环境套件,再到 Windows Subsystem for Linux 2 (WSL2),每种方式都有其适用的场景。本节将详细介绍这些安装方法,帮助你根据实际需求选择最适合的方案。
近年来,随着 WSL2 的成熟和 Docker Desktop 对 Windows 的支持,Windows 上的 PHP 开发体验已经大幅改善。本节将覆盖所有主流的 Windows PHP 安装方案。
前置知识
- 了解 Windows 系统的基本操作和文件管理
- 具备命令提示符(CMD)或 PowerShell 的基本使用能力
- 了解 Windows 环境变量的概念
基础概念
Windows 上的 PHP 运行方式
在 Windows 上运行 PHP 主要有以下几种方式:
| 方式 | 说明 | 推荐度 |
|---|---|---|
| 官方二进制包 | 从 php.net 下载 zip 包,手动配置 | 中等 |
| 集成环境 | XAMPP/Wnmp 等一键安装套件 | 适合初学者 |
| WSL2 | 在 Windows 上运行 Linux 子系统 | 强烈推荐 |
| Docker | 通过容器运行 PHP | 推荐 |
线程安全(Thread Safe)与 非线程安全(Non Thread Safe)
Windows 版 PHP 提供两种编译版本,选择正确的版本至关重要:
- Thread Safe (TS):适用于 Apache + mod_php 或 IIS。PHP 作为服务器模块嵌入运行,共享同一个进程空间。
- Non Thread Safe (NTS):适用于 FastCGI 模式(IIS + FastCGI、Nginx + php-cgi)或命令行使用。每个请求在独立的进程中运行。
版本选择规则
- 如果使用 IIS + FastCGI 或 Nginx,选择 NTS 版本
- 如果使用 Apache + mod_php,选择 TS 版本
- 如果不确定或使用 CLI 开发,选择 NTS 版本(更通用)
- WSL2/Docker 环境下此选择不适用(使用 Linux 版 PHP)
官方安装包安装
步骤 1:下载 PHP
访问 PHP 官方下载页面,选择适合的版本:
# PHP 官方下载地址
# https://www.php.net/downloads.php
# Windows 专用下载页:
# https://windows.php.net/download/下载说明:
- 在下载页面选择 PHP 8.2(或更新的稳定版本)
- 在 "Windows downloads" 区域,根据架构选择 VS16 x64 Non Thread Safe 或 VS16 x86 Non Thread Safe
- 下载 ZIP 压缩包(非Installer)
关于 VS16 和 VS17
- VS16 = Visual Studio 2019 编译,兼容 Windows 7+
- VS17 = Visual Studio 2022 编译,要求 Windows 10 1903+
- 推荐 VS17 版本,它使用了更新的编译器,性能更优
步骤 2:解压安装
# 创建 PHP 安装目录
mkdir C:\php
# 解压下载的 ZIP 包到 C:\php
# (可通过文件资源管理器或 PowerShell 展开)
Expand-Archive -Path php-8.2.20-nts-Win32-vs17-x64.zip -DestinationPath C:\php步骤 3:配置 php.ini
# 进入 PHP 安装目录
cd C:\php
# 复制配置文件模板
copy php.ini-development php.ini编辑 C:\php\php.ini 文件,修改以下关键配置:
; 扩展目录
extension_dir = "C:\php\ext"
; 时区设置(必须配置)
date.timezone = Asia/Shanghai
; 常用扩展(去掉前面的分号 ; 来启用)
extension=mysqli
extension=pdo_mysql
extension=mbstring
extension=openssl
extension=curl
extension=gd
extension=zip
extension=fileinfo
extension=intl
extension=exif
; 内存限制
memory_limit = 256M
; 上传文件大小
upload_max_filesize = 64M
post_max_size = 128M
; 错误显示(开发环境开启)
display_errors = On
error_reporting = E_ALL
; OPcache(生产环境开启)
[opcache]
opcache.enable = 1
opcache.memory_consumption = 256
opcache.max_accelerated_files = 20000
opcache.jit_buffer_size = 64M步骤 4:配置环境变量
# 以管理员身份运行 PowerShell
# 将 PHP 目录添加到系统 PATH 环境变量
$env:Path += ";C:\php"
# 永久添加(通过系统属性也可以手动操作)
[Environment]::SetEnvironmentVariable(
"Path",
[Environment]::GetEnvironmentVariable("Path", "Machine") + ";C:\php",
"Machine"
)或者通过图形界面操作:
- 右键"此电脑" -> "属性" -> "高级系统设置"
- 点击"环境变量"
- 在"系统变量"中找到
Path,点击"编辑" - 点击"新建",添加
C:\php - 点击"确定"保存
步骤 5:验证安装
# 打开新的 PowerShell 窗口(确保环境变量生效)
php -v
# 输出示例:
# PHP 8.2.20 (cli) (built: Jun 4 2024 15:41:19)
# (NTS Visual C++ 2019 x64)
# 验证扩展
php -m
# 验证配置文件路径
php --iniXAMPP/Wnmp 集成环境
对于初学者或需要快速搭建 PHP + MySQL + Apache 的完整开发环境,集成套件是最方便的选择。
XAMPP 安装
XAMPP 是 Apache Friends 提供的免费开源跨平台集成环境,包含 Apache、MySQL、PHP 和 Perl。
# XAMPP 官方下载地址
# https://www.apachefriends.org/安装步骤:
- 从官网下载 XAMPP Windows 版安装包
- 运行安装程序,选择安装目录(如
C:\xampp) - 安装完成后,通过 XAMPP Control Panel 启动 Apache 和 MySQL
- 访问
http://localhost/dashboard/确认安装成功
# 验证 XAMPP 中的 PHP
C:\xampp\php\php.exe -vXAMPP 中的 PHP 配置
XAMPP 使用 Thread Safe 版本的 PHP。配置文件位于 C:\xampp\php\php.ini。如果需要升级 XAMPP 中的 PHP 版本,建议整体升级 XAMPP,而非单独替换 PHP 文件。
Wnmp 安装
Wnmp (Windows + Nginx + MySQL + PHP) 是一个轻量级的 Windows 集成环境,使用 Nginx 替代 Apache,更加轻量。
# Wnmp 官方下载地址
# https://wnmp.x64architecture.com/安装步骤:
- 下载 Wnmp 安装包
- 解压到目标目录(如
C:\wnmp) - 运行
start.bat或通过 Nginx Service Manager 管理服务 - 访问
http://localhost确认安装成功
Wnmp 支持通过配置面板快速切换 PHP 版本,适合需要在多个版本之间切换的开发者。
WSL2 安装
WSL2(Windows Subsystem for Linux 2)是在 Windows 上运行原生 Linux 环境的最佳方式。通过 WSL2 安装 PHP 等同于在 Linux 上安装,可以获得与生产环境一致的体验。
步骤 1:安装 WSL2
# 以管理员身份运行 PowerShell
# 安装 WSL2(Windows 10 2004+ 或 Windows 11)
wsl --install
# 默认安装 Ubuntu。如需指定发行版:
wsl --install -d Ubuntu-22.04
# 安装完成后重启计算机步骤 2:初始化 Linux 环境
# 打开 WSL 终端(PowerShell 中输入 wsl 即可进入)
# 更新系统包
sudo apt update && sudo apt upgrade -y
# 添加 PHP PPA
sudo apt install software-properties-common -y
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update步骤 3:安装 PHP
# 安装 PHP 8.2 及常用扩展
sudo apt install -y php8.2-cli php8.2-fpm php8.2-common \
php8.2-mysql php8.2-mbstring php8.2-xml \
php8.2-curl php8.2-zip php8.2-gd \
php8.2-intl php8.2-readline php8.2-opcache
# 验证
php -v步骤 4:配置 Nginx(可选)
# 在 WSL 中安装 Nginx
sudo apt install -y nginx
sudo systemctl start nginx
# 配置 Nginx 站点
sudo tee /etc/nginx/sites-available/default > /dev/null <<'EOF'
server {
listen 80;
server_name localhost;
root /var/www/html;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
EOF
# 重启 Nginx
sudo systemctl restart nginx
sudo systemctl restart php8.2-fpm步骤 5:在 Windows 中访问 WSL 服务
# WSL2 中的服务可以通过 localhost 在 Windows 中直接访问
# 例如,在 WSL 中启动 PHP 内置服务器:
# 在 WSL 终端中
cd /var/www/html
php -S localhost:8080
# 然后在 Windows 浏览器中访问 http://localhost:8080WSL2 文件系统性能
在 WSL2 中,直接访问 Linux 文件系统(/home/...)的性能远优于访问 Windows 文件系统(/mnt/c/...)。建议将项目代码放在 WSL 的文件系统内,而非 Windows 的 C 盘中,可以获得显著的 I/O 性能提升。
环境变量配置
Windows 上的 PHP 环境变量配置与 Unix 系统有所不同,需要特别注意以下几点。
PATH 配置
# 临时设置(仅当前会话)
$env:Path += ";C:\php"
# PowerShell 永久设置(当前用户)
[Environment]::SetEnvironmentVariable(
"Path",
[Environment]::GetEnvironmentVariable("Path", "User") + ";C:\php",
"User"
)
# PowerShell 永久设置(所有用户,需要管理员权限)
[Environment]::SetEnvironmentVariable(
"Path",
[Environment]::GetEnvironmentVariable("Path", "Machine") + ";C:\php",
"Machine"
)PHP 相关环境变量
# PHPRC — 指定 php.ini 文件的搜索目录
[Environment]::SetEnvironmentVariable("PHPRC", "C:\php", "User")
# PHP_INI_SCAN_DIR — 指定额外的 ini 文件扫描目录
[Environment]::SetEnvironmentVariable("PHP_INI_SCAN_DIR", "C:\php\conf.d", "User")验证安装
基本验证
# 1. 检查 PHP 版本
php -v
# 2. 查看已加载模块
php -m
# 3. 查看配置文件路径
php --ini
# 4. 检查特定配置值
php -r "echo ini_get('date.timezone');"
# 5. 运行测试脚本
php -r "echo 'Hello, PHP ' . PHP_VERSION . PHP_EOL;"创建测试页面
<?php
declare(strict_types=1);
echo "PHP 版本: " . PHP_VERSION . "\n";
echo "操作系统: " . PHP_OS . "\n";
echo "SAPI: " . PHP_SAPI . "\n";
echo "服务器软件: " . $_SERVER['SERVER_SOFTWARE'] ?? "CLI 模式" . "\n";
echo "当前时间: " . date('Y-m-d H:i:s') . "\n";将以上内容保存为 C:\php\test.php,然后运行:
php C:\php\test.php详细配置
IIS 集成配置
如果你使用 Windows Server + IIS 作为 Web 服务器,需要配置 IIS 通过 FastCGI 运行 PHP。
# 步骤 1:安装 IIS 和 CGI 模块
# 通过"启用或关闭 Windows 功能"安装 IIS
# 或使用 PowerShell(管理员):
Enable-WindowsOptionalFeature -Online -FeatureName IIS-WebServerRole,Web-CGI
# 步骤 2:下载并安装 PHP Manager for IIS
# https://github.com/phpmanager/phpmanager/releases
# PHP Manager 提供了图形界面来管理 IIS 中的 PHP 配置
# 步骤 3:使用 PHP Manager 注册 PHP
# 打开 IIS 管理器 -> PHP Manager -> Register new PHP version
# 指向 C:\php\php-cgi.exeNginx + PHP-CGI 配置
# nginx.conf 配置示例
worker_processes auto;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
root C:/www;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
}# 启动 PHP-CGI(FastCGI 模式)
C:\php\php-cgi.exe -b 127.0.0.1:9000
# 或创建一个 .bat 脚本方便启动
@echo off
title PHP-CGI FastCGI
C:\php\php-cgi.exe -b 127.0.0.1:9000Apache + PHP 模块配置
如果使用 Apache,需要下载 Thread Safe 版本的 PHP,并配置 httpd.conf:
# httpd.conf 中添加以下配置
# 加载 PHP 模块(路径根据实际情况调整)
LoadModule php_module "C:/php/php8apache2_4.dll"
# 关联 .php 文件
AddHandler application/x-httpd-php .php
# 设置 php.ini 目录
PHPIniDir "C:/php"
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>实战示例
Windows 快速搭建 Laravel 开发环境
# 1. 确认 PHP 已安装
php -v
# 2. 安装 Composer
# 下载 Composer 安装程序
Invoke-WebRequest -Uri https://getcomposer.org/installer -OutFile composer-setup.php
php composer-setup.php
Remove-Item composer-setup.php
# 全局安装 Composer
Move-Item composer.phar C:\php\composer.phar
# 创建 Composer 包装脚本
@'
@php "%~dp0composer.phar" %*
'@ | Out-File -Encoding ASCII C:\php\composer.cmd
# 验证
composer --version
# 3. 创建 Laravel 项目
composer create-project laravel/laravel my-project
cd my-project
# 4. 启动开发服务器
php artisan serve
# Laravel development server started: http://127.0.0.1:8000WSL2 中搭建完整 PHP 开发环境
#!/bin/bash
# WSL2 PHP 开发环境一键搭建脚本
set -e
# 更新系统
sudo apt update && sudo apt upgrade -y
# 安装基础工具
sudo apt install -y curl wget git unzip vim build-essential
# 添加 PHP PPA 并安装 PHP 8.2
sudo apt install -y software-properties-common
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update
sudo apt install -y php8.2-cli php8.2-fpm php8.2-common \
php8.2-mysql php8.2-sqlite3 php8.2-pgsql \
php8.2-mbstring php8.2-xml php8.2-curl \
php8.2-zip php8.2-gd php8.2-intl \
php8.2-readline php8.2-opcache php8.2-xdebug
# 安装 Nginx
sudo apt install -y nginx
sudo systemctl enable nginx
sudo systemctl start nginx
# 安装 MySQL
sudo apt install -y mysql-server
sudo mysql_secure_installation
# 安装 Composer
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
# 配置 PHP-FPM(使用当前用户运行,避免权限问题)
sudo sed -i 's/www-data/'$(whoami)'/g' /etc/php/8.2/fpm/pool.d/www.conf
sudo systemctl restart php8.2-fpm
echo "环境搭建完成!"
echo "PHP 版本: $(php -v | head -n 1)"
echo "Nginx 状态: $(systemctl is-active nginx)"
echo "PHP-FPM 状态: $(systemctl is-active php8.2-fpm)"
echo "Composer 版本: $(composer --version)"注意事项
常见问题排查
| 问题 | 原因 | 解决方案 |
|---|---|---|
php 不是内部或外部命令 | PATH 未正确配置 | 重新检查环境变量,确保包含 PHP 目录 |
找不到 php.ini | 未正确复制模板文件 | 复制 php.ini-development 为 php.ini |
| 扩展加载失败 | DLL 路径不匹配 | 确认 extension_dir 指向正确的 ext 目录 |
VCRUNTIME140.dll 缺失 | 缺少 Visual C++ 运行时 | 安装 Microsoft Visual C++ Redistributable |
| WSL 中无法访问 Windows 文件 | 路径格式问题 | WSL 中访问 Windows 盘符使用 /mnt/c/ 前缀 |
版本兼容性
- Windows 7/8:仅支持 VS16 编译版本,PHP 8.1 为最后支持的版本
- Windows 10 1903+:推荐使用 VS17 编译版本
- Windows 11:全面支持所有 PHP 8.x 版本
- PHP 9.0+ 将不再支持 Windows 7/8
Windows 7/8 支持已终止
自 PHP 8.2 起,官方不再为 Windows 7/8/Server 2012 提供预编译二进制包。如果仍在使用这些系统,最高只能使用 PHP 8.1,且建议尽快升级操作系统。
最佳实践
优先选择 WSL2:对于 Windows 用户,WSL2 是目前最佳的 PHP 开发环境方案。它提供了与生产 Linux 环境一致的体验,性能优越,且与 Windows 工具链无缝集成。
使用 NTS 版本:除非你明确需要 Thread Safe 版本(如 Apache mod_php),否则始终选择 NTS 版本。NTS 版本性能更好,兼容性更广。
使用 Composer 管理依赖:不要手动下载 PHP 库文件,使用 Composer 来管理项目依赖。Composer 是 PHP 生态的标准依赖管理工具。
保持环境整洁:避免在系统 PATH 中堆叠多个 PHP 版本。使用如 Laravel Herd 等专用工具可以更方便地管理多个 PHP 版本。
定期更新:关注 PHP 官方发布的安全公告,及时更新 PHP 版本。在 Windows 上更新只需替换文件目录即可,记得先备份配置文件。
开发与生产环境一致:尽可能让开发环境与生产环境保持一致。如果生产环境使用 Linux,开发环境也应该使用 WSL2 或 Docker,而非原生 Windows PHP。
下一节
安装完 PHP 后,你可以继续阅读以下内容:
- 云计算平台安装 — 了解如何在 Docker 和云平台上部署 PHP
- FastCGI 进程管理器(FPM) — 深入了解 PHP-FPM 的配置与性能调优
- IDE 与编辑器配置 — 配置你的开发工具