← 教程目录 第 05 章 · 排错速查手册

首页 › 建站教程 › 第 05 章

第 05 章 · 排错速查手册

这一章不是用来"读"的,是用来"查"的。网站一出问题,你就翻到这里, 先看现象、再看它属于哪一层、然后照着那一段一步步做。 全部内容都按现象分类,不需要你懂原理也能照着修。

怎么用这一章:先用第一节的表定位"是哪一层坏了",再到第二节找到对应的「故障编号」, 照着里面的步骤做。做完每一段,都用它给你的验证方法确认真的修好了,再关掉页面。

一、先别乱改:用分层定位法

网站坏了的时候,新手最常见的反应是:重装系统、删掉重来、把能改的配置全改一遍。 结果往往是原来的问题没解决,还多出三个新问题——因为你在不知道原因的情况下动了更多东西。

正确的顺序只有两步:第一步,判断是哪一层断了;第二步,只动那一层。 一个网站从域名到你能看到的页面,中间只有四层,记住这四层,排错就有方向了。

四层分别是什么,怎么一眼判断

层包含什么怎么判断是不是这层坏了
网络层 域名、DNS 解析、证书(HTTPS) 域名根本没连到你的服务器:解析不出 IP、或解析到别人的 IP。用 nslookup 你的域名 一眼就能看出来
服务器层 服务器本身、端口、Nginx/PHP 等服务的运行状态、磁盘内存 服务器整个连不上:面板打不开、SSH 也连不上、所有端口都没反应
站点层 Nginx 的站点配置、域名绑定、站点根目录里的文件、PHP/MySQL 服务器通,浏览器能收到服务器回话,但回的是错误:404、403、502、500
页面层 HTML、CSS、JS、图片、路径写法 页面能正常打开,只是样式错乱、图片破图、按钮没反应、文字是旧的

一句话诀窍:能收到服务器的"回话"(哪怕回的是 404),就说明网络层和服务器层是好的,问题在站点层或页面层。

现象 → 层 → 第一个动作

下面这张表是本章的总入口。先在这里对号入座,再去第二节看详细的处理步骤。

你看到的现象最可能是哪一层第一个该做的动作
域名完全打不开、一直转圈、最后超时网络层 或 服务器层nslookup 你的域名 看解析对不对,再 curl -I http://你的域名 看有没有回应
页面显示 404 Not Found站点层检查根目录有没有 index.html、站点有没有绑定这个域名
页面显示"恭喜,站点创建成功"站点层(不算故障)上传你自己的 index.html 覆盖它
页面显示 502 / 503站点层(PHP)给站点选 PHP 版本,然后重启 PHP
页面显示 403 Forbidden站点层(权限/缺首页)看根目录有没有首页文件、权限是不是 755/644
HTTPS 提示"不安全"、证书过期网络层(证书)站点 → SSL,看证书覆盖的域名和到期时间,重新申请
面板打不开服务器层SSH 里 bt default 看真实地址,并检查安全组有没有放行端口
SSH 连不上服务器层去云控制台确认 IP 和运行状态,用网页版终端救急
解析不生效、解析到别的 IP网络层核对域名服务商里的 A 记录(@ 和 www 两条)
页面显示旧内容页面层(缓存)先 Ctrl + F5 强制刷新,再确认文件到底传上去了没有
图片不显示、样式全乱页面层(路径)用开发者工具看是哪个文件请求失败了
网站突然变慢、打不开服务器层(资源)df -h 和 free -m 看磁盘和内存

三个问题,10 秒定位大致方向:

① 昨天还好吗?今天动了什么?——如果今天改过东西,先把它改回去,八成就好了。
② 是整站都坏,还是只有某个页面坏?——整站坏往服务器层/网络层查;单页坏往站点层/页面层查。
③ 用 IP 和用域名,分别是什么结果?——这条最有用,见第七节。

二、大故障对照表

下面第 01 到第 14 号故障,覆盖了新手 99% 会遇到的情况。 每一段都是同样的结构:常见原因(按可能性从高到低排) → 一步步处理 → 怎么验证修好了。 找不到你的现象?先回第一节的表里对号入座,再从最接近的那一段开始看。

编号现象最常见的原因
故障 01域名完全打不开、转圈/超时解析没生效、端口没放行、Nginx 没运行
故障 02404 Not Found缺 index、域名没绑、路径写错
故障 03"恭喜,站点创建成功"只差上传内容
故障 04502 / 503 Bad Gateway没选 PHP 版本、PHP 没启动
故障 05403 Forbidden没有首页文件、权限错
故障 06HTTPS 不安全 / 证书过期证书没签成、没续签、域名不匹配
故障 07HTTP 跳 HTTPS 后打不开开了强制 HTTPS 但证书没配好
故障 08面板打不开端口没放行、面板服务停了
故障 09SSH 连不上端口/密码/安全组/本地网络封端口
故障 10解析不生效 / 解析到别的 IP记录写错、还没生效、缓存
故障 11页面显示旧内容浏览器缓存、文件没传上去
故障 12图片/样式丢失路径写错、大小写不一致
故障 13留言板空白或报错没开 PHP、目录不可写
故障 14突然变慢 / 打不开磁盘满、内存满、被攻击

故障 01 · 域名完全打不开、一直转圈或最后超时

常见原因(按可能性排序)

  1. 域名解析没加、加错了主机记录,或刚改完还没生效
  2. 服务器上 Nginx 没在运行
  3. 云控制台的安全组/防火墙没有放行 80 和 443 端口
  4. 服务器欠费停机、被关机,或刚刚重装过系统
  5. 服务器 IP 变了(换机、重建实例),但 DNS 还指向旧 IP
  6. 其实是本地网络或浏览器的问题(公司网、校园网、代理软件)

一步步处理

  1. 打开命令行(Windows 是 PowerShell),输入 nslookup 你的域名,看返回的 IP。
  2. 如果返回的 IP 不是你的服务器 IP:登录域名服务商后台,检查 @ 和 www 两条 A 记录是不是都指向你的服务器 IP,改完等几分钟(有时要几小时)。
  3. 如果返回的 IP 是对的:输入 curl -I http://你的域名。超时/无回应 → 大概率是端口不通,去第 4 步;有回应(哪怕是 404) → 跳到故障 02。
  4. 登录云控制台,确认服务器是"运行中",并在安全组/防火墙里放行 80、443 端口(临时可以把来源设成 0.0.0.0/0,排查完再收紧)。
  5. 用 SSH 连上服务器,输入 systemctl status nginx 看 Nginx 是否在运行;没运行就 systemctl start nginx,启动失败就看它的报错。
  6. 换一台设备、换手机 4G 流量再访问一次,用来排除"只是你自己电脑的问题"。

怎么验证修好了:curl -I http://你的域名 返回 HTTP/1.1 200 OK 或 301 / 302(跳转),并且手机流量下也能打开页面。

故障 02 · 显示 404 Not Found

404 的意思是:服务器活着、Nginx 也活着,但它找不到你要的东西。这是"好消息",说明问题只在站点层。要分三种情况看。

三种常见情况

  1. 根目录里没有首页文件:没有 index.html(或 index.php),或者文件名写成了 Index.html 这种大小写不对的形式,或者多套了一层文件夹。
  2. 域名没绑定到这个站点:比如站点里只填了 www.你的域名,那么访问不带 www 的裸域名就会 404。
  3. 访问的具体页面不存在:比如链接写的是 download/工具.zip,但服务器上的文件名其实叫 工具合集.zip。

一步步处理

  1. 先看清楚:到底是哪个地址 404?带 www 的、不带 www 的,还是某个具体页面?三种情况的修法完全不同。
  2. 面板 → 网站 → 点你的站点 → 根目录,看里面到底有什么文件。确认 index.html 就在这一层、大小是你的文件大小(不是几 KB 的默认页)。
  3. 面板 → 网站 → 点你的站点 → 域名管理,看里面有没有你正在访问的那个域名。裸域名要单独加一条,它和 www 在 Nginx 眼里是两个不同的网站名。
  4. 如果是某个具体页面 404:到文件管理里核对文件名的大小写和层级。Linux 是区分大小写的,Photo.jpg 和 photo.jpg 是两个文件。

怎么验证修好了:访问 https://你的域名 返回 200,浏览器标签上的标题显示的是你网站的标题,而不是 Nginx 的 404 页面。

故障 03 · 显示"恭喜,站点创建成功"

这不是故障,是宝塔面板创建站点时送的默认页。看到它就说明: 域名解析、服务器、Nginx、站点绑定、SSL 全都没问题,只差最后一步——把你的网页文件传上去。

一步步处理

  1. 先把服务器上那张默认页备份:面板 → 网站 → 站点 → 根目录 → 右键 index.html → 重命名,改成 index-old.html。
  2. 点「上传」,选择你电脑上做好的 index.html(还有 avatar.svg、favicon.svg、404.html 等同目录要用的文件),传进站点根目录。
  3. 遇到同名文件选「覆盖」。
  4. 回到浏览器按 Ctrl + F5 强制刷新。

怎么验证修好了:刷新后看到的是你自己的页面;文件列表里 index.html 的大小从两三 KB 变成了你的文件大小(比如几十 KB)。

故障 04 · 502 / 503 Bad Gateway

502 的意思是:Nginx 想找 PHP 要内容,但联系不上 PHP。 503 一般是服务不可用或过载。常见于"页面是 .php 结尾"的网站(比如留言板、WordPress)。

常见原因(按可能性排序)

  1. 站点还没选 PHP 版本,仍停在"纯静态"模式
  2. PHP 服务(php-fpm)没启动,或者刚切换版本后没有重启
  3. 程序自身有致命错误(比如老程序跑在太新的 PHP 上)
  4. 内存不足,PHP 进程被系统杀掉
  5. 站点配置里的 PHP 套接字、端口被改坏了

一步步处理

  1. 面板 → 网站 → 点站点 → 设置 → 「PHP 版本」,选一个具体版本(例如 8.1 或 8.2),保存。
  2. 面板 → 软件商店 → 已安装 → 找到对应的 PHP → 点「重启」。
  3. 还不行,就看错误日志:面板 → 网站 → 点站点 → 日志 → 错误日志,看最后几行写了什么(通常会有 PHP Fatal error 之类的原文)。
  4. 在 SSH 里输入 free -m 看内存;如果可用内存长期极低,考虑升级配置或关掉用不上的软件。
  5. 改动过站点配置文件的话,用 nginx -t 检查语法,再 systemctl reload nginx 重载。

怎么验证修好了:刷新页面不再出现 502;错误日志里不再新增同一条报错;如果需要 PHP 的页面能正常显示内容。

故障 05 · 403 Forbidden

403 的意思是:服务器找到了这个位置,但拒绝给你看。常见于三种情况。

常见原因(按可能性排序)

  1. 目录里没有默认首页文件(index.html / index.php),同时"目录索引"又是关闭的
  2. 文件或目录权限不对(正常应该是目录 755、文件 644,属主是 www)
  3. 站点根目录设置错了,指到了一个空目录或系统目录
  4. 被服务器上的安全软件、防护规则拦了

一步步处理

  1. 面板 → 网站 → 站点 → 根目录,确认首页文件存在、名字正确。
  2. 在文件管理里右键站点根目录 → 权限,把目录设为 755、文件设为 644,所有者设为 www,并勾选"应用到子目录"。
  3. 面板 → 网站 → 站点 → 设置,确认「网站目录」指向的是你真正放文件的那个目录。
  4. 回想一下最近是否装过防护/防火墙类软件,先把它的规则关掉试一次。

怎么验证修好了:访问首页返回 200,能看到页面内容;如果确实是想让人浏览目录,也可以在站点设置里打开"目录索引"。

故障 06 · HTTPS 提示"不安全" / 证书过期 / 证书域名不匹配

常见原因(按可能性排序)

  1. 证书根本没申请成功,或者中途被删掉了
  2. 证书只覆盖了 www.你的域名,而你现在访问的是裸域名(或者反过来),导致"域名不匹配"
  3. 证书到期了,而自动续签没开或续签失败
  4. 浏览器还缓存着旧证书
  5. 访问的其实不是这台服务器(DNS 指到了别处)

一步步处理

  1. 面板 → 网站 → 点站点 → SSL,看当前证书列表:覆盖哪些域名、什么时候到期。
  2. 如果域名不全或已过期:点申请/续签,把你要用的所有域名(裸域名 + www 版本)都勾上再申请。
  3. 申请成功后,打开「强制 HTTPS」,并确认「自动续签」是开着的。
  4. 换一个浏览器或无痕窗口再试,排除本地缓存。

怎么验证修好了:地址栏显示锁形图标;点开锁能看到证书信息,里面的域名列表包含你访问的域名,有效期是未来几个月。

故障 07 · 打开 HTTP 会自动跳到 HTTPS,然后打不开

这是典型的"顺序搞错了":你打开了「强制 HTTPS」,但 443(HTTPS)这一侧其实没有可用证书。 于是浏览器被从 80 赶到 443,结果 443 给不出安全连接,页面就直接报错或打不开。

一步步处理

  1. 先临时关掉「强制 HTTPS」,让网站能重新访问(面板 → 网站 → 站点 → SSL)。
  2. 按故障 06 的办法,把证书重新申请好,确认覆盖了你要用的所有域名。
  3. 再打开「强制 HTTPS」,并且确认自动续签是开的。
  4. 如果一直在两个地址之间来回跳,检查是不是同时开了别处(CDN、防护)的跳转规则。

怎么验证修好了:用 http://你的域名 访问会自动跳到 https:// 并且正常显示页面,不再报错。

故障 08 · 宝塔面板打不开

常见原因(按可能性排序)

  1. 面板端口没在云控制台的安全组里放行
  2. 面板服务停了(服务器重启后没自启、或面板被改坏了)
  3. 地址、端口或"安全入口"记错了(安全入口就是地址后面那串随机字符)
  4. 面板端口被改过(为了安全改端口很常见)
  5. 服务器欠费、被关机,或者 IP 变了

一步步处理

  1. SSH 连上服务器,输入 bt default,它会打印出面板的真实地址(含安全入口)、用户名和密码。
  2. 面板服务像是死了:先试 bt 1(重启面板),再不行试 bt 16(修复面板)。
  3. 确认端口:ss -lntp 看看面板端口有没有在监听;再去云控制台安全组放行那个端口(建议只允许你自己的 IP,不要对全网开放)。
  4. SSH 也连不上、面板也连不上,就去云控制台用网页版 VNC/终端登录救急(它就相当于坐在服务器前面)。

怎么验证修好了:浏览器能打开面板的登录页,输入 bt default 给的账号密码能进后台。建议顺手把地址和账号密码记在密码管理器里,别只存在浏览器书签。

故障 09 · SSH 连不上服务器

常见原因(按可能性排序)

  1. 密码或用户名写错(Linux 密码区分大小写)
  2. 端口不是 22(为了安全改过端口)
  3. 云控制台安全组没放行 SSH 端口
  4. 服务器 IP 变了,或者服务器没在运行
  5. 你所在的网络(公司、学校、部分宽带)封了 22 端口——这种情况下换个网络立刻能连上
  6. 服务器被入侵,SSH 配置被改坏了

一步步处理

  1. 云控制台 → 实例列表,确认公网 IP、运行状态、以及安全组放行的端口。
  2. 用手机热点(换一个网络)再连一次。如果立刻成功,就是本地网络封了端口,不是服务器的问题。
  3. 还是不行:用云控制台的网页版终端/VNC 登录进服务器,检查 SSH 服务状态、确认端口和密码,必要时重置密码。
  4. 排查完记得:SSH 端口不要对全网开放,最好只允许你自己的 IP。

怎么验证修好了:SSH 客户端能正常登录,进得去以后 whoami 之类的命令能正常执行。

故障 10 · 域名解析不生效 / 解析到了别的 IP

常见原因(按可能性排序)

  1. A 记录没加,或者加到了错误的主机记录上(@ 和 www 搞混)
  2. 刚改完,DNS 还在全球生效的过程中(TTL 缓存还没过期)
  3. 域名的 DNS 服务器(NS 记录)被换过,导致你在 A 家改、实际生效的是 B 家
  4. 你本机或路由器的 DNS 缓存了旧记录
  5. 域名过期了(过期后解析会被服务商撤掉)

一步步处理

  1. 命令行输入 nslookup 你的域名 和 nslookup www.你的域名,两条都要能解析到你的服务器 IP。
  2. 结果不对,就登录域名服务商的 DNS 管理页,核对 @ 和 www 两条 A 记录的 IP。顺手确认域名的 DNS 服务器(NS)就是你正在编辑的这一家。
  3. 结果对但还有点乱:等一会儿(TTL 常见是 10 分钟到几小时),或者换个公共 DNS 再查一次,排除本地缓存。
  4. 检查域名是否到期,到期的域名先续费再谈解析。

怎么验证修好了:你自己的电脑、手机流量、以及任意在线 DNS 查询工具,查 你的域名 和 www.你的域名,返回的都是同一台服务器 IP。

故障 11 · 页面显示的还是旧内容

常见原因(按可能性排序)

  1. 浏览器缓存了旧页面(最常见,占一多半)
  2. 文件其实没上传成功,或者传到了别的目录
  3. 改的是本地文件,忘了上传
  4. 接了 CDN / 缓存插件,缓存还没刷新
  5. 服务器上有多个站点,你访问的和修改的不是同一个

一步步处理

  1. 按 Ctrl + F5 强制刷新,或者用无痕窗口、换手机流量再打开一次。
  2. 面板 → 网站 → 站点 → 根目录,看目标文件的修改时间和大小是不是你刚上传的那次。
  3. 确认你上传的目录,和这个域名对应的站点根目录是同一个。
  4. 如果用了 CDN 或缓存插件,去那里手动刷新一遍缓存。

怎么验证修好了:文件列表里的时间/大小与你本地文件一致,刷新后页面显示新内容。

故障 12 · 图片不显示(破图)、样式全乱

常见原因(按可能性排序)

  1. 路径写错了:图片和网页不在同一层,却直接写了文件名
  2. 文件名大小写不一致(服务器上区分大小写,你自己的电脑不区分,所以本地正常、线上一片空白)
  3. 图片根本没上传上去
  4. 多套了一层文件夹(比如把整个文件夹传进去,导致路径变成两层)
  5. 图片文件名里有空格、中文或特殊符号,浏览器转义后对不上

一步步处理

  1. 在破图上右键 → 检查,看它在请求哪个地址(在 Network 面板里也能看到)。
  2. 把这个地址和服务器上的真实路径逐字对比,重点看大小写和层级。
  3. 确认文件真的在服务器上,且和 index.html 的相对位置关系跟你写的一致。
  4. 文件名尽量改成纯英文、小写、不带空格,例如 photo1.jpg。

怎么验证修好了:开发者工具的 Network 面板里,图片请求的状态码从 404 变成 200。

故障 13 · 留言板空白、或者报错

常见原因(按可能性排序)

  1. 站点没开 PHP(还是"纯静态"模式),浏览器直接把源码当文件下载,或者一片空白
  2. PHP 版本太新/太旧,和程序要求不一致
  3. 程序要写的目录(比如 data)不存在或没有写权限
  4. 程序内部报错(语法、函数兼容性)

一步步处理

  1. 面板 → 网站 → 站点 → 设置 → 「PHP 版本」,选一个具体版本并保存,然后重启 PHP。
  2. 直接访问那个 .php 页面(不要通过别的页面嵌套打开),这样报错信息会完整显示出来。
  3. 面板 → 网站 → 站点 → 根目录,看程序需要的数据目录在不在;右键把它权限设为 755、所有者 www。
  4. 把报错原文复制下来(不要转述),拿去搜索或提问。

怎么验证修好了:能正常提交一条内容,并且它出现在列表里;服务器上能看到程序自动生成的数据文件。

故障 14 · 网站突然变得很慢、或者干脆打不开

本来好好的,突然变慢,通常是资源被吃光了。优先怀疑:磁盘满、内存满、被人攻击或中了挖矿程序。

常见原因(按可能性排序)

  1. 磁盘满了:日志文件、备份文件越堆越多
  2. 内存不够:MySQL / PHP 占满内存,系统开始频繁交换
  3. 被攻击或被爬:大量请求把带宽和 CPU 打满(面板监控里能看到流量曲线异常)
  4. 服务器被入侵,跑了挖矿程序(CPU 长期 100%)
  5. 网站程序自身出问题,比如死循环、数据库查询太慢

一步步处理

  1. SSH 里执行 df -h 看磁盘占用,free -m 看内存。
  2. 面板 → 监控,看 CPU、内存、网络的曲线,判断是"一直高"还是"突然飙高"。
  3. 磁盘满的话,去网站日志目录看是不是日志文件特别大,清理或关闭不必要的日志;旧的备份文件也清理掉。
  4. CPU 长期跑满、有陌生进程:立刻改掉 SSH 密码和面板密码,检查计划任务里有没有陌生的定时任务,必要时重装系统(重装前记得先备份网站文件)。
  5. 流量被打满:考虑接入 CDN 分摊,或在面板里做简单的限流/防护。

怎么验证修好了:面板监控里的 CPU、内存、带宽回落到正常水平,页面重新能秒开。

三、用开发者工具看真相

浏览器里的"开发者工具"是你排错时最有用的一双眼睛。 它能告诉你:浏览器到底请求了哪些文件、服务器回了什么、哪里报错了。 这些信息比"我打不开"精确一百倍。

怎么打开:在网页空白处右键 → 检查(有的浏览器写"审查元素")。 这个办法不依赖键盘,最稳。也可以按 Ctrl + Shift + I,或者从浏览器右上角菜单 → 更多工具 → 开发者工具进入。

如果按 F12 出来的是计算器、音量条之类的东西,那是笔记本键盘把 F12 设成了多媒体键,用上面的办法绕开就行,不用改任何设置。

最该看的三块

① Network(网络)—— 看每个请求的状态码

  1. 打开开发者工具,切到 Network 面板,然后按 Ctrl + F5 刷新页面。
  2. 列表里会出现一串请求,其中类型是 Doc 的那一条就是网页本身。
  3. 看 Status(状态码) 这一列,它就是"服务器回了什么":
状态码意思你该往哪查
200正常,文件取到了不用查
301 / 302被跳到另一个地址看跳到哪,是不是 http→https 或 www 的跳转
304用的是浏览器缓存强刷 Ctrl + F5 就能拿到最新的
403拒绝访问故障 05:权限、缺首页文件
404找不到文件故障 02:路径、文件名、域名绑定
500服务器程序自己报错了看错误日志里的 PHP Fatal error
502 / 503Nginx 联系不上后端故障 04:PHP 版本、PHP 服务

点开任意一条,右侧能看到它请求的完整地址(Request URL)—— 破图、样式丢失时,就把这个地址和服务器上的真实路径逐字对齐。

② Console(控制台)—— 看有没有红字

页面上的按钮点了没反应、特效不动、深色模式切换失效,答案基本都在这里。 红色的行就是错误,通常还会带上出错的文件名和行号。 把红色那几行原文复制下来搜索或提问,比描述"按钮不好使"有用得多。

③ Elements(元素)—— 改样式做试验

在网页上右键 → 检查,会自动定位到你点的那块内容的 HTML; 右侧的 Styles 区域显示它的样式,你可以直接改动数值和颜色,页面立刻变化。 试出满意的效果,再把改好的值抄回真正的文件里。

重要提醒:这里的改动只存在于你自己的浏览器里,服务器上的文件一个字都没变,刷新一下就恢复原样。所以放心大胆地试。

四、日志在哪看

猜十次,不如看一次日志。日志是服务器自己写的"流水账",记录谁来过、要了什么、出了什么错。 网站出问题时,日志里通常已经有答案了。

面板里看(推荐新手)

看什么在哪能看出什么
网站的访问日志面板 → 网站 → 点站点 → 日志 → 访问日志谁在什么时候访问了哪个地址、返回了什么状态码(大量 404 或 502 一眼可见)
网站的错误日志面板 → 网站 → 点站点 → 日志 → 错误日志Nginx 和 PHP 的报错原文,排错时最先看这个
面板自己的日志面板 → 设置/安全 → 面板日志面板登录、操作、定时任务有没有异常
系统日志面板 → 文件,或命令方式查看内存不足、服务被系统杀掉之类的系统级事件

用命令看(更直接)

tail -n 50 /www/wwwlogs/你的域名.log

tail 的意思是"只看文件结尾的若干行",因为最新的记录都在最后。 把 50 改成 200 就能多看一些。加上 -f 参数可以实时滚动显示(按 Ctrl + C 退出)。

在日志里找这些关键词,比从头读到尾快得多:

error、failed —— 任何错误
No such file or directory —— 文件不存在(对应 404、破图)
Permission denied —— 权限不够(对应 403、目录不可写)
upstream、php-fpm —— 后端 PHP 的问题(对应 502)
SSL_do_handshake —— 证书握手失败(对应 HTTPS 报错)
client intended to send too large body —— 上传的文件超过了限制

看日志的三步:①只看最后 20 行 → ②找带 error 或 failed 的行 → ③把那一整行原文复制下来去搜索或提问。不要试图理解整份日志,那是几千行。

五、10 条常用命令小抄

这些命令在 SSH 终端(或宝塔面板左侧的「终端」)里执行。 不用背,复制粘贴即可,但要知道每条是干什么用的、看到什么才算正常。

命令作用正常的样子
nslookup 你的域名 看域名解析到哪个 IP 返回你的服务器 IP(不是你服务器的 IP 就是解析错了)
curl -I https://你的域名 看服务器到底回了什么 第一行是 HTTP/1.1 200 OK;如果是 404/502,就照故障表查
ls -la /www/wwwroot/你的站点目录/ 看文件在不在、权限对不对 能看到 index.html 等文件,权限形如 -rw-r--r--、drwxr-xr-x
nginx -t 检查 Nginx 配置有没有写错 syntax is ok 和 test is successful
systemctl reload nginx 重载配置(不中断访问) 没有输出就是成功
systemctl status nginx 看 Nginx 是否在运行 显示 active (running)
ss -lntp 看哪些端口正在监听 能看到 80、443,以及你的 SSH 和面板端口
df -h 看磁盘使用率 各分区的 Use% 都别超过 90%
free -m 看内存够不够 可用内存不要长期接近 0
bt default 查看面板地址、用户名、密码 打印出面板地址(含安全入口)和账号密码

关于 bt 系列命令:在终端里直接输入 bt 会打开一个菜单, 里面有重启面板、改密码、改端口、修复面板、查看面板日志等选项。 改端口、改密码这类操作之后,记得把新信息记下来,否则容易把自己关在门外。

六、怎么把问题描述清楚

排错能力的另一半,是把问题说明白。 同样一个故障,说清楚了别人三分钟能帮你定位;说不清楚,来回问十轮还在原地。 下面这个模板抄下来,以后提问照着填。

提问模板(五要素):

【环境】宝塔面板 + Nginx + Debian,域名是我的域名
【我做了什么】在站点设置里把 PHP 版本从"纯静态"改成 8.1 并保存
【现在什么现象】访问 https://我的域名/留言页 显示一片空白
【报错原文】粘贴你看到的原文(错误日志里的整行,不要转述)
【我已经试过】Ctrl + F5、重启了 PHP、换了浏览器

好例子 vs 坏例子

说法为什么
坏 "我网站打不开了,怎么办?" 不知道是哪个地址、什么现象、什么时候开始、改过什么,别人只能靠猜
好 "昨天网站还正常。今天我在面板里把 PHP 版本从 7.4 改成 8.2 并保存,之后访问 https://www.我的域名/ 就显示 502。错误日志最后一行是:connect() failed (111: Connection refused) while connecting to upstream。我已经试过重启 PHP 和强制刷新。" 有环境、有操作、有现象、有原文、有已试过的动作,定位几乎不需要再问

搜索词怎么写

最关键的技巧:用你看到的报错原文去搜,不要用自己的话转述。 "网站打不开"搜不出东西,"connect() failed while connecting to upstream"一搜就有答案。

去哪里找答案

问题类型去哪找
宝塔面板怎么操作宝塔官方文档、宝塔论坛
Nginx / 服务器配置Nginx 官方文档(英文但最准确)
HTML / CSS / JS 的基础概念MDN(中文版内容很全)
具体的报错信息直接搜报错原文,通常第一条就是答案
想知道某个效果怎么做在别人的网页上右键 → 检查,照着抄写法

七、排错的黄金三问

最后,把这一章压缩成三句话。以后网站一出问题,先别急着动手,先回答这三个问题—— 它们能帮你在一分钟内把范围缩小到某个层,后面的排查就只是照着第二节查表。

排错的黄金三问:

① 昨天还好吗?今天改了什么?
如果昨天正常、今天坏了,那 90% 的原因就是今天动过的那一处。先把改动改回去,问题往往立刻消失——这就是"改前先备份"的最大价值。

② 是整站都坏,还是只有某个页面坏?
整站打不开 → 往网络层、服务器层查(解析、端口、服务是否在运行)。
只有某个页面坏 → 往站点层、页面层查(路径、文件、程序报错)。

③ 用 IP 能打开吗?用域名能打开吗?
这一问最好用,四个组合直接给出答案:
· IP 能开、域名不能开 → 域名解析或域名绑定的问题(网络层 / 站点层)
· IP 和域名都不能开 → 服务器或服务本身的问题(服务器层)
· IP 打开是 404、域名能开 → 正常现象,说明站点只绑了域名,服务器好好的
· 两个都能开,但内容不对 → 站点层或页面层(文件、路径、缓存、程序)

把这一页加进浏览器书签吧。网站出问题的时候,你需要的不是"记住所有答案",而是知道去哪里查。

← 上一章:改页面与界面优化 下一章:自学路线 12 关 →