PHP 7.2.0升级至7.2.1后Apache仍显示旧版本问题求助
从你的描述来看,明明已经修改了Apache的PHP模块路径,且phpinfo()显示加载的配置文件是新目录的,但版本还是旧的,这通常是以下几个常见问题导致的,你可以逐一排查:
Apache没有完全重启
修改Apache配置后,仅仅执行「重新加载配置」(比如apachectl reload)有时候不足以让新的PHP模块生效——旧的模块可能还驻留在内存中。你需要完全停止Apache服务,再重新启动它:
操作步骤:打开服务管理器(services.msc),找到Apache服务,点击「停止」,等待服务完全停止后再点击「启动」;或者用命令行执行httpd.exe -k stop再httpd.exe -k start。配置文件中存在重复的PHP模块加载指令
检查你的Apache配置文件(包括httpd.conf以及所有被Include进来的子配置文件),看看是不是还有一行旧的LoadModule php7_module指向PHP 7.2.0的php7apache2_4.dll。如果有,一定要删除或者注释掉这行,确保只有新路径的加载指令生效。新PHP目录的权限问题
Apache服务运行的用户(通常是SYSTEM或者Apache用户)可能没有读取新目录C:/Program Files (x86)/php-7.2.1/下文件的权限。右键新目录,选择「属性」→「安全」,确保Apache的运行用户拥有「读取和执行」权限。确认新的
php7apache2_4.dll是对应版本的文件
有时候可能误复制了旧版本的php7apache2_4.dll到新目录里,或者下载的PHP安装包本身有问题。你可以对比新目录和旧目录里的php7apache2_4.dll的文件大小、修改时间,或者重新下载PHP 7.2.1的官方包,确保文件完整无误。检查系统环境变量PATH的影响
虽然Apache模块模式下主要依赖加载的DLL,但如果系统PATH里还保留着旧PHP 7.2.0的目录,可能会导致一些依赖库加载异常。你可以暂时把旧PHP目录从PATH中移除,重启Apache后再测试。
排查完这些点后,再访问phpinfo()页面,应该就能看到正确的PHP 7.2.1版本了。
内容的提问来源于stack exchange,提问作者VeZoul

