点击上方“码农沉思录”,选择“设为星标”
优质文章,及时送达
搭建一个博客需要以下几个步骤
申请域名
申请VPS,安装好Hexo需要的一些软件
本地搭建配置Hexo
服务器环境搭建
1.申请域名
可以在各大域名商上去申请域名,我是在godaddy上申请,这里需要注意的事,域名后期续费是越来越贵的,
所以最好一次性买个几年, 这样一来省钱,二来也避免续费的烦恼,购买域名后,需要注意,
由于我的 VPS 选择了 Vultr,此域名的域名解析服务器需要改成 Vultr 的,怎么修改呢
1.点击我的产品中的 DNS ,如下图
2.填上 Vultr 的域名服务器
到这里我们的域名申请工作就结束了
2.申请VPS
接下来就要申请 vps 了,这里我选择了口碑比较好的vultr, 注册后点击这里即可配置 server ,前面两步我选择了东京的「CentOS 7 x64」,第三步 Server Size 我选择了第三个普通版
这里提前预警下,由于之后我们要安装lnmp所以配置最好至少选第三个开始的配置,然我一开始选了第二个,lnmp装的过程中一直有问题,换成第三个就好了,如果你的 Mysql 至少要安装 5.7 以上,要出点血选择第四个配置了(因为 5.7 比较吃内存),第四,五步可以不选,第六步最好附上你的SSH Keys这样使用 SSH 登录你的 VPS 的时候就能免登录了,怎么生成SSH Keys呢,可以点这里查看
最后一步为你的 Server 起个名字就行啦(建议用域名,如下)
Server 的配置我们选好了之后,我们还需要绑定我们的域名与 ip, 这样才能让域名解析器解析正确
点击这里即可拿到 Server 的 ip
拿到域名之后点击 DNS 中的 「Add Domain」即可绑定域名和 ip
在这里我们的 Server 申请工作就结束了,但申请了之后我们还要再给这个 Server 安装支撑 Hexo 运行的软件,需要安装哪些软件呢,
我们首先需要知道 Hexo 的运行原理怎么知道php服务器搭建好了没有,如下图:
整体原理如下
本地计算机将 Sources 下的 Markdown 文件转为 Html 之后,执行「Hexo Deploy」命令后,会把本地生成的静态文件 push 到 Server 上的 git 仓库
「git-hook」会将自动将以上步骤生成的静态文件 copy 到网站的根目录,然后经过 Nginx 代理服务即可把网站展现给用户,我们的个人博客也就建成了
知道了原理就不难得知
我们要在本地和服务器分别搭建我们的环境
3.本地环境搭建
1.安装 Hexo:使用 cmd 命令行,输入下列命令
$ npm install -g hexo-cli
2.指定一个文件夹存放你的Blog文件(也就是根目录)
$ hexo init # 替换成你的文件夹地址,在这个地址里生成Hexo初始化文件
$ cd# 进入这个文件夹
$ npm install # 在文件夹内自动安装Hexo所依赖的各种模块
4.服务器环境搭建
由以上分析可知我们至少要装 git, nginx, 主要步骤如下
1.安装git
输入以下命令即可安装
yum install git
2.至于 nginx 的安装我推荐大家用lnmp, Linux、Nginx、MySql、Php 可以说是建站的标配了,lnmp只要执行一行命令就能把这些软件都安装好,能省下我们不少精力,不过这四个软件的安装可能需要半小时之久怎么知道php服务器搭建好了没有,大家要做好心理准备^_^, 安装成功后我们访问域名,即会出现以下提示,说明我们安装成功了
3.安装好之后我们首先需要建立一个 git 仓库来存放我们本地 blog 生成的静态目录,为了安全我们通常不以 root 身份来操作,所以这里我们选择新建一个用户,专门运行 git 服务
adduser git
以下步骤赋予 git 用户 sudo 权限
chmod 740 /etc/sudoers
vim /etc/sudoers
找到以下内容:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
在下面添加一行:
git ALL=(ALL) ALL
保存退出后改回权限:
chmod 400 /etc/sudoers
画外音:可以想一下为啥要给用户 git 权限,如果不给的话可能会出现什么问题
4.切换用户,配置SSH
由于本机 Hexo 部署好文件后需要 push 到远程,为了避免每次 push 时都要输入密码,我们需要进行免密操作,步骤如下
使用su git切换到 git 用户,再执行下列操作
# 切换到git用户目录
cd /home/git
# 创建.ssh文件夹
mkdir ~/.ssh
# 创建authorized_keys文件并编辑
vim ~/.ssh/authorized_keys
# 如果你还没有生成公钥,那么首先在本地电脑中执行 cat ~/.ssh/id_rsa.pub | pbcopy生成公钥
# 再将公钥复制粘贴到authorized_keys
# 保存关闭authorized_keys后,修改相应权限
chmod 600 ~/.ssh/authorzied_keys
chmod 700 ~/.ssh
然后在本机执行以下命令查看配置是否成功
ssh git@服务器ip地址
5.接下来我们新建一个 git 仓库来存放本地 Hexo 生成的静态文件
# 回到git目录
cd /home/git
# 使用git用户创建git裸仓库,以blog.git为例
git init --bare blog.git
画外音:为啥不用 git init 而用 git init bare, 请这里查看两者的区别
建好仓库之后我们设置一下 「git hook」
vim ~/blog.git/hooks/post-receive
输入以下内容
#!/bin/bash
GIT_REPO=/home/git/blog.git
TMP_GIT_CLONE=/tmp/blog
#这里我用 /var/www/blog 目录作为网站的根目录
PUBLIC_WWW=/var/www/blog
rm -rf ${TMP_GIT_CLONE}
git clone $GIT_REPO $TMP_GIT_CLONE
rm -rf ${PUBLIC_WWW}/*
cp -rf ${TMP_GIT_CLONE}/* ${PUBLIC_WWW}
保存退出后,执行:chmod +x post-receive赋予这个文件可执行权限。
检查一下 blog.git、.ssh、blog目录的用户权限组是否都为git:git
# /var/www/是怎么回事?注意我在 git hook 里提到用 /var/www/blog 作为网站的根目录
ll -a /var/www/
ll -a /home/git/
ll -a ~/.ssh
如果哪个不是,执行以下命令再看一下
sudo chown git:git -R /var/www/blog
sudo chown git:git -R /home/git/blog.git
6.配置 Nginx
由于我们的 blog 用到了 nginx 静态文件处理服务,需要修改 nginx 的配置文件(nginx.conf),进入 nginx 的配置目录
/usr/local/nginx/conf/
先备份一下 nginx.conf
cp nginx.conf nginx.conf.bak
然后打开 nginx.conf 文件,修改 root 为我们在上一步新建的 blog 的目录
server
{
listen 80 default_server;
#listen [::]:80 default_server ipv6only=on;
server_name _;
index index.html index.htm index.php;
#修改这里为我们的 blog 目录
root /var/www/blog;
...
}
保存修改后使用nginx -t查看配置是否有错误,若无误,则执行lnmp restart即可让配置生效
7.将本机 Hexo 工程的 git 地址指向 服务器 git 地址
# 在本地环境搭建时我的博客放在~/hexos文件夹里
cd ~/hexos
vim _config.yml
找到 deploy 选项,修改 repo 为你的远程服务器地址
deploy:
type: git
repo: git@服务器ip:/home/git/blog.git
branch: master
完成了以上本地和服务器配置之后,使用 Hexo 创建写好了文章,执行 「hexo deploy」命令,稍等片刻,访问我们申请的域名即可显示我们的博客文章,大功告成!
点个在看吧,证明你还爱我
版权声明
本文仅代表作者观点。
本文系作者授权发表,未经许可,不得转载。
发表评论