嗨,欢迎来到我的博客。
这是我为这个博客写下的第一篇文章。网站搭好之后,我一直在想:第一篇内容应该写些什么?与其写一段简单的自我介绍,不如从这个博客本身开始,带你从零搭建一个属于自己的网站。
也许此刻的你只是随手点进来看看,也许某个深夜,你真的会因为一时兴起,买下一个域名,租一台服务器,然后拥有互联网上属于自己的小角落。
本文以 Typecho 和宝塔面板为例,介绍个人博客的基本搭建流程。软件界面和服务商规则会不断更新,具体操作请以各平台的最新官方文档为准。
在开始之前:访问网站时发生了什么?
当我们在浏览器里输入一个域名时,一次网站访问大致会经过下面这条路径:
浏览器输入域名
↓
DNS 查询域名对应的 IP 地址
↓
浏览器访问服务器的 80 或 443 端口
↓
Nginx / Apache 接收请求
↓
PHP 运行 Typecho
↓
Typecho 从数据库读取文章并生成页面理解这条链路很重要。以后遇到网站打不开时,我们就能判断问题究竟出在域名解析、服务器网络、Web 服务、PHP,还是 Typecho 本身。
准备工作
开始搭建前,需要准备以下内容:
- 一个可用的域名;
- 一台带公网 IP 的云服务器;
- 一个能够正常使用的邮箱;
- 基本的 SSH 连接能力;
- 如果服务器位于中国大陆,还需要按规定完成 ICP 备案。
域名可以在阿里云、腾讯云或其他正规注册商处购买。.com、.net、.org 等后缀都可以使用,不必为了便宜选择来历不明的域名服务商。
服务器建议选择自己熟悉、售后文档较完整的平台。个人博客初期对配置要求不高,但最好选择仍在维护的 Linux 发行版,例如当前受支持的 Ubuntu、Debian、AlmaLinux 或 Rocky Linux。
第一步:连接服务器并安装宝塔面板
购买服务器后,在服务商控制台找到公网 IP、SSH 用户名和登录方式,然后通过 SSH 连接服务器。
宝塔面板的安装命令会随版本和操作系统变化,因此不建议从年代久远的文章里复制固定脚本。请打开宝塔面板官方下载页面,选择服务器对应的操作系统,并使用页面提供的最新安装命令。
安装完成后,终端通常会显示:
- 面板访问地址;
- 面板端口;
- 安全入口;
- 初始用户名;
- 初始密码。
请立即把这些信息保存到安全的密码管理工具中,不要截图公开,也不要发到群聊或博客文章里。
面板无法打开怎么办?
首先检查云服务商的安全组或防火墙是否放行了实际的面板端口。
需要注意,80 是普通 HTTP 网站端口,443 是 HTTPS 网站端口,它们不一定是宝塔面板的登录端口。当前宝塔安装通常会生成单独的面板端口,应以安装完成时显示的地址为准。
如果忘记了面板信息,可以通过 SSH 执行:
bt 14查看默认面板地址和账户信息。修改面板端口后,也要同步修改云服务商安全组和服务器防火墙规则。
第二步:完成面板的基础安全设置
首次登录面板后,建议先完成这些设置:
- 修改默认用户名和密码;
- 使用长度足够的随机密码;
- 设置不容易被猜到的安全入口;
- 开启登录告警和防爆破功能;
- 如果条件允许,限制只有自己的固定 IP 能访问面板;
- 不要把数据库端口和 phpMyAdmin 长期开放给整个互联网。
安装环境时可以选择 LNMP:
Linux + Nginx + MySQL/MariaDB + PHPTypecho 当前要求 PHP 7.4 或更高版本。新部署时应选择仍在安全维护期内、并与所用 Typecho 版本兼容的 PHP 版本,而不是继续使用早已停止维护的 PHP 7.2。
第三步:配置域名 DNS
登录域名注册商的控制台,找到 DNS 解析设置,然后添加记录。
如果服务器提供的是 IPv4 地址,一般添加 A 记录:
| 选项 | 示例 | 说明 |
|---|---|---|
| 记录类型 | A | 指向 IPv4 地址 |
| 主机记录 | @ | 解析根域名,例如 example.com |
| 记录值 | 203.0.113.10 | 服务器公网 IPv4 地址 |
| TTL | 默认 | 通常无需修改 |
如果还希望通过 www.example.com 访问,可以再添加一条记录:
| 选项 | 示例 |
|---|---|
| 记录类型 | CNAME |
| 主机记录 | www |
| 记录值 | example.com |
如果服务器使用 IPv6,则添加 AAAA 记录。只有当服务商给你的目标本身是另一个域名时,才需要使用 CNAME。
DNS 解析不是立刻在全球同时生效的。修改后可能需要等待一段时间,可以使用下面的命令检查结果:
nslookup example.com把 example.com 换成自己的域名。如果返回的地址与服务器公网 IP 一致,说明解析基本正确。
第四步:创建网站和数据库
进入宝塔面板的“网站”页面,新建一个 PHP 网站,并填写已经解析好的域名。
创建时建议同时建立独立数据库和数据库用户。请为数据库生成随机强密码,不要让数据库密码与面板密码、服务器密码或 Typecho 管理员密码相同。
网站至少需要放行以下端口:
80 HTTP
443 HTTPSMySQL 的 3306 端口通常不需要对公网开放。Typecho 和数据库运行在同一台服务器时,让数据库仅接受本机连接会更安全。
第五步:安装 Typecho
前往 Typecho 官方下载页面,下载最新稳定版。不要把开发版直接用于正式博客,除非你清楚可能遇到的兼容性问题,并且有完整备份。
将 Typecho 文件上传到刚才创建的网站根目录并解压。解压后应确保 index.php、install.php、admin、usr、var 等内容直接位于网站根目录,而不是多套了一层文件夹。
然后在浏览器中访问:
http://你的域名/install.php根据安装向导填写:
- 数据库地址;
- 数据库名称;
- 数据库用户名;
- 数据库密码;
- Typecho 管理员用户名;
- 管理员密码;
- 管理员邮箱。
如果数据库与 Typecho 位于同一台服务器,数据库地址通常填写 localhost 或 127.0.0.1。安装完成后,访问域名即可看到博客首页。
部分宝塔版本或应用商店也可能提供 Typecho 一键部署。它确实方便,但不同版本的界面和应用模板可能发生变化。无论采用一键部署还是手动上传,都要确认 Typecho 来源可信、版本仍受支持,并妥善保存数据库信息。
第六步:启用 HTTPS
网站能够通过 HTTP 访问后,建议尽快申请 SSL 证书并启用 HTTPS。
在宝塔的网站设置中找到 SSL 功能,可以申请受支持的免费证书,或上传自己已有的证书。启用后测试:
https://你的域名确认页面、后台和静态资源都能正常加载,再开启“强制 HTTPS”。如果一开始就强制跳转,而证书或域名尚未配置正确,反而会增加排错难度。
关于 ICP 备案
如果网站使用位于中国大陆的服务器并对外提供服务,通常需要先完成 ICP 备案。备案应通过服务器接入商提供的系统提交,所需材料和审核时间以接入商及当地通信管理部门要求为准。
这里需要纠正一个常见误解:
把 DNS 托管到 Cloudflare,并不能让一台位于中国大陆且需要备案的服务器绕过备案要求。
Cloudflare 可以提供 DNS、CDN 和安全防护,但它不会改变源站服务器所在地区及其合规要求。Cloudflare 的中国网络服务本身同样要求有效的 ICP 备案或许可证。
如果暂时不准备备案,可以选择位于中国大陆以外的服务器,但访问速度、线路质量和相关规则需要自行权衡。
关于在家里搭建服务器
把博客放在家里的电脑或小主机上当然可以,但维护难度通常比云服务器更高。
你可能需要处理:
- 家庭宽带是否拥有公网 IP;
- 公网 IP 是否会定期变化;
- DDNS 动态域名解析;
- 路由器端口转发;
- 运营商是否限制 80、443 等端口;
- 没有公网 IP 时的内网穿透;
- 停电、断网和硬件故障;
- 系统更新、备份与网络安全。
本地建站很适合学习,但如果只是想稳定写博客,云服务器通常更省心。
建站之后还要做什么?
看到 Typecho 首页并不代表工作已经全部结束。一个能够长期运行的博客还需要:
- 定期备份网站文件和数据库;
- 及时更新 Typecho、主题、插件、PHP 和系统安全补丁;
- 删除不用的插件和测试文件;
- 为后台账户启用强密码;
- 定期检查登录日志和服务器磁盘空间;
- 在重大升级前先创建完整备份。
比起把博客搭起来,更难也更有意义的事情,是一直写下去。
写在最后
如果你已经跟着这篇文章搭好了自己的博客,那么恭喜你。从现在开始,互联网上多了一个真正属于你的空间。
你可以在这里记录学习过程,分享踩过的坑,保存某个阶段的想法,也可以在很多年以后偶然翻回第一篇文章,重新看到当时那个认真折腾网站的自己。
如果文章中还有遗漏或错误,欢迎在评论区告诉我。你的提醒会让这篇教程变得更完整,也会帮助后来看到它的人少走一些弯路。
希望这个博客能够一直更新下去,也希望多年后的我再次读到这里时,仍然记得第一次把网站部署成功时的兴奋。