将hexo博客搭建到服务器上

前言

将hexo 博客搭建到github是一件十分简单得事情,但是在GitHub page中使用你得博客时难免会遇见速度慢、域名不宜与他人分享等等问题,所以当你准备把你网站搭建到服务时就可能遇见很多问题,那我就给大家分享我得在搭建时得心得。

服务器准备阶段

  国内的服务器有很多,阿里云、百度云、腾讯云、牛七云等等。这些服务器都是大厂的旗下的服务器,所以稳定性还是可以保证的,我选择的是阿里云的学生版一年114元。一核2G的内存价格还是很良心的,如果你想要更低的价格,那某宝应该有适合你的选择。一般国内的互联网公司使用的服务器操作系统主要是Centos。选择Centos作为操作系统即可。当你购买服务之后,阿里会给你一个内网和外网的地址。外网地址就是我们使用浏览器可以查询到的地址,也是我们后面会主要使用到的地址。当然IP地址是不容易记住的我们需要购买一下域名,阿里云很方面都是一站式的。然后就是网站的备案,如果你网站使用的是国内的服务器,是需要备案的,如果你不备案,你的网站时无法访问的。备案的时间时比较长的过程和程序也相对比较麻烦。在这里大家注意一点就是,如果你的备案地址写的是你的学校,那么你就要将你的地址精确到你寝室的楼栋和房间号。

第一步在服务器上安装nginx

什么是nginx

  Nginx (engine x) 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 服务器。。 本例演示 CentOS 7 下安装和配置 Nginx 的基本步骤。

步骤1:添加yum源

$ sudo rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

安装完yum源之后,可以查看一下。

repo id                                 repo name                                                              status
base/7/x86_64                           CentOS-7                                                               10,097
epel/x86_64                             Extra Packages for Enterprise Linux 7 - x86_64                         13,510
extras/7/x86_64                         CentOS-7                                                                  307
nginx/x86_64                            nginx repo                                                                170
updates/7/x86_64                        CentOS-7                                                                1,010
repolist: 25,094

可以发现nginx repo已经安装到本机了

步骤2:安装

yum 安装 Nginx,非常简单,一条命令。

$ sudo yum install nginx

步骤 3: 配置 Nginx 服务

设置开机启动

$ sudo systemctl enable nginx

启动服务

$ sudo systemctl start nginx

停止服务

$ sudo systemctl restart nginx

重新加载,因为一般重新配置之后,不希望重启服务,这时可以使用重新加载。

$ sudo systemctl reload nginx

到这里我们输入我们服务器外网的网址就可以看到nginx welcome的欢迎界面。此时就说明你的nginx已经安装完成了。

在服务器上安装git


  当我们把nginx安装到我们的服务器之后,下一步就是安装git。如果之前你已经搭建过hexo博客并且已经将博客搭建在GitHub上时后面的步骤你将会稍微比较熟悉。
</p>

安装git

git --version // 如无,则安装
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
yum install -y git

创建用户并配置其仓库

useradd git
passwd git // 设置密码
su git // 这步很重要,不切换用户后面会很麻烦
cd /home/git/
mkdir -p projects/blog // 项目存在的真实目录
mkdir repos && cd repos
git init --bare blog.git // 创建一个裸露的仓库
cd blog.git/hooks
vi post-receive // 创建 hook 钩子函数,输入了内容如下
#!/bin/sh
git --work-tree=/home/git/projects/blog --git-dir=/home/git/repos/blog.git checkout -f

添加完毕后修改权限

chmod +x post-receive
exit // 退出到 root 登录
chown -R git:git /home/git/repos/blog.git // 添加权限

测试git仓库是否可用,另找空白文件夹

git clone git@server_ip:/home/git/repos/blog.git

如果能把空仓库拉下来,就说明 git 仓库搭建成功了

Git配置仓库

  这一部分主要目的是让我们个人的电脑可以通过ssh方式连接到云服务器,然后我们就可以通过命令行方式将我们的博客Po到服务器上。操作如下: 安装git: yum install git 配置git用户 adduser git 修改用户权限:

chmod 740 /etc/sudoers
vi /etc/sudoers
找到这个位置添加下面这句话 git ALL=(ALL) ALL

保存退出后 将sudoers文件权限改回原样

chmod 400 /etc/sudoers

切换到git用户,然后在~目录下创建.ssh文件夹

        su git
        cd ~
        mkdir .ssh
        cd .ssh

生成公钥密钥文件(重点)

ssh-keygen

此时在目录下就会有两个文件,分别是

id_rsa 和 id_rsa.pub

其中id_rsa.pub就是公钥文件 我们复制一份

cp id_rsa.pub authorized_keys

这样目录下就会有一个authorized_keys文件,它和id_rsa.pub一模一样。
最后我们修改它的权限

chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

  但是大家一定要注意在远程连接服务其之前,我们一定要先对我能的服务器进行设置。
在root用户下修改 /etc/ssh/sshd_config 文件中的PasswordAuthentication no改为PasswordAuthentication yes 并保存。

输入如下命令sudo service sshd restart重启SSH服务,就可以重新使用账号密码连接服务器了。

  然后我们在自己的电脑上自己的电脑上自己的电脑上(重要的事说三遍),打开cmd,使用ssh方式连接我们的云服务器。

最后当你远程连接上你的服务器时,就会出现

最后

  我们需要更改hexo博客的根目录下的_config.yml文件将最后一行的的repo:后面改成

git@这里写服务器外网IP:/home/git/repos/blog.git

之后大家就可以来尝试用hexo clean & hexo g & hexo d 来部署大家的博客了。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!