简明个人网站搭建指南
写在最前
洛谷上的建站教程太杂了,建个网站要找好几个专栏,所以就有了本文,对之前洛谷上的文章进行了总结,也添加了自己的东西,欢迎添加和指正。
编写页面
静态页面:HTML + CSS + JS 示例
静态网页由 HTML 结构、CSS 样式和 JavaScript 交互组成。
index.html:
<!DOCTYPE html>
<html>
<head>
<title>我的静态网站</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<h1>欢迎访问我的网站</h1>
<p id="intro">这是一个示例页面。</p>
<button onclick="changeText()">点击这里</button>
<script src="script.js"></script>
</body>
</html>
style.css:
body {
font-family: Arial, sans-serif;
margin: 40px;
background-color: #f5f5f5;
}
h1 {
color: #333;
}
button {
padding: 10px 20px;
background-color: #007bff;
color: white;
border: none;
cursor: pointer;
}
script.js:
function changeText() {
document.getElementById("intro").innerText = "你刚刚点击了按钮!";
alert("内容已更新");
}
建站框架(以 Hexo 为例)
Hexo 可快速生成静态博客,支持 Markdown 写作与主题更换。
安装与初始化
npm install -g hexo-cli
hexo init myblog
cd myblog
npm install
hexo server # 本地预览
更换主题(以 butterfly 主题为例)
- 在
myblog目录下安装主题:npm install hexo-theme-butterfly - 修改
_config.yml:theme: butterfly - 主题配置参考
_config.butterfly.yml,可自定义样式、侧栏等。
文章管理
- 新建文章:
hexo new "我的第一篇文章" - 编辑
source/_posts/我的第一篇文章.md:--- title: 我的第一篇文章 date: 2023-10-01 tags: [教程, Hexo] --- 这里是文章内容,支持 **Markdown** 语法。 - 生成静态文件并部署:
hexo clean && hexo generate hexo deploy # 需提前配置部署工具(如 Git)
动态页面(以 Vue 3 为例)
Vue 适合构建交互式单页应用(SPA)。
项目创建与运行
npm create vue@latest my-vue-app
cd my-vue-app
npm install
npm run dev
基础 Vue 语法示例
App.vue:
<template>
<div>
<h1>{{ message }}</h1>
<button @click="reverseMessage">反转文本</button>
<ul>
<li v-for="item in items" :key="item.id">{{ item.name }}</li>
</ul>
</div>
</template>
<script setup>
import { ref, reactive } from 'vue'
const message = ref('Hello Vue!')
const items = reactive([
{ id: 1, name: '项目一' },
{ id: 2, name: '项目二' }
])
function reverseMessage() {
message.value = message.value.split('').reverse().join('')
}
</script>
<style scoped>
h1 {
color: #42b983;
}
button {
margin-top: 10px;
}
</style>
文档框架(以 VitePress 为例)
VitePress 适合搭建技术文档,支持 Markdown 与 Vue 组件。
初始化项目
npm create vitepress@latest my-docs
cd my-docs
npm install
npm run docs:dev
编写文档
- 编辑
docs/index.md:# 欢迎使用 VitePress
这是一个简单的文档示例。
::alert{type="info"} 这是一个提示框。 ::
<MyComponent />
#### 使用 Vue 组件
在 `.vitepress/theme` 目录下创建 `MyComponent.vue`:
```vue
<template>
<div class="demo">这是一个自定义组件</div>
</template>
<style scoped>
.demo {
color: blue;
}
</style>
托管网页(使用云服务,以 OCI 为例)
在云服务器上托管网站主要有两种方式,选择哪种取决于你的网站类型和技术偏好:
| 特性 | 计算实例 (VM) | 对象存储 + API 网关 |
|---|---|---|
| 适用网站类型 | 静态、动态(如 PHP)、数据库驱动(如 WordPress) | 纯静态网站(HTML/CSS/JS) |
| 控制程度 | 高,拥有完整的服务器 root 权限 | 低,仅管理文件,无需配置服务器 |
| 配置复杂度 | 中高,需手动配置 Web 服务、防火墙等 | 低,通过控制台界面配置 |
| 免费层资源 | 2 台 AMD 实例(1/8 OCPU,1 GB 内存) | 20 GB 对象存储 |
| 核心优势 | 灵活,可运行任何应用 | 简单,无需维护操作系统,直接托管编译后的文件 |
如果你的网站是纯静态的(例如由 Hexo、VuePress 生成),或希望极致简单,可以选择对象存储方案。若需要运行 WordPress、动态后端或追求全面控制,则计算实例方案更合适。以下重点介绍后者。
1. 注册 OCI 永久免费账户
- 访问 Oracle Cloud 官网,点击“开始免费试用”。
- 使用邮箱注册,需要填写个人信息并绑定信用卡以验证身份(对于永久免费套餐,通常不会产生费用,除非升级或超限)。
- 注册成功后,你会获得一个租户(Tenancy),包含“始终免费”资源,如 2 台 AMD 计算实例和 200 GB 存储等。
2. 创建并配置计算实例(虚拟机)
A. 创建实例
- 登录 OCI 控制台,导航到计算 > 实例。
- 点击“创建实例”。
- 关键配置:
- 名称:自定义(如
MyWebServer)。 - 镜像:选择 Canonical Ubuntu 22.04 或 Oracle Linux 等系统。
- 形状:确保勾选 “始终免费符合条件”,选择 VM.Standard.E2.1.Micro(1/8 OCPU,1 GB 内存)。
- SSH 密钥:上传或生成 SSH 密钥对。这是连接服务器的唯一凭证,务必妥善保管私钥文件。
- 网络:保留默认创建的 VCN 和子网。
- 名称:自定义(如
- 点击“创建”,等待几分钟实例进入“运行中”状态。
B. 配置网络安全(关键步骤) 创建后,必须开放 Web 服务端口,否则无法通过公网 IP 访问网站。
- 在实例详情页面,找到其所在的子网链接,点击进入。
- 找到关联的安全列表,点击进入。
- 添加入站规则:
- 源 CIDR:
0.0.0.0/0(允许所有 IP 访问,可按需限制) - 目标端口范围:
80(HTTP) 和443(HTTPS) - 协议:TCP
- 源 CIDR:
3. 连接实例并安装 Web 服务器
A. SSH 连接实例
- Linux/macOS:在终端执行(需先将私钥文件权限设为 400)。
ssh -i /path/to/your-private-key opc@<你的实例公网 IP>注:Ubuntu 系统默认用户为
ubuntu,Oracle Linux 为opc。 - Windows:可使用 PuTTY 或 WSL 2 进行连接。
B. 安装并启动 Nginx 以 Ubuntu 为例,连接后执行:
sudo apt update && sudo apt install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
安装完成后,在浏览器输入你的实例公网 IP,应能看到 Nginx 欢迎页。
4. 部署你的网站文件
网站文件默认位于 /var/www/html。你可以通过多种方式上传文件:
- SCP 命令(本地 → 服务器):
# Linux/macOS/Windows (Git Bash) scp -i /path/to/private-key -r ./local-site/* opc@<实例 IP>:/var/www/html/ - 使用 Git:在服务器安装 Git 后,直接克隆你的代码仓库。
- 使用 SFTP 客户端:如 FileZilla,用 SSH 密钥连接进行可视化上传。
上传后,可能需要调整文件权限:
sudo chown -R www-data:www-data /var/www/html/
:::warning[注意事项与免费层限制]{open}
- 资源限制:永久免费套餐提供 2 台微型实例,每月 10 TB 出站流量。超出后可能产生费用或限速。
- 实例停止:实例若被停止(Stopped),超过一定时间(如 7 天)后,其公共 IP 地址可能被回收。建议在不需要时选择终止(Terminate),需要时再创建新实例。
- 定期使用:长期不活动的免费账户可能被关闭,建议定期登录。 :::
托管网页(使用托管服务)
Netlify 是部署静态网站(如由 HTML/CSS/JS、VuePress、Hexo、Hugo 等框架生成)的绝佳选择。它提供自动化构建、全球 CDN 加速、免费 HTTPS 等一站式服务,非常适合个人项目。
1. 核心优势与准备工作
与手动配置服务器(如 OCI 实例)相比,Netlify 的优势在于极简和自动化:
| 特性 | Netlify 托管 | 服务器 |
|---|---|---|
| 部署流程 | 连接 Git 仓库,自动构建和发布 | 手动上传文件,配置 Web 服务器 |
| 服务器维护 | 无需 | 需要自行维护系统、安全和更新 |
| HTTPS 证书 | 自动申请并续签(Let's Encrypt) | 需手动安装和配置(如 Certbot) |
| 全球访问速度 | 通过全球 CDN 分发 | 依赖单一服务器地理位置 |
| 适合场景 | 静态网站、前端应用、Jamstack 项目 | 动态网站(需 PHP/Python 等后端)、需要深度自定义服务器环境 |
在开始前,请准备好:
- 一个 Netlify 账户:使用 GitHub、GitLab 或邮箱注册(官网)。
- 你的网站源代码:一个包含
index.html的本地文件夹,或一个已托管的 Git 仓库(推荐使用 GitHub 或 GitLab)。
2. 部署网站:三种主要方法
A. 从 Git 仓库部署(推荐,实现持续集成) 这是最强大、最常用的方式。每次你向 Git 仓库推送代码,Netlify 都会自动重新构建和部署。
- 在 Netlify 控制台点击 “Add new site” > “Import an existing project”。
- 选择你的 Git 提供商(如 GitHub),并授权 Netlify 访问权限。
- 选择你要部署的具体仓库。
- 关键配置(通常在部署时或之后的站点设置中):
- 构建命令:如果你的网站需要构建(如使用 Vue、React),在此填写。例如,Vite 项目是
npm run build,Hexo 是hexo generate。 - 发布目录:构建后生成的静态文件所在文件夹。例如,Vite 项目通常是
dist,Hexo 是public。
- 构建命令:如果你的网站需要构建(如使用 Vue、React),在此填写。例如,Vite 项目是
- 点击 “Deploy site”。首次构建后,你的网站会获得一个随机的
xxx.netlify.app子域名。
B. 手动拖拽上传(最快速) 如果只是快速测试一个简单的 HTML 网站,可以直接拖拽。
- 在控制台点击 “Add new site” > “Deploy manually”。
- 将包含网站文件的整个文件夹拖入指定区域。
- Netlify 会自动上传并提供一个访问地址。
C. 使用 Netlify CLI 部署(适合开发者) 通过命令行工具可以更灵活地部署,并与本地开发流程集成。
- 安装 CLI:
npm install -g netlify-cli - 登录:
netlify login - 初始化并部署(在你的项目目录中):
netlify init # 按指引关联或创建新站点 netlify deploy --prod # 部署到生产环境
注册一个域名
域名是你网站的地址。你可以通过国内外众多域名注册商(如阿里云、腾讯云、Namecheap、GoDaddy 等)进行购买,也有很多免费域名提供商。
这里以 US.CI 域名为例,这是一个免费域名服务商。前往 DNSHE 注册一个账号,选择左侧的 Free Domain,进入管理面板,创建一个域名,格式为 YourDomain.us.ci
:::warning[不保证服务的稳定性]{open} 此服务只是我使用过,用于作为一个例子,可能存在安全问题,不建议用于托管大型和重要的网站,并且无法备案,对于大型网站请始终使用较大的域名服务商 :::
添加 DNS 到 Cloudflare
注册 Cloudflare,一般会让你添加域名,输入 YourDomain.us.ci 之类的域名。
选择计划,选择 Free。
选择“自动扫描 DNS 记录”,点击“激活”。
这时候会出现两个 DNS 服务器(形如 xxxxxx.ns.cloudflare.com),打开 DNSHE 管理,点击“DNS 服务器”,更新服务器地址。
回到 CF,点“继续激活”。
等待 DNS 扩散,这通常需要几分钟到几小时,最长可达 48 小时,你收到邮件就是成功了。
这里看一下你的服务器类型,有以下几种:
- A:你的服务器拥有公网 IP,且使用 IPv 4
- AAAA:你的服务器拥有公网 IP,且使用 IPv 6
- CNAME:你的服务器使用子域名
如果你使用云服务器,那么应该为 A 记录或 AAAA 记录,找到你的服务器的公网 IP,在 Cloudflare 添加一个 DNS 记录,方式选择 A/AAAA,值输入你的公网 IP。
如果你使用托管服务,那么应该是 CNAME 记录(类似 xxx.netlify.app 的子域名),按上面的方法添加即可
更改好后点击保存,再次等待 DNS 扩散,等到你能够访问网站是就可以了。
添加 SEO 优化
SEO 能帮助你的网站在搜索引擎中获得更好的自然排名,从而吸引更多访客。优化工作主要围绕“让搜索引擎更好地理解和推荐你的网站”展开。
1. 核心:关键词研究与页面优化
这是 SEO 的基础,目的是确保你的内容与用户搜索意图匹配。
- 关键词研究:使用工具(如 Google Keyword Planner, Ahrefs, SEMrush 的免费版本)或直接在搜索引擎中搜索你的主题,观察“相关搜索”和“大家还在问”,找出用户可能搜索的、与你的网站主题相关的词语。
- 页面标题优化:
- 位置:HTML
<head>部分。 - 要求:每个页面应有唯一且包含核心关键词的标题,长度建议在 50-60 字符以内。
<title>建站教程:从零开始搭建个人网站(2023 最新版) | 我的博客</title>
- 位置:HTML
- 页面描述优化:
- 位置:HTML
<head>部分。 - 要求:用一段简洁的话概括页面内容,吸引用户点击。长度建议在 150-160 字符以内。
<meta name="description" content="这是一份面向新手的详细建站教程,涵盖域名注册、服务器配置、静态和动态网站部署到 SEO 优化全流程,附具体操作命令。">
- 位置:HTML
- 标题标签使用:在文章内容中正确使用
<h1>到<h6>标签来组织内容结构。通常一个页面只有一个<h1>(通常是文章标题),<h2>作为主要章节,<h3>作为子章节。 - 内容质量与关键词密度:撰写对用户有价值的原创内容,自然地融入关键词,避免堆砌。
2. 技术 SEO:让搜索引擎更顺畅地抓取
这部分确保搜索引擎机器人能顺利访问、理解和索引你的网站。
- 创建并提交站点地图:
- 是什么:一个
sitemap.xml文件,列出了你网站所有重要页面的网址。 - 如何生成:
- 在线生成器:对于小型静态网站,可使用 XML-Sitemaps.com 等在线工具生成,然后下载
sitemap.xml文件放到网站根目录。 - 插件/模块:如果使用 WordPress(插件如 Yoast SEO)、Hexo(
hexo-generator-sitemap)、VuePress(内置支持)等,通常有自动生成站点地图的功能。 - 命令行工具:对于本地项目,可以使用
npm包如sitemap-generator。# 示例:使用一个简单的 Node.js 脚本生成(需先安装依赖) npm install sitemap-generator-cli -g sitemap-generator https://你的网站.com --output-dir ./static
- 在线生成器:对于小型静态网站,可使用 XML-Sitemaps.com 等在线工具生成,然后下载
- 是什么:一个
- 创建并提交 robots.txt 文件:
- 是什么:放在网站根目录的文本文件,用于指导搜索引擎机器人哪些页面可以或不可以抓取。
- 基本示例:
User-agent: * Allow: / Disallow: /private/ Sitemap: https://你的网站.com/sitemap.xml
- 提交到搜索引擎:
- Google:注册 Google Search Console,添加你的网站,然后提交
sitemap.xml文件。 - Bing:注册 Bing Webmaster Tools,步骤类似。
- Google:注册 Google Search Console,添加你的网站,然后提交
3. 站内优化与用户体验
这部分直接影响用户在网站上的行为和停留时间,搜索引擎非常看重。
- 图片优化:
- 压缩大小:使用工具(如 TinyPNG, Squoosh)压缩图片,减小文件体积。
- 添加 Alt 文本:为所有
<img>标签添加描述性的alt属性,这有助于搜索引擎理解图片内容,也是无障碍访问的要求。<img src="website-tutorial.jpg" alt="建站教程操作界面截图">
- 确保网站速度:
- 使用 Google 的 PageSpeed Insights 测试并获取优化建议。
- 对于静态网站托管服务(如 Netlify, Vercel),它们通常自带全球 CDN 和资源优化。
- 对于自建服务器(如 OCI),确保启用 Gzip 压缩、浏览器缓存,并考虑使用 CDN 服务(如 Cloudflare)。
- 实现移动端友好(响应式设计):
- 确保你的网站能自适应不同屏幕尺寸。现代前端框架和 CSS 框架(如 Bootstrap)通常已处理好这一点。
- 可以在 Google Search Console 的“移动设备易用性”报告中检查。
4. 站外优化:建立外链
这被视为其他网站对你网站的“投票”,高质量的推荐能显著提升排名,但需要长期积累。
- 创作高质量内容:这是吸引他人自发链接你的根本。
- 在相关社区分享:在知乎专栏、技术论坛(如 V 2 EX、Stack Overflow 相关问答)、Reddit 等平台分享你的教程或成果,并附上链接。
- 友情链接交换:与内容相关、质量相近的其他个人网站或博客交换链接。
5. 针对特定建站方式的 SEO 提示
- 对于 Netlify/Vercel 等托管服务:
- 在
_redirects文件中,可以设置301重定向来保持链接权重(如果页面 URL 变更)。 - 利用平台提供的
_headers文件或配置,轻松设置缓存控制、安全头等。
- 在
- 对于 Hexo/VuePress 等静态生成器:
- 安装并使用专门的 SEO 插件(如 Hexo 的
hexo-seo-automation),它们能自动生成meta标签、结构化数据等。 - 在主题配置文件中,通常有专门的字段用于设置全局的网站标题、描述和关键词。
- 安装并使用专门的 SEO 插件(如 Hexo 的
写在最后
恭喜你!如果你跟随本教程的步骤一路实践,那么你已经完成了一个网站从“零”到“一”的完整诞生过程:从构思、注册域名、选择托管方案,到编写和部署页面,最终进行基础的 SEO 设置。
建站不仅仅是技术的组合,更是一个不断学习和创造的旅程。你亲手搭建的这个小站,将成为你在互联网世界中的专属空间。无论是记录生活、分享技术、展示作品,还是尝试创业,它都是一个坚实的起点。
请记住,保持网站内容更新、积极与访客互动、持续学习并应用新的 Web 技术(例如探索 Web 性能优化、渐进式 Web 应用 PWA 等),你的网站会随着你的成长而愈加出色。
附注与致谢
重要说明:为提供一份相对完整的入门指引,本文在创作过程中参考、汇总并整理了来自洛谷社区及其他技术网站上的多篇优秀教程与分享。由于原始来源众多且格式不一,我们已尽力统一全文风格,并借助 AI 辅助进行了归纳与润色,旨在为初学者提供一条更清晰的学习路径。
我们衷心感谢所有原始内容的创作者与分享者。正是基于社区的知识共享,本文才得以形成。
尽管已尽力确保内容的准确性,但教程中涉及的平台界面、操作步骤或免费政策可能会随时变更。若您在阅读或实践过程中发现任何过时、存疑或错误之处,恳请通过评论或私信等方式提出指正,我们将非常感谢并乐于及时更新修正。
祝您建站顺利,探索愉快!