这一章是整套教程的主干:从一台什么都没有的服务器,做到一个能用 HTTPS 打开的网站。 全程 11 步,每步都写清"点哪里、看到什么算成功、出错了怎么办"。照着做,大约一到两个小时。
先看这条链路,全章都围绕它:
域名 →(DNS 翻译成 IP)→ 服务器 →(Nginx 按域名找到站点)→ 站点根目录里的 index.html →(浏览器渲染)→ 你看到的页面。
第 1~4 步在准备这条链路的两端,第 5~9 步把中间的环节搭好,第 10 步才是把内容放上去——很多教程恰恰漏了第 10 步,导致新手做完发现"网站是空白的"。
| 要准备的 | 说明 |
|---|---|
| 一台能上网的电脑 | Windows / Mac 都行,本章以 Windows 举例 |
| 手机 | 用来做"真实环境"测试,很多问题只有手机会暴露 |
| 一个常用邮箱 | 注册云厂商、域名商、接收续费提醒 |
| 支付方式 | 国内平台可用微信/支付宝;海外域名商一般要银行卡或 PayPal |
| 一个记事本 | 用来记录:服务器 IP、SSH 密码、面板地址与账号密码、域名到期日。这些丢了会很麻烦 |
| 项目 | 参考价格 | 说明 |
|---|---|---|
| 服务器 | 每年几十到几百元 | 看配置和机房,新用户活动价便宜,注意续费价 |
| 域名 | 每年几十元 | 同样是"首年便宜、续费是真实成本" |
| SSL 证书 | 免费 | Let's Encrypt 免费证书,面板里一键申请 |
| 宝塔面板 | 免费 | 免费版对个人站完全够用 |
别贪便宜:不要买"永久服务器""终身套餐",也不要在价格低得离谱的地方买服务器。这类商家随时可能跑路,你的数据和网站会一起消失。选成立时间久、口碑可查的正规厂商。
| 步骤 | 做什么 | 在哪做 | 做完的标志 |
|---|---|---|---|
| 1 | 购买服务器 | 云厂商控制台 | 拿到 IP、root 密码、端口 22 |
| 2 | 购买域名 | 域名注册商 | 域名到手,开了自动续费 |
| 3 | DNS 解析 | 域名商 DNS 面板 | @ 和 www 都指向服务器 IP |
| 4 | SSH 连接服务器 | FinalShell 等工具 | 出现黑色的命令行窗口 |
| 5 | 安装宝塔面板 | 服务器上执行一行命令 | 拿到面板地址、账号、密码 |
| 6 | 放行端口 | 云控制台 + 面板 | 80、443、面板端口能访问 |
| 7 | 安装运行环境 | 面板 → 软件商店 | Nginx + PHP + 数据库装好 |
| 8 | 添加站点并绑域名 | 面板 → 网站 | 访问域名能看到"站点创建成功" |
| 9 | 申请 SSL 证书 | 面板 → 站点 → SSL | 地址栏出现小锁 |
| 10 | 上传网站内容 | 面板 → 文件管理 | 访问域名看到你自己的网页 |
| 11 | 备份 + 续费 + 安全 | 面板 → 计划任务 | 每天自动备份,日历里有到期提醒 |
服务器就是一台放在机房里、24 小时开机、能上网的电脑。你租它的使用权,按月或按年付费。它和你的家用电脑最大的区别是:它有一个固定的公网地址(IP),全世界都能访问到它。
| 机房位置 | 要不要备案 | 特点 |
|---|---|---|
| 中国大陆(北京/上海/广州等) | 必须备案 | 国内访问最快,但备案要 7~20 天,且期间网站不能正常对外用 80/443 端口 |
| 香港 / 日本 / 新加坡 | 不需要 | 免备案、开通即用,国内访问速度尚可,个人站首选 |
| 美国等更远地区 | 不需要 | 便宜,但国内访问延迟高,适合面向海外访客的站 |
新手建议:不想折腾备案,就选香港或日本机房。想服务国内访客又追求速度,再考虑国内机房 + 备案。
| 项目 | 怎么选 |
|---|---|
| CPU / 内存 | 个人站、博客:2 核 2G 足够;要跑数据库+多个站点:2 核 4G |
| 系统盘 | 40~60G 起步,够用 |
| 带宽 | 3M 左右即可。1M 大约每秒 128KB,传大文件会慢 |
| 流量 | 注意有没有月流量上限,图片/视频多的话要留意 |
| 操作系统 | 选 Debian 12(或 Ubuntu)。它占用小、命令简单、面板支持好。不要选 Windows 系统,那会额外收授权费而且不好用 |
123.45.67.89)——之后所有地方都要用它root22把它们抄进记事本。以后忘了面板信息,也要靠这台服务器找回来。
购买后的第一件事:去控制台找"快照"功能,给服务器拍一张快照。快照等于给整台服务器拍照片,将来弄坏了能一键还原。这一步比后面很多步都重要。
域名就是网站的"门牌号",比如 example.com。它是一串给人看的名字,服务器只认 IP,所以中间需要一个"翻译"的过程(第 3 步的 DNS)。
| 类型 | 举例 | 特点 |
|---|---|---|
| 国内注册商 | 腾讯云、阿里云、西部数码 | 需要实名认证;如果服务器也要备案,在同一家买会省事 |
| 海外注册商 | NameSilo、Namecheap、Porkbun | 免实名、送隐私保护;但可能不支持国内支付方式 |
.com:最通用、最被信任,优先选它(好名字多半已被注册).net:第二选择.cn:面向国内访客可以选,但只有国内平台卖| 价格 | 含义 |
|---|---|
| 新购价 | 第一次买(或转入)时的优惠价,通常很便宜,只第一年有效 |
| 续费价 | 第二年及以后每年都要付的价格,这个才是你的真实成本,各平台差别不大 |
买完必做两件事:① 打开自动续费;② 把到期日期抄进记事本并加进手机日历。
域名一旦过期,别管服务器多正常,网站都会打不开。
DNS 解析就是给域名写一条"翻译规则":访问这个名字时,请去找这个 IP。这条规则叫 A 记录。
| 主机记录 | 类型 | 记录值 | 结果 |
|---|---|---|---|
@(代表裸域名) | A | 你的服务器 IP | 让 example.com 能打开 |
www | A | 你的服务器 IP | 让 www.example.com 能打开 |
两条都要加!很多新手只加了 www,结果别人输入不带 www 的网址就报 404。
反过来,就算 DNS 都解析了,如果面板里的站点只绑定了 www.example.com,不带 www 照样打不开——DNS 和站点绑定是两件事,两边都要配对。
TTL 是"这条解析能被别人缓存多久"(单位秒)。默认值(如 600 或 3600)不用改。TTL 越小,改了之后生效越快,但查询更频繁。刚开始可以设小一点,稳定后改大。
在 Windows 的 PowerShell 或 CMD 里执行:
nslookup 你的域名
nslookup www.你的域名
两条命令都应该返回你的服务器 IP。如果返回的是别的 IP 或"找不到",说明记录没生效或写错了。
解析不会立刻全网生效,一般几分钟到几小时(取决于 TTL 和各地运营商的缓存)。改完别反复改来改去,等一会儿再测。国内域名通常生效更快。
服务器没有显示器,你要靠命令行远程操作它。SSH 就是"远程登录服务器的通道",常见的工具有 FinalShell、Xshell、electerm 等。本章用 FinalShell 举例,它免费、中文、还带文件管理。
| 字段 | 填什么 |
|---|---|
| 名称 | 随便起,比如"我的第一台服务器" |
| 主机 | 你的服务器公网 IP |
| 端口 | 22(除非你改过) |
| 用户名 / 密码 | root / 你设置的服务器密码 |
一个黑色窗口,里面有一行提示符,形如:
root@你的主机名:~#
看到这个就说明连上了。这时候你敲的每条命令,都会在这台服务器上执行。
| 报错 | 最可能的原因 | 怎么处理 |
|---|---|---|
| Authentication failed / 密码错误 | 密码不对 | 去云控制台"重置密码",重启服务器后再连 |
| Connection timed out / 连接超时 | 22 端口没放行 | 去云控制台安全组里放行 22 端口 |
| Connection refused | 服务器没开机,或 SSH 服务没运行 | 控制台看运行状态,用网页版 VNC 登录检查 |
| 能连上但输密码没反应 | 终端不显示密码是正常的 | 直接输入,然后回车 |
纯命令行对新手不友好。宝塔面板是一个网页版的管理后台:装完之后,你在浏览器里点鼠标就能建站、传文件、配 SSL、看监控。
在刚刚的黑色终端里,粘贴执行(Debian / Ubuntu 系统):
wget -O install.sh https://download.bt.cn/install/install_panel.sh && bash install.sh ed8484bec
中途会问你要不要安装到 /www 目录,输入 y 回车。这里千万别按 Ctrl+C 中断,否则安装会半途而废。安装要几分钟,期间不要关窗口。
如果安装过程被中断,很可能出现"面板装了一半"的状态:命令行里能用 bt,但网页打不开面板。这时重新完整跑一遍上面的命令即可,不要慌。
终端最后会打印类似下面的信息:
外网面板地址: https://你的服务器IP:8888/一串随机字符
username: 随机用户名
password: 随机密码
立刻截图或抄进记事本!这三样东西以后很难再猜出来(不过忘了也能找回来,见 5.4)。
浏览器打开那个"外网面板地址"。如果提示证书不安全(因为面板用的是自签证书),点"高级 → 继续访问"即可,这是正常的。
用 FinalShell 连上服务器,输入:
bt
会出来一个菜单,常用的是:
| 命令 | 作用 |
|---|---|
bt default | 显示面板地址、用户名、密码(最常用) |
bt 1 | 重启面板 |
bt 5 | 修改面板密码 |
bt 6 | 修改面板用户名 |
bt 8 | 修改面板端口 |
bt 16 | 修复面板 |
bt 22 | 查看面板错误日志 |
服务器上有很多"门",叫端口。默认情况下大多数门是关着的,你要主动把需要的那几扇门打开,外面才能访问。
| 端口 | 用途 | 要不要对外开放 |
|---|---|---|
| 22 | SSH 远程登录 | 要(最好限制成只允许你的 IP) |
| 80 | 网站 HTTP | 要(所有人都要能访问) |
| 443 | 网站 HTTPS | 要(所有人都要能访问) |
| 8888(或你改的端口) | 宝塔面板 | 最好只允许你自己的 IP |
不要"全部端口开放"!很多教程会让你选"全部 TCP",这等于把服务器所有门都敞开,会持续被扫描和爆破。只开上面这几个就够。
ufw 配置两层都要通。有些"打不开"其实是云安全组没放行,有些是系统防火墙没放行。
把服务器想象成一家餐厅:
| 角色 | 对应软件 | 作用 |
|---|---|---|
| 门口接待员 | Nginx | 接收访客请求,把网页文件发回去 |
| 厨师 | PHP | 需要"现场做菜"时才用:动态页面、留言板、WordPress 都靠它 |
| 仓库 | MySQL / MariaDB | 存放数据:文章、用户、评论 |
版本提醒:网上很多老教程让你装 PHP 7.4 + MySQL 5.7。这两个版本都已经停止安全维护了(PHP 7.4 于 2022 年底、MySQL 5.7 于 2025 年底),继续用会有安全风险。新装环境请选 PHP 8.1/8.2 + MySQL 8.0(或 MariaDB 10.11)。
面板会给你两个选项:极速安装快(几分钟),编译安装慢(半小时以上)但性能略好、更可控。个人站选极速安装就行。
你的域名 和 www.你的域名/www/wwwroot/你的域名)面板会自动在根目录放一个 index.html,内容是"恭喜,站点创建成功!这是默认 index.html,本页面由系统自动生成"。
看到这句话是好事,不是坏事。它证明:DNS 解析对了、服务器通了、Nginx 正常、站点绑定成功了——整条链路都通了,只差你把自己的网页放进去(第 10 步)。
| 现象 | 先检查什么 |
|---|---|
| 404 Not Found | ① 域名是不是没绑到站点里?② 根目录里有没有 index.html? |
| 一直转圈/超时 | 80 端口没放行(云安全组 / 系统防火墙) |
| 不带 www 打不开,带 www 正常 | 站点"域名管理"里没加裸域名,或者 DNS 缺 @ 记录 |
HTTP 是明文传输,HTTPS 是加密传输。现在浏览器对 HTTP 网站会标"不安全",所以一定要上 HTTPS。证书由 Let's Encrypt 免费提供,面板里一键申请。
申请失败最常见的原因是:域名没有正确解析到这台服务器,或者 80 端口没放行(证书验证要通过 80 端口)。先把这两件事确认好再申请。
申请成功后,浏览器地址栏会出现小锁,点开能看到证书是谁签发的、什么时候到期。
这一步是最多教程漏掉、最多新手卡住的地方。
"添加站点"只是在服务器上建了一个空文件夹并放了一张默认页。真正的网站 = 你自己放进那个文件夹里的网页文件。
最简单的网站就是一个文件:index.html。它必须在站点根目录的第一层:
/www/wwwroot/你的域名/
├── index.html ← 首页,必须有,且必须在这一层
├── style.css ← 样式(可选)
├── images/ ← 图片文件夹(可选)
└── 404.html ← 出错页面(可选)
常见错误:把整个文件夹传上去,变成 /www/wwwroot/你的域名/我的网站/index.html。多套了一层目录,浏览器在根目录找不到 index.html,就会 404。正确做法是把文件本身传进根目录。
| 方式 | 怎么做 | 适合 |
|---|---|---|
| 面板文件管理(推荐) | 网站 → 点站点 → 根目录 → 文件管理 → 上传;或先右键把旧的 index.html 重命名为 index-old.html 备份 | 文件不多,最直观 |
| 拖拽上传 | 用 SSH 工具(如 FinalShell)连上服务器,在下方文件树里进入根目录,把文件从 Windows 拖进去 | 文件较多 |
| FTP | 面板 → FTP 建账号 → 用 FileZilla 连接上传 | 习惯 FTP 的人 |
https://你的域名再定期把备份下载一份到本地。备份放在同一台服务器上,服务器挂了就一起没了。
| 检查项 | 合格的标志 |
|---|---|
| 安全组 | 只放行 22 / 80 / 443 / 面板端口,没有"全部开放" |
| 面板访问 | 改过默认端口、设了安全入口、限制了登录 IP |
| SSH | 密码足够复杂;进阶:改成密钥登录、关闭密码登录 |
| HTTPS | 强制 HTTPS 已开,自动续签已开 |
| 备份 | 每天自动备份 + 偶尔下载到本地 |
| 软件版本 | PHP 8.1+、数据库 8.0+,不用已停止维护的老版本 |
打印或抄下来,做一步勾一步:
@ 和 www 两条 A 记录,用 nslookup 验证把域名发给他就行(建议用带 https 和 www 的完整写法)。不需要给他服务器 IP 或面板地址——面板地址属于你自己的后台,不要给别人。
按顺序排除:① 你改的是本地文件,没上传到服务器(最常见);② 浏览器缓存,按 Ctrl+F5;③ 传到别的目录去了。
不能。面板 = 你服务器的总控台,别人进去就等于拿到了服务器的控制权。要给别人看,只给域名。
任意一个过期,网站都会打不开。两个都要单独续费,别以为买了域名就万事大吉。
不一定,也有 1Panel、AMH、aapanel 等。但宝塔中文资料多、界面符合国人习惯,新手用它最省事。
是的,前面 9 步都一样。到第 10 步时,把"上传 index.html"换成"上传 WordPress 程序并安装"即可,详见第 04 章和官方文档。
这一章的三句话总结:
① 域名和服务器是两样东西,都要买、都要续费,靠 DNS 把它们连起来。
② 面板只是管理工具,"添加站点"只是建了个空文件夹。
③ 真正让网站出现的,是你把 index.html 上传到站点根目录那一步。