为什么Apache从PATH而不是httpd.conf中加载PHP模块?

为什么Apache从PATH而不是httpd.conf中加载PHP模块?,php,apache,Php,Apache,我已经安装了Apache(2.4.29),并将其配置为使用PHP7.1.8,它位于C:\PHP-7.1.8: LoadModule php7_module "c:/php-7.1.8/php7apache2_4.dll" LoadFile "c:/php-7.1.8/php7ts.dll" LoadFile "c:/php-7.1.8/libeay32.dll" LoadFile "c:/php-7.1.8/ssleay32.dll" LoadFile "c:/php-7.1.8/libssh2

我已经安装了Apache(2.4.29),并将其配置为使用PHP7.1.8,它位于C:\PHP-7.1.8:

LoadModule php7_module "c:/php-7.1.8/php7apache2_4.dll"
LoadFile "c:/php-7.1.8/php7ts.dll"
LoadFile "c:/php-7.1.8/libeay32.dll"
LoadFile "c:/php-7.1.8/ssleay32.dll"
LoadFile "c:/php-7.1.8/libssh2.dll"

AddHandler application/x-httpd-php .php
AddType application/x-httpd-php .php .html

SetEnv PHPRC C:/php-7.1.8/
PHPIniDir "C:/php-7.1.8"
我还在C:\php7中安装了php7.2.0。这也是windows PATH系统变量中的值

浏览包含phpinfo()的页面时,我发现加载的php.ini来自c:\php-7.1.8,但使用的php版本是7.2


PATH变量的值是否覆盖了httpd.conf中的LoadModule指令?

是的,在Windows PATH中,与其说覆盖太多,不如说它是要考虑的内容,因为本地环境使用您在系统中设置的内容。在windows 10中,您可以对路径进行优先级排序,在早期版本中,只需替换路径中的值即可。