泓熠 (HY)
Copyright © 2026, 泓熠 (HY).
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
注:2020 年的一篇旧文,当时我完全不懂 GNU/Linux、HTML、CSS、Markdown、SSH、Nginx、MySQL、PHP、IP 地址、域名、DNS、Git、Node.js、Hexo、WordPress、Typecho 等,自学记此笔记。
本文主要介绍搭建网站的一些思路以及在网站上部署动态博客与静态博客的方法。
以下是该方案服务器软件层级结构:
下面以本地 Windows 10 电脑 + 云服务器 Debian 10.2+ 宝塔面板 + Nginx+MySQL+phpMyAdmin+Typecho为例:
在域名注册商处注册域名。
在云服务器商处购买云服务器,建议使用 Debian、Ubantu 或 CentOS 操作系统,此处以云服务器 Debian 10.2 和本地 Windows 10 电脑作为实践。
云服务商控制台的安全组(防火墙)功能与宝塔面板重复,放通端口时请注意在云服务商控制台和宝塔面板都要放通。为了安全,按需放通端口。
在域名注册商处将 DNS 地址设置为域名解析商要求的地址,并在域名解析商处设置以下解析记录:
| 主机记录 | 记录类型 | 线路类型 | 记录值 |
|---|---|---|---|
| @ | A | 默认 | 用于建站的服务器 ipv4 地址 |
| WWW | 显性 URL(301重定向) | 默认 | \https://<域名> |
域名解析生效有一定的延迟。
确保 TCP:22 端口开启。
可以使用云服务器商提供的网页 SSH 协议登录的方式(VNC/WebShell/腾讯 Orcaterm),也可以用客户端 SSH 协议登录。
客户端SSH登录指南:打开Windows Terminal(或PowerShell、或命令提示符(cmd))。
ssh root@<服务器公网 IP 或已解析至该IP的域名>
输入密码时不会显示,输入完回车即可。
若登录出现问题,可以清空缓存重试。SSH 缓存位置:C:\\Users\\<用户名>\\.ssh
若未使用 root 身份登录,需要切换至 root 身份:
sudo su root
在宝塔面板官网查看安装方法。
当然,也可以选择其他服务器运维面板,也可以不使用面板,直接使用命令行。
在宝塔面板即可安装 Nginx。
动态网站如需要登录和注册账号等功能,需要数据库支持,数据库根据博客软件的要求安装合适的版本。在宝塔面板即可安装 MySQL。
安装 PHP,根据博客软件的要求安装合适的版本,在宝塔面板即可安装。
在宝塔面板站点页面,点击「添加站点」,输入域名,选择 PHP 版本,并在此创建数据库。
可以使用 phpMyAdmin 管理数据库,注意放通 TCP:888 端口。
在Typecho官网下载博客搭建所需的文件并解压。
在宝塔面板将网站根目录原有的文件删除,并将博客搭建所需文件上传到网站根目录里(也可以在服务器上进行远程下载)。
然后在浏览器中输入域名即可以访问该网站,初次访问需要配置安装 Typecho。
数据库地址、数据库端口按默认的即可,数据库名、数据库用户名、数据库密码可以在宝塔面板的数据库页面查看,复制粘贴过来。
完成后会有一个登录Typecho网站后台的用户名和密码,务必牢记,这是管理网站的后台账号。
在腾讯云可以免费申请亚洲诚信域名型免费版证书,申请成功后将证书下载到本地。
在宝塔面板后台网站页面,打开站点设置,点击“SSL”,点击“其他证书”,将下载的 SSL/TLS 证书粘贴 \*.key 以及 \*.pem 文件的内容到此处(如果你的证书里没有pem文件,那么需要拼接出 pem 文件。
pem格式证书文件=域名证书.crt+根证书(root_bundle).crt)。
打开右上角的“强制 HTTPS”,然后保存即可。
此处是在网站服务端设置强制访客使用 https 协议。
对于服务端未强制但支持 https 的网站,访客使用 Google Chrome 或 Microsoft Edge 访问时,既可以使用 http 也可以使用 https;
但使用 Mozilla Firefox 访问时只能使用 https,因为 Mozilla Firefox 在浏览器端强制用户使用 https,Mozilla Firefox 只有对不支持 https 的网站才能使用 http 访问)
也可以直接使用宝塔面板提供的「宝塔 SSL」或「Let's Encrypt」证书,一键部署。
注意证书是有期限的,到期前需要续签。
主题的文件夹在 /www/wwwroot/<域名>/usr/themes。
插件的文件夹在 /www/wwwroot/<域名>/usr/plugins。
下载的主题和插件直接上传到对应的文件夹,并在网站 Typecho 后台开启即可。注意主题和插件的文件夹名称要规范,否则在 Typecho 后台不显示主题或插件。
对于中国大陆地区境内的服务器,开启万维网服务端几分钟或几小时后会被云服务器商拦截。
而且未备案网站的域名也不能在国内的域名解析商处设置 URL 转发的解析记录,这时需要在云服务器商处完成 ICP 备案,之后网站就可以正常运营了。
对于中国大陆地区境内的服务器,完成 ICP 备案后建议尽快进行公安备案。
云服务器商不参与公安备案,用户需自行在全国互联网安全管理服务平台注册并登录账号进行备案。
网站备案可能需要域名证书。
对于中国国家域名.cn,域名证书有两种:一种是 ICANN 证书,一种是 CNNIC 证书;
对于.com/.net/.org等国际域名,只有 ICANN 证书。
ICANN 证书在域名注册商处下载;
CNNIC 证书在CNNIC 官网下载:下载地址。
用静态网站框架生成网站目录和网站文件,再将其部署到云端托管。
以下是几种可选的静态网站框架和静态网站托管平台:
静态网站框架(Hexo、Jekyll、Hugo等)
静态网站托管平台(GitHub Pages、GitLab Pages、Gitee Pages、腾讯云静态网站托管等,当然也可以使用云服务器,但成本较高,也浪费资源)
这里以本地Windows 10 电脑 + Hexo + GitHub Pages 为例:
从 Node.js 官网 下载安装
从 Git 官网下载安装
文件夹名随意
在文件夹右键菜单中点击「Git Bash Here」
npm install hexo-cli -g
安装完毕之后,查看 Hexo 版本信息:
hexo -v
hexo init
npm install
主题和插件可以在Hexo官网寻找。
站点配置文件为 本地网站根目录/_config.yml,主题配置文件为 本地网站根目录/themes/hexo-theme-matery/_config.yml
hexo generate
该命令可简写为:
hexo g
hexo server
该命令可简写为:
hexo s
打开浏览器访问 \http://localhost:4000 查看效果。
按 Ctrl+c
hexo clean
第一个用于托管静态网站(创建 GitHub Pages)的仓库必须命名为“<用户名>.github.io”,用该仓库托管的网站地址为“<用户名>.github.io”。
之后用于创建 GitHub Pages 的仓库可以自由命名,其网站地址为“<用户名>.github.io/<仓库名>”。
注意设置可见性为公开(public)。
只有付费的 GitHub 专业版(GitHub Pro)、GitHub 团队版(GitHub Team)和 GitHub 企业版(GitHub Enterprise)才能使用私有(private)仓库创建 GitHub Pages。
GitHub 用户免费版(GitHub Free for user accounts)和 GitHub 组织免费版(GitHub Free for organizations)只能使用公开仓库创建 GitHub Pages。
回到本地网站目录,右键菜单点击「Git Bash Here」。
npm install hexo-deployer-git --save
ssh-keygen -t rsa -C ""
按照终端给出的路径(默认为 C:\\Users\\<用户名>\\.ssh),找到文件 id_rsa.pub 并用文本编辑器打开,复制其中内容。
进入 GitHub 仓库在 Settings 页面,点击“Deploy keys”,点击右上角“Add deploy key”,把复制过来的 Key 粘贴进去,Title随便写。
注意要勾选“Allow write access”。
使用文本编辑器打开站点配置文件,末尾改为:
deploy:
type: git
repo: git@github.com:/.github.io.git
branch: main
其中 repo 表示仓库地址,可以用 git 地址也可以用 https 地址。git 地址和 https 地址可以在 GitHub 仓库页面获取。
hexo g
hexo deploy
该命令可简写为:
hexo d
如果是第一次部署,会提示设置邮箱和用户名,请设置后再部署。
git config --global user.email "<邮箱>"
git config --global user.name "<用户名>"
理论上此处设置的邮箱和用户名可以是任意的,但最好和GitHub账号保持一致。
GitHub 仓库的 GitHub Pages 网站首页是 index.html 文件。
其实也可以简单粗暴地将 public 文件夹下的文件全部上传至 GitHub 仓库,但不如使用 Git 部署可靠,而且 GitHub 对通过网页浏览器一次性上传的文件数量有限制。
| 主机记录 | 记录类型 | 线路类型 | 记录值 |
|---|---|---|---|
| @ | CNAME | 默认 | |
| www | CNAME | 默认 |
在仓库设置(settings)页面,点击“Pages”,选择源(sourse)的分支(Brunch)和文件夹(folder)后保存,输入域名并勾选“Enforce HTTPS”。(GitHub Pages提供免费的 SSL/TLS 证书,且只能使用其提供的证书,不支持自行上传证书)。
GitHub Pages 服务器位于境外。