Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
Hexo官方文档
云服务器Centos7(可选腾讯云、阿里云、华为云等)
Windows PC(本地环境使用Windows)
本地安装PuTTY
本地安装git bush
此处以腾讯云为例
进入腾讯云官网,点击“登录“
使用微信扫码登录
购买适合自己的服务器,这里推荐腾讯云学生机,10元1月,25岁以下免学生认证,可以以优惠价格续费两次
购买时选择Centos7,这是本文使用的服务器操作系统
除了腾讯云,我也推荐大家使用阿里云和华为云,同样有学生优惠的云服务器。
先明确一下本文搭建的个人博客的运作流程:本地有个 hexo 程序,里面包含了 public 文件夹,sources 文件夹,hexo 将 sources 里的*.md
文件渲染为静态的 html 文件放到 public 下,然后我们用git推送到服务器的repository
,服务器用git hooks
把仓库里的文件同步到网站根目录,而 nginx 的作用就是反向代理。
使用本地的PuTTY进行链接
输入账户(root)和密码(购买服务器时设置的,也可以在腾讯云官网控制台修改),需要注意的是这里输密码的时候是看不到自己输入的,输入完成后回车即可。
yum install git
adduser git
chmod 740 /etc/sudoers
vim /etc/sudoers
找到以下内容
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
Linux文件操作中,按 " i " 可以修改内容,按 " : " 再输入 " wq " 保存并退出,输入 " q " 直接退出。Linux文件的其他操作在这里不详细叙述,需要的话可以查阅其他资料。
在它下面添加一行
git ALL=(ALL) ALL
保存并退出,将权限修改回来
chmod 400 /etc/sudoers
yum install nginx # 安装nginx
systemctl start nginx # 启动nginx
systemctl enable nginx.service # 设置为开机启动
此时用浏览器访问服务器公网ip就可以看到
修改nginx的配置文件
vim /etc/nginx/nginx.conf
找到server那块改为
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _; # 改为你的域名,还没有绑定域名的话填公网ip
root /home/blog; # 网站的根目录,此处仅为示例,也可根据喜好设置其他目录
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
保存退出
然后执行
mkdir /home/hexo # 此目录为网站的根目录
chown git:git -R /home/hexo
作为服务器上的网站根目录
安装hexo-cli(windows用git bash运行命令):
sudo npm install -g hexo-cli
初始化hexo,比如我要在/blog下搭建博客,这个目录可以自由选择替换""
cd ~
hexo init blog
之后继续安装hexo-deployer-git
和hexo-server
,一个用于git自动部署,一个用于本地简单的服务器。
cd blog
npm install hexo-deployer-git --save
npm install hero-server
执行
hexo g #或者hexo generate 生成hexo博客
hexo s #或者hexo server 将hexo博客部署在本地4000端口
这时就可以访问http://localhost:4000
看到已经部署到本地4000端口的博客了、
服务器和本地的环境已经配置完成,下一步要实现的就是自动化部署。这使得我们可以不用在服务器上执行操作,只要本地 git 推送上去,服务器就会通过git hooks
自动把内容同步到网站根目录。也就是说,我们在本地写好博客,只需在本地执行简单的命令,就可以将博客部署到服务器上,访问自己的网站,就可以看到自己精美的博客了。
为了以后每次发布时不用输入密码,我们需要创建证书登录,如果自己电脑里没有公钥(我们的公钥在这里:~/.ssh/id_rsa.pub
),则创建公钥:
在本地执行
ssh-keygen -t rsa -C "[email protected]" # 填写自己的邮箱
创建好公钥之后,找到并用记事本打开,将其中的内容复制
在服务器执行
su git # 切换到git用户
cd ~
mkdir .ssh
vim .ssh/authorized_keys
将复制的公钥粘贴进去然后保存退出,继续执行
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
在本地执行
ssh git@你的服务器ip
验证是否ssh配置成功
接着上一步(git用户~目录),在服务器上创建一个裸仓库
git init --bare blog.git
然后
vim ~/blog.git/hooks/post-receive
写入以下内容保存
#!/bin/sh
git --work-tree=/home/hexo --git-dir=/home/git/blog.git checkout -f
赋予权限
chmod +x /home/git/blog.git/hooks/post-receive
回到本地执行
用记事本打开hexo 根目录下的 _config.yml
文件,找到 deploy
。
deploy:
type: git
repo: git@SERVER:/home/git/blog.git # SERVER改为你的服务器的ip
branch: master # 分支
之后,打开cmd,cd到博客目录,就可以部署博客了
hexo clean #清除缓存
hexo g #生成博客
hexo d #部署
如果部署后用浏览器访问网站还是nginx欢迎页面,清除下浏览器缓存即可。