1. 前言
嗨,大家好!作为一名有追求的程序员,拥有一个自己的个人博客,记录学习、分享经验,那简直是必备的!
目前主流的博客方案有两种:
- 动态博客平台:像 WordPress,功能强大,有网络就能随时随地写文章。
- 静态博客生成器:像 Hexo,它在你的电脑上生成静态网页,然后你再把这些网页上传到服务器。发文章稍微麻烦一点,但访问速度飞快,也更安全。
我之前用的是 Hexo + GitHub Pages 的方案,优点是完全免费,搭建也简单。但缺点也明显,因为 GitHub 服务器在国外,国内访问速度有时候真的让人抓狂。
正好我之前学生时代买的阿里云轻量服务器在吃灰,本着不浪费的原则,我决定把我的 Hexo 博客搬到阿里云上,给它来个国内访问加速!
网上相关的教程很多,但很多都是你抄我我抄你,细节缺失,我跟着做了好几次都没成功。所以,这篇教程是我综合了许多文章,加上自己亲身实践踩坑后总结出来的。为了照顾像我一样的小白,我会配上详细的步骤和代码解析,保证是保姆级的体验,手把手带你完成部署。
2. 环境介绍
在开始之前,我们先统一一下“装备”,方便你对照检查:
- 本地电脑:Windows 10 (64位)
- 服务器:阿里云轻量应用服务器
- 服务器系统:CentOS 7.3
3. 本地环境准备
这部分是基础工作,如果你已经安装过 Git 和 Node.js,可以快速跳过。
3.1 安装 Node.js
Hexo 是基于 Node.js 开发的,所以我们必须先安装它。
- 访问 Node.js 官网,推荐下载左侧的 **LTS (长期支持版)**,因为它最稳定。
- 下载完成后,双击安装包,一路
Next即可。你可以自己选个安装路径,其他保持默认就好。
3.2 安装 Git
我们需要用 Git 来管理代码和部署博客。
- 访问 Git 官网,下载对应你系统的安装包。
- 安装过程同样是一路
Next。Git 的默认配置会自动帮你把环境变量都设置好,非常省心。 - 安装完成后,在桌面或任意文件夹内点击鼠标右键,如果能看到
Git GUI Here和Git Bash Here这两个选项,就说明安装成功了!
4. 初始化你的 Hexo 博客
环境OK了,现在正式开始搭建博客!
4.1 全局安装 Hexo
在桌面空白处右键,点击 Git Bash Here 打开一个命令行窗口,然后输入以下命令:
npm install -g hexo-cli
小提示:
-
$是命令行的提示符,你不需要输入。 - 这个过程需要从国外服务器下载文件,可能会有点慢,耐心等待几分钟。
- 如果看到一些
WARN(警告)信息,别担心,不影响使用。
4.2 初始化项目
在你喜欢的位置新建一个文件夹来存放你的博客项目,比如
E:\MyBlog。进入这个文件夹,同样右键打开
Git Bash Here,输入初始化命令:hexo init等待命令执行完成,Hexo 就会帮你创建好一个博客项目所需的所有文件。
现在,让我们在本地把它跑起来看看效果!继续输入以下命令:
hexo s或者使用更详细的调试模式:
hexo s --debug打开浏览器,访问
http://localhost:4000,如果能看到一个标题为 “Hexo” 的网页,恭喜你,本地博客已经成功跑起来了!
4.3 更换一个酷炫的主题 (NexT)
Hexo 默认的主题有点朴素,我们可以换一个更流行、更漂亮的主题。这里我们以广受好评的 NexT 主题为例。
首先,在你的博客项目文件夹(比如
E:\MyBlog)里,找到themes文件夹,在这里打开Git Bash Here。输入以下命令,把 NexT 主题下载到
themes文件夹中:git clone https://github.com/next-theme/hexo-theme-next执行完毕后,
themes文件夹下就会多出一个next文件夹。接下来,打开你博客项目的根目录(
E:\MyBlog),找到一个名为_config.yml的文件,这是站点的配置文件。用代码编辑器打开它。在文件中找到
theme这个配置项,把它原来的值landscape修改为next:# theme: landscape theme: next回到博客根目录的 Git Bash 窗口,按
Ctrl+C停止之前的服务,然后重新执行hexo s。刷新
http://localhost:4000,你就能看到焕然一新的 NexT 主题界面啦!
5. 配置 SSH 免密登录
为了让你的电脑能和阿里云服务器“顺畅沟通”,我们需要配置 SSH 密钥。这样,你每次部署博客时就不用一遍遍输入服务器密码了。
设置 Git 用户信息 (如果第一次用 Git,需要设置):
git config --global user.name "你的名字" git config --global user.email "你的邮箱"生成 SSH 密钥:
ssh-keygen -t rsa -C "你刚刚设置的邮箱"执行后,系统会问你文件保存位置和密码,直接连敲三次回车,使用默认设置即可。
复制公钥:
密钥生成后会产生两个文件:id_rsa(私钥,自己保管好)和id_rsa.pub(公钥,需要放到服务器上)。
找到这个公钥文件,路径一般在C:\Users\你的用户名\.ssh\id_rsa.pub。用记事本或者其他文本编辑器打开它,把里面的所有内容完整地复制下来。
6. 服务器端配置
重头戏来了!现在登录你的阿里云服务器,开始进行一系列配置。
6.1 配置 Git 环境
远程连接服务器:登录阿里云后台,找到你的轻量服务器,点击右上角的“远程连接”。
切换到 root 用户:为了拥有最高权限,方便操作,我们先切换到
root。sudo su root安装 Git:
yum install git -y-y参数表示中途遇到的所有询问都自动回答 “yes”。创建 git 用户:我们专门创建一个
git用户来处理博客的部署任务,这样更安全。adduser git设置 git 用户密码:
passwd git根据提示,输入两次密码。注意:Linux 输入密码时屏幕上不会有任何显示,你只管输入,输完按回车就行。
配置 SSH:
切换到刚创建的
git用户:su git进入
git用户的家目录并创建.ssh文件夹:cd /home/git/然后mkdir .ssh创建
authorized_keys文件并把我们本地的公钥粘贴进去:vim .ssh/authorized_keys- 按
i键进入编辑模式。 - 把你电脑上
id_rsa.pub文件的内容粘贴进来。 - 按
Esc键退出编辑模式。 - 输入
:wq然后回车,保存并退出。
- 按
设置正确的权限,这一步非常重要!
chmod 700 /home/git/.ssh chmod 600 /home/git/.ssh/authorized_keys
测试连接:
回到你本地电脑的 Git Bash 窗口,输入以下命令(把SERVER_IP换成你服务器的公网 IP):ssh -v git@SERVER_IP第一次连接会提示一个安全警告,输入
yes回车。如果配置成功,它会直接连上服务器而不需要你输入密码。
6.2 创建 Git 仓库和网站目录
我们需要两个目录:一个用来接收本地推送过来的文件(Git 仓库),一个用来存放网站的最终静态文件。
在服务器上,切换回
root用户 (exit命令可以从git用户退回到root)。创建目录:
# 创建 Git 仓库目录 mkdir -p /var/repo # 创建网站根目录 mkdir -p /var/hexo初始化 Git 裸仓库:
cd /var/repo git init --bare hexo.git--bare参数表示这是一个“裸仓库”,它只保存版本历史,不包含实际文件。**配置自动部署 (Git Hooks)**:
这是实现自动化部署的关键。我们利用 Git 的“钩子”(hooks)功能,让服务器在接收到你的push操作后,自动把网站文件部署到指定目录。创建一个
post-receive钩子文件:vim /var/repo/hexo.git/hooks/post-receive按
i进入编辑模式,粘贴以下内容:#!/bin/bash git --work-tree=/var/hexo --git-dir=/var/repo/hexo.git checkout -f解析:这行脚本的意思是,当
hexo.git仓库接收到推送后,立刻将最新的内容强制检出(部署)到/var/hexo这个工作目录下。保存并退出 (
Esc->:wq)。给这个钩子文件添加可执行权限:
chmod +x /var/repo/hexo.git/hooks/post-receive
修改目录权限:将这两个目录的所有权都交给
git用户。chown -R git:git /var/repo chown -R git:git /var/hexo
7. 配置 Nginx Web 服务器
现在万事俱备,只差一个 Web 服务器来让用户通过域名或 IP 访问我们的网站了。这里我们使用宝塔面板来简化 Nginx 的安装和配置。
安装宝塔面板:
在服务器的命令行中,执行宝塔官方的安装脚本(请以宝塔官网最新脚本为准):# CentOS 安装脚本 yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec安装完成后,终端会显示你的面板登录地址、用户名和密码,请务必记下来。
放行端口:
宝塔面板默认使用 8888 端口。你需要去阿里云控制台 -> 防火墙,添加一条规则,放行8888端口,否则你无法访问面板。安装 Nginx:
登录宝塔面板后,会弹出一个推荐安装套件的窗口,找到Nginx,选择编译安装或极速安装都可以,然后等待它完成。添加站点:
- 在宝塔面板左侧点击“网站” -> “添加站点”。
- 域名处填写你的域名,如果没有域名就填写你的服务器公网 IP。
- 其他保持默认,点击提交。
修改网站配置:
- 在网站列表中,找到你刚创建的站点,点击右侧的“设置”。
- 选择“网站目录”,将“根目录”修改为我们之前创建的
/var/hexo,然后保存。 - 选择“配置文件”,找到
root这一行,确保它的值也是/var/hexo;,然后保存。
8. 最后一击:部署!
回到你本地电脑的博客项目。
修改站点配置文件:
打开博客根目录下的_config.yml文件,找到deploy配置项,修改成如下格式:deploy: type: git repo: git@SERVER_IP:/var/repo/hexo.git branch: master注意:把
SERVER_IP换成你服务器的公网 IP 或你已经解析好的域名。安装 Git 部署插件:
在本地博客根目录的 Git Bash 窗口中,执行:npm install hexo-deployer-git --save开始部署!
依次执行以下命令:# 清理旧的生成文件 hexo clean # 生成新的静态文件 hexo generate # 部署到服务器 hexo deploy你可以合并后两条命令为
hexo g -d。
如果一切顺利,当你看到 INFO Deploy done: git 的提示时,就意味着你的博客已经成功部署到阿里云服务器上了!现在,通过你的 IP 或域名访问一下,看看你的杰作吧!
9. 总结
从零开始将 Hexo 部署到云服务器,确实涉及到本地和服务器两端的多次配置,对新手来说可能会有点复杂。但只要你跟着教程一步步来,仔细检查每一条命令和每一个路径,成功并不困难。
这个过程中,你不仅搭建好了自己的博客,还顺便学习了 Linux 的基本命令、Git 的使用、SSH 的配置以及 Nginx 的简单配置,收获满满!
如果在部署过程中遇到任何问题,不要放弃,多检查、多尝试,也可以在下方留言,我们一起解决!加油!