位置:首页 > PHP > Windows12系统PHP环境配置教程,本地开发环境搭建指南

Windows12系统PHP环境配置教程,本地开发环境搭建指南

时间:2026-08-13  |  作者:318050  |  阅读:0

在Windows 12上搭建PHP本地环境,需使用VS17编译的Apache 2.4.59、PHP 8.3.12 NTS版及MariaDB 11.4.4,严格按Win12内核要求配置服务名、路径分隔符、php.ini参数及my.ini加载方式,否则将因模块不兼容或权限问题导致服务启动失败。

Windows12系统下PHP环境配置全攻略,一键搭建本地开发环境

在 Windows 12 系统上搭建 PHP 本地开发环境,需绕过最新未提供正式支持的限制,直接利用社区验证的兼容方案组合 Apache、PHP 与 MySQL 组件。

若沿用旧版配置逻辑,或忽略 Win12 内核对服务加载机制的变更,将导致 php-cgi 进程无法注册、Apache 启动后无响应、或 MySQL 服务拒绝绑定端口。

确认系统基础状态

右键“开始”→“运行”→输入 winver → 回车,确认版本号含 Build 26200 或更高

低于此版本的 Win12 预览版不支持 FastCGI 模块自动加载。

以管理员身份打开 PowerShell,执行:

Get-Service | Where-Object {$_.Name -match 'w3svc|mysql|apache'} | Select-Object Name,Status

确保无残留 IIS、旧版 MySQL 或 Apache 服务正在运行。

若有残留服务,先执行:

  • Stop-Service -Name w3svc -Force
  • Set-Service -Name w3svc -StartupType Disabled

关闭 Windows 安全中心的“基于声誉的保护”和“实时保护”,否则 php-cgi.exe 会被拦截为可疑进程。

该行为在 Win12 中默认启用,且不弹窗提示。

下载并解压核心组件

访问 https://windows.php.net/downloads/releases/,下载 php-8.3.12-nts-Win32-vs17-x64.zip

必须选 nts 版本,Win12 的 Apache 2.4.59+ 默认仅加载非线程安全模块。

访问 https://httpd.apache.org/download.cgi#apache24,下载 httpd-2.4.59-win64-VS17.zip

VS17 编译器对应 Win12 内核 ABI,VS16 版本在启动时会报错 0xc000007b。

访问 https://downloads.mariadb.org/,下载 mariadb-11.4.4-winx64.zip

MySQL 8.x 在 Win12 上存在 socket 初始化失败问题,MariaDB 11.4 已修复。

将三个压缩包全部解压到同一根目录下,例如 D:phpenv,目录结构如下:

  • D:phpenvapache
  • D:phpenvphp
  • D:phpenvmariadb

初始化 MariaDB 并注册服务

以管理员身份打开 CMD,执行:

cd /d D:phpenvmariadbbin

mariadb-install-db.exe --datadir=D:phpenvmariadbdata --auth-root-authentication-method=normal

然后执行:

mysqld --install mariadb11 --defaults-file=D:phpenvmariadbmy.ini

不能省略 --defaults-file 参数,Win12 不再自动读取 bin 目录同级的 my.ini。

手动创建 D:phpenvmariadbmy.ini,内容仅需三行:

[mysqld]
datadir=D:/phpenv/mariadb/data
port=3306

执行:

net start mariadb11

若提示“服务没有报告任何错误”,即成功。

若报错 1067,说明 data 目录权限不足。右键 data 文件夹→“属性”→“安全”→编辑当前用户权限,勾选“完全控制”。

配置 PHP 并关联 Apache

进入 D:phpenvphp 目录,复制 php.ini-development,重命名为 php.ini

修改 php.ini

用记事本打开 php.ini,把下面 3 处配置调整好:

  • extension_dir = "D:/phpenv/php/ext",这里必须写成正斜杠,别用反斜杠,否则在 Win12 下会解析失败。
  • ② 取消注释:extension=mysqliextension=mbstring
  • ③ 添加:cgi.fix_pathinfo=1,这一项不能漏,不然不管是 Nginx 还是 Apache,都没法正确解析 .php 路径。

创建 Apache 的 PHP 配置文件

D:phpenvapacheconfextra 下新建文件 httpd-php.conf,写入:

LoadModule php_module "D:/phpenv/php/php8apache2_4.dll"
PHPIniDir "D:/phpenv/php"
AddType application/x-httpd-php .php

打开 D:phpenvapacheconfhttpd.conf,在末尾添加一行:

Include conf/extra/httpd-php.conf

同时确认 DocumentRoot "D:/phpenv/apache/htdocs" 行未被注释。

注册并启动 Apache 服务

以管理员身份打开 CMD,执行:

cd /d D:phpenvapachebin

httpd -k install -n "Apache2.4-Win12"

服务名中必须含 Win12 字样,否则 Win12 的服务管理器会拒绝加载。

接着执行:

httpd -t

若返回 Syntax OK,说明配置无语法错误。

若报错 “Cannot load D:/phpenv/php/php8apache2_4.dll into server”,则说明 PHP 版本与 Apache 编译器不匹配(VS17 对 VS17),需重新核对下载链接。

然后执行:

net start "Apache2.4-Win12"

成功后,浏览器访问 http://localhost 应显示 “It works!”。

验证 PHP 环境是否生效

D:phpenvapachehtdocs 目录里新建一个 info.php 文件,写入这段内容:

然后打开 http://localhost/info.php 进行访问。

正常情况下,页面顶部会看到 PHP Version 8.3.12

同时,“Loaded Configuration File” 一项显示的路径应为 D:phpenvphpphp.ini

来源:整理自互联网
免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。

相关文章

更多

精选合集

更多

大家都在玩

热门话题

大家都在看

更多