一、先分清"建站失败"是哪一种失败
1、完全打不开。浏览器报"无法连接""连接被重置""DNS解析失败",说明问题在外层:服务器没起、IP不通、安全组没开、域名没解析,或者国内节点没备案被拦截。这类跟代码没关系,先别碰程序。
2、能打开但报错。404、403、500、白屏、数据库连接错误,说明网络通了,问题在Web服务配置、路径、权限、程序环境或数据库。这时候再看日志,别靠猜。
3、能访问首页但功能残。样式乱、图片不显示、内页打不开、后台登不进,通常是伪静态、资源路径、缓存、插件冲突或环境版本不匹配。
二、外层排查:备案、域名、端口
1、国内服务器先确认备案状态。域名指向中国大陆节点,必须先完成ICP备案,未备案会被接入商或机房防火墙直接阻断,表现是ping得通但浏览器打不开,用服务器IP可能能打开。就算之前别的主体备过案,更换接入商后没有转入备案,同样会阻断访问——这是 互联网信息服务上线前的流程门槛,不是技术故障。
2、域名状态要正常。域名过期、锁定、没有完成实名认证,都会造成解析失效或被注册商暂停解析。境内注册的域名通常要求实名认证,没通过的先补认证,这一步不完成,后面做什么都白搭。域名注册人、备案主体、服务器实名三者信息要一致,不然管局打回。部分小众后缀不支持备案,选域名时要提前确认。
3、DNS解析别配错。主域名和www一般加A记录指向服务器公网IP,不是CNAME乱指;A记录填写的IP必须是当前服务器IP,别只解析了www漏掉根域名。记录改完不是立刻全网生效,DNS缓存可能要几分钟到几十小时,别刚改完就反复刷新判死刑。用在线DNS工具、ping或nslookup检测返回IP对不对,或者用手机流量访问一次,能排除本地缓存干扰。
4、安全组和防火墙放行端口。很多新手只开了22端口,浏览器当然进不来。云控制台安全组入方向要放行TCP 80和443,服务器本机防火墙同理。表现是域名解析正常、服务器上程序也跑着,但浏览器就是连不上或一直转圈超时。也别图省事全端口开放,同时确认Web服务监听地址没只绑在127.0.0.1。
5、Web服务得在跑。Nginx/Apache没启动、配置语法错、端口被占,全都会连不上。先看服务状态,再查error.log,比重装系统强。
三、中层排查:目录、权限、伪静态
1、根目录指错最隐蔽。本地测在子目录,传上服务器没改root,结果服务起来了但全是404。确认虚拟主机root指向真实入口(比如Laravel的public、WordPress的根目录),index.php、index.html这类默认首页文件得在。
2、权限别乱给777。目录755、文件644是安全起点,属主交给Web用户(如www-data)。权限过严程序写不了缓存和上传文件,表现是后台能登录但保存不了设置、上传图片失败;权限过松则有安全风险。按程序文档给的权限建议设置,别图省事直接全开。
3、伪静态没配,内页全404。WordPress、ThinkPHP、Vue路由这类靠重写的,Apache要开mod_rewrite、有.htaccess,Nginx要写try_files规则。首页能开、点内页就404,九成是这处。
4、SSL证书问题。证书和域名不匹配、证书过期、链不完整,浏览器会标"不安全"甚至拦截,用户以为网站挂了。配了HTTPS就检查证书有效期和强制跳转,别混用http资源。
四、内层排查:程序、数据库、环境
1、数据库连接信息填错,是最常见的"白屏"原因。安装程序时会让你填数据库地址、库名、用户名、密码,DB_HOST、DB_USER、DB_PASS、DB_NAME逐个对,别信复制粘贴的样例配置。地址填成外网地址(应该填localhost或127.0.0.1)、库名多打一个空格、密码里有特殊字符没转义,都会导致连接失败。再确认MySQL服务在跑、用户有该库权限。报错通常会提示"无法连接数据库",顺着这条线检查,别急着怀疑服务器。
2、环境版本对不上,程序装不上。建站程序对运行环境有要求,比如需要某个版本以上的PHP、特定扩展(mysqli、gd、curl、redis等)和数据库类型。老源码跑新PHP会500,新框架跑老PHP缺扩展也起不来。先查程序文档里的环境要求,逐项核对,比反复重装程序有用。
3、白屏和500看日志别看脸。PHP致命错误、内存不够、插件或主题冲突都会白屏。开display_errors或翻php-error.log,禁用最近装的插件挨个排,memory_limit、upload_max_filesize不够就调。
4、其他常见坑。上传源码后没解压或解压路径放错;SQL导入报错,排序规则在新老MySQL间不兼容,老库认不出就全局替换;Vue打包publicPath不对、CSS/JS路径写死旧域名、CDN缓存没清,页面就像"碎了",用无痕窗口访问能排除本地缓存干扰。
五、一套适合新手的排查顺序
1、先ping域名看IP对不对,再curl本地127.0.0.1看服务起没起。
2、看云安全组加系统防火墙端口是否放行。
3、确认备案状态(国内节点优先核验)。
4、看Nginx/Apache错误日志,别先改代码。
5、查根目录、伪静态、文件权限。
6、查数据库配置和服务状态。
7、开PHP报错,禁用插件或切换主题定位冲突。
8、无痕浏览器清缓存、换手机流量再测。
排查时记住三条:先确认"到哪一步断了",用IP能不能访问、域名解析有没有生效、服务器上程序有没有跑起来,这三个问题按顺序问一遍,能快速定位问题出在解析、服务器还是程序;看错误信息别看"打不开"三个字,"连接超时""无法连接数据库""403禁止访问""502网关错误"指向的是完全不同的问题,把报错原文记下来对照文档或搜索,比盲目试错快;改一处、验一处,别一次改五个地方,一次只动一个变量,改完立刻验证。排查这件事,慢就是快。
说到底,建站失败的大部分原因都不复杂,只是环节多、顺序容易乱。多数"建站失败"不是技术难题,是步骤跳了:没备案就解析、没开端口就访问、没配伪静态就点内页、数据库密码抄错一位。把"域名—服务器—程序—备案"这条链按顺序捋一遍,每个环节确认状态,多数问题在十分钟内就能找到卡点。真正拖时间的,往往不是问题本身,是跳过排查直接重来。