Apache启动失败:无法加载php8apache2_4.dll模块求助
问题描述
以管理员模式运行cmd执行
httpd -k install安装Apache后,执行httpd -k start启动时报错:C:\php-8>httpd -k start httpd: Syntax error on line 539 of C:/Apache/httpd-2.4.56-win64-VS17/Apache24/conf/httpd.conf: Cannot load C:/php-8/php8apache2_4.dll into server: \xc1\xf6\xc1\xa4\xb5\xc8 \xb8\xf0\xb5\xe2\xc0\xbb \xc3\xa3\xc0\xbb \xbc\xf6 \xbe\xf8\xbd\xc0\xb4\xcf\xb4\xd9.对应httpd.conf第539行的配置是
LoadModule php_module "C:/php-8/php8apache2_4.dll",已排查路径、文件名,重新下载dll仍未解决。
解决步骤
核对Apache与PHP的位数一致性
你使用的是64位Apache(httpd-2.4.56-win64-VS17),必须搭配64位线程安全(TS)版本的PHP。如果下载了32位PHP,会直接导致dll无法加载,去PHP官网下载时务必选择x64的TS版本。匹配VC编译版本
Apache是VS17编译的,PHP也必须对应VS17编译的版本。下载PHP时注意文件名标识,比如要选带vs17标签的安装包,版本不匹配会引发兼容性问题,导致dll加载失败。添加PHP目录到系统PATH
将PHP根目录(比如C:\php-8)添加到系统环境变量PATH中,添加后重启cmd再尝试启动Apache。因为php8apache2_4.dll依赖PHP目录下的其他核心dll,未配置PATH会导致系统找不到这些依赖文件。校验dll文件完整性
重新下载php8apache2_4.dll时,务必从PHP官方渠道获取,下载后对照官网提供的文件哈希值校验,避免因文件损坏导致加载失败。若哈希不匹配,重新下载即可。补全PHP配置路径
在httpd.conf的LoadModule行之后,添加PHP配置文件的路径配置:PHPIniDir "C:/php-8"缺少这一行可能导致Apache无法识别PHP的运行环境,间接引发dll加载错误。
内容的提问来源于stack exchange,提问作者grass Lee

