当前位置:首页 » 配置数据库mysqlPHP » localhost 解析为IPV6地址 ::1 的解决办法
localhost 解析为IPV6地址 ::1 的解决办法
来自:新思网络时间:2016-05-19 22:26:53

下面说说我的解决历程:因为是我在win10中遇到的问题,所以下面说到的都是在win10系统里。

首先安装phpstudy一切顺利,打开后apache和mysql状态都是绿灯,说明启动正常,但是下面的提示信息里显示的是80端口被占用,3306端口被占用,所以我试着打开http://localhost/phpinfo.php查看能不能打开,结果网页无法打开,这时我怀疑是端口的问题,虽然显示绿灯正常,但是提示信息显示端口被占用,然后我就开始找各种解决端口有办法,都没成功。如果你的apache和mysql显示是红灯话,就找一找网上的解决端口占用的方法,但我遇到的不是。

之后,我试了试http://127.0.0.1/phpinfo.php,结果网页打开了,说明apache启动是成功的,端口也没有被占用,其实你如果打开phpstudy时选择用管理员身份打开,你再看看提示信息,就没有端口被占用了,所以从头到尾端口一切正常,主要问题出在localhost上,所以就开始找localhost解决办法,C:\WINDOWS\system32\drivers\etc,有一个文件叫hosts,在上面点右键,用记事本打开(这里加权限也能改,方法在网上可以找到)看到里面有没有这样一行,没有的话就在最后加上如下这行:127.0.0.1 localhost,结果我加上了,http://localhost/phpinfo.php,还是打不开,说明不是hosts文件的事,然后继续找办法,最后找到在cmd中ping一下LOCALHOST 结果显示的是::1,不是127.0.0.1,原来问题在这,localhost没有解析到127.0.0.1,这什么呢?原因就是ipv6,下面开始入正题,真正的解决办法:

windows有个优先解析列表,当ipv6的优先级高于ipv4时,就会出现我今天遇到的情况。第一个办法是加一条优ipv4优先级高于ipv6的记录到优先解析表中,因为很多单词都看不懂,怕弄错参数,没敢用。我是用第二个办法解决的,就是修改注册表,方法如下(不懂英语的朋友就不用查了):

打开注册表,找到键HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\tcpip6\Parameters ,添加类型为DWORD 名字为 DisabledComponents 的项(已经有了的不用添加直接改值)。然后修改值为 20,值类型为16进制 。

这样就完了,之后退出注册表,重启电脑,一定要重启电脑才行。

重新ping 下 localhost 试试看吧。

关键词:phpstudy,80端口,localhost打不开,IPV6