升级至PHP 7.2.5版本的XAMPP后,如何访问localhost?
别着急直接换回低版本XAMPP!这种情况大概率是配置细节或者PHP版本兼容的小问题,咱们一步步来排查修复:
检查Apache的默认首页配置
打开XAMPP控制面板,点击Apache的「Config」按钮,选择httpd.conf文件。找到DirectoryIndex这一行,确保它包含你的站点常用的首页文件名,比如:DirectoryIndex index.php index.html index.htm default.php如果原来的配置里缺少
index.php或者你的站点首页文件名,添加上之后保存,重启Apache再试试访问。排查.htaccess文件的兼容性
如果你的站点根目录下有.htaccess文件,PHP 7.2已经移除了很多PHP 5.6的旧配置项(比如magic_quotes_gpc、register_globals这类),这些配置会导致Apache报错,进而无法解析站点内容。
可以先把.htaccess重命名为.htaccess.bak,然后重新访问站点。如果能正常打开,就回去逐行检查.htaccess里的规则,删除或替换PHP 7不支持的配置。查看错误日志定位具体问题
盲猜不如看日志来得直接:- PHP错误日志路径:
xampp/php/logs/php_error.log - Apache错误日志路径:
xampp/apache/logs/error.log
打开日志文件,找最近的Fatal Error或者Parse Error。比如常见的问题是站点代码用了PHP 7已移除的mysql_*系列函数,这种情况就需要把代码里的数据库连接部分替换成mysqli_*或者PDO;如果是语法错误(比如PHP 7对变量解析的更严格),针对性修改代码即可。
- PHP错误日志路径:
确认虚拟主机配置(如果之前用过)
如果你在旧版XAMPP里配置过虚拟主机,升级后需要把虚拟主机配置迁移过来:- 打开
httpd.conf,确认Include conf/extra/httpd-vhosts.conf这一行没有被注释掉(前面没有#)。 - 打开
httpd-vhosts.conf,检查里面的DocumentRoot和ServerName是否指向新XAMPP下的站点路径,权限配置是否正确。
- 打开
检查Windows文件权限
虽然Windows权限问题相对少见,但偶尔会出现Apache运行用户没有读取站点文件的情况。右键你的站点文件夹,选择「属性」-「安全」,确保Authenticated Users组拥有「读取和执行」「列出文件夹内容」「读取」的权限。
如果经过上面的排查还是无法解决,或者你的站点代码大量依赖PHP 5.6的专属特性(比如大量使用已废弃的函数),再考虑换回低版本XAMPP也不迟。但多数情况下,通过配置调整和小范围的代码修改就能适配PHP 7.2。
内容的提问来源于stack exchange,提问作者Robert Gass

