迁移至新服务器的PHP/MySQL网站登录后出现ERR_CONNECTION_REFUSED错误
排查迁移后登录出现ERR_CONNECTION_REFUSED的问题
兄弟,我之前碰到过几乎一模一样的场景,给你捋几个实打实的排查方向,应该能定位到问题:
首先得明确:登录页能正常加载(还能连数据库),说明PHP运行、数据库连接这块基本没毛病,问题肯定出在登录提交后的请求处理环节,要么是你怀疑的重定向,要么是代码硬编码、防火墙这类容易忽略的点。
1. 先查登录表单的提交目标
右键查看登录页源代码,找到<form>标签的action属性:
- 如果是硬编码的旧服务器IP/域名(比如
action="http://旧服务器IP/login.php"),那百分百是这个问题——新服务器上的表单提交到旧IP,旧IP要么关了要么防火墙拦了,自然连接拒绝。 - 解决:把所有硬编码的旧地址改成相对路径(比如
action="login.php"),或者新服务器的域名/IP。
2. 排查登录后的重定向逻辑
登录成功后一般会跳转到后台,去看你的登录处理代码(比如login.php)里的重定向语句:
- 比如PHP里的
header("Location: http://xxx/backend.php");,这里的xxx要是旧服务器IP的话,浏览器就会去连旧IP,直接触发拒绝。 - 另外还要注意协议:如果新服务器用了HTTPS,但重定向写的是HTTP,或者反过来,也可能被防火墙拦截(虽然更多是SSL错误,但也不能排除)。
3. 确认服务器防火墙和端口状态
你看到的错误IP是198.72.112.108,先搞清楚这是新服务器还是旧服务器:
- 如果是新服务器:检查Windows防火墙(或者云服务商的安全组)有没有开放网站用的端口(默认80/443,要是改了端口就得对应开放)。比如IIS绑定的是8080,但防火墙没开这个端口,提交请求直接被拦。
- 如果是旧服务器:那就是代码里还残留着旧IP的引用,全局搜索代码里的旧IP,全部替换成新的。
4. 看服务器端日志找线索
光看浏览器错误没用,得扒服务器的日志:
- IIS日志:默认在
C:\inetpub\logs\LogFiles里,找对应时间的日志,看看登录请求的状态码、有没有跳转记录,能直接看到请求是去哪了。 - PHP错误日志:打开php.ini找到
error_log的路径,查看登录处理时的隐性报错(比如session初始化失败、重定向语法错误),有时候代码里的小问题会导致请求超时,最后演变成连接拒绝。
5. 直接测试登录处理页面
在浏览器地址栏直接访问http://新服务器IP/login.php,甚至可以带参数模拟登录(比如http://新服务器IP/login.php?username=test&password=test),看看会不会出同样的错误——这样能快速区分是表单提交的问题,还是登录处理逻辑本身的问题。
内容的提问来源于stack exchange,提问作者Vincent
相关产品推荐
相关产品推荐

