Windows 32位XAMPP升级PHP7.3至7.4后Apache启动失败求助
解决Windows 32位XAMPP升级PHP7.4+后Apache启动失败问题
问题概述
Windows10 32位环境下,将XAMPP自带的PHP7.3升级至PHP7.4+(VC15 x86线程安全版)后,Apache启动报错“意外关闭”。已尝试关闭端口占用软件、修改HTTP/SSL端口,仍未解决。错误日志显示三个核心问题:
- SSL证书名称不匹配
- PID文件被覆盖
- PHP警告:
vcruntime140.dll版本14.0与PHP构建的14.16不兼容
后续验证:httpd-xampp.conf中PHP模块配置正确,httpd.exe -t语法正常,Apache版本为2.4.38(Win32)。
分步解决方案
1. 修复vcruntime140.dll版本不兼容问题
这是核心启动障碍,PHP7.4+依赖更高版本的VC运行库:
- 下载32位版本的Microsoft Visual C++ Redistributable for Visual Studio 2019(包含14.16+版本的
vcruntime140.dll) - 安装完成后重启系统,确保新运行库生效
- 验证:打开命令提示符,输入
where vcruntime140.dll,确认路径下的文件版本为14.16及以上
2. 解决SSL证书名称不匹配问题
- 打开XAMPP安装目录下的
apache\conf\extra\httpd-ssl.conf - 确认以下两行配置的证书路径与实际路径一致:
SSLCertificateFile "conf/ssl.crt/server.crt" SSLCertificateKeyFile "conf/ssl.key/server.key" - 若证书缺失或损坏,用Apache自带的
openssl.exe生成新证书:- 打开命令提示符,进入
xampp\apache\bin目录 - 执行命令生成证书:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server.key -out server.crt - 将生成的
server.key和server.crt分别复制到xampp\apache\conf\ssl.key和xampp\apache\conf\ssl.crt目录
- 打开命令提示符,进入
3. 处理PID文件被覆盖问题
- 打开
apache\conf\httpd.conf,确认PidFile配置路径唯一且权限正常:PidFile "logs/httpd.pid" - 检查
xampp\apache\logs目录权限,确保系统用户有读写权限 - 手动删除
logs/httpd.pid文件(若之前强制关闭过Apache),再重新启动服务
4. 验证PHP与Apache的兼容性
再次确认httpd-xampp.conf配置:
- 确保PHP模块加载路径指向新的PHP目录:
LoadFile "你的XAMPP路径/php/php7ts.dll" LoadModule php7_module "你的XAMPP路径/php/php7apache2_4.dll" - 确认
PHPIniDir指向新PHP目录:PHPIniDir "你的XAMPP路径/php" - 确认下载的PHP版本为线程安全(TS)版,PHP7.4+均兼容Apache2.4.38
最后验证步骤
- 用
netstat -ano | findstr ":8080"或:4433检查端口占用,关闭相关软件 - 打开XAMPP控制面板启动Apache,查看日志是否还有报错
- 若仍有问题,直接运行
xampp\apache\bin\httpd.exe,通过控制台实时输出定位剩余问题
内容的提问来源于stack exchange,提问作者JES
相关产品推荐
相关产品推荐

