此教程默认你会一些基础的linux系统命令,譬如cd,mkdir, chmod等,以及基础的windows系统常用的cmd命令,如果不清楚这些命令,建议你请不要继续看下去~

前期准备

  1. 拥有一台阿里云的服务器和已经购买好域名且操作系统镜像为centos7以上

    这里默认你已经买好域名且已经实名认证

  2. 本次教程所需要的软件
    a. FileZilla (用于上传和下载服务器文件)

    https://filezilla-project.org/download.php?type=client

    b. Putty (SSH/Telent客户端,用于连接服务器的终端)

    https://github.com/larryli/PuTTY/releases

    c. git (用于发布Hexo博客到服务器端的软件)

    https://git-scm.com/downloads

一切准备就绪后就开始正式的搭建之旅吧~

搭建步骤

在本地计算机安装Hexo环境

博主本地环境:Windows 10 (64位)

  1. 安装Node.js
    自行去Node.js官网下载Windows(X64)长期支持版(LTS)按提示逐步安装。安装完成后打开windows自带的cmd窗口输入以下命令查看版本号验证是否安装成功。

    1
    2
    C:\Users\用户名> node -v
    C:\Users\用户名> npm -v
  2. 在自己电脑上的D盘或E盘创建名为”myblog”的文件夹

  3. 选中文件夹鼠标右击选择”Git Bash Here”

    右击选择

  4. 在弹出的CMD框中输入

    1
    npm install hexo-cli -g

    此命令是用来安装hexo在创建的文件夹中

  5. Hexo安装完成后,在myblog文件夹下新建myblogs项目,并且对其进行初始化的操作

    1
    2
    3
    hexo init myblogs
    cd myblogs
    npm install

    此时,会在myblog的文件夹下新建一个名为myblogs的文件夹,并且还会在此文件夹下生成相应的项目文件,如图所示
    生成的文件

  6. 返回到git的窗口中,输入以下命令即可在本地启动hexo服务

    1
    hexo server

    等待出现”INFO Hexo is running at http://localhost:4000 . Press Ctrl+C to stop.”后
    打开浏览器,在浏览器地址输入

    1
    localhost:4000

    即可访问基于Hexo的个人博客主页了~

目前为止本地计算机的操作暂告一段落

服务器端准备工作

此时默认你会使用putty连接服务器且能够在阿里云服务器的控制台添加安全组和更改root密码

在服务器上安装nginx

因为我们需要用nginx作为我们web服务器,所以我们要先安装nginx服务。具体操作如下:
使用root用户远程登录阿里云服务器后,使用yum命令进行安装,首先需安装nginx需要的相关的依赖库~

  1. 安装gcc gcc-c++

    1
    yum install -y gcc gcc-c++
  2. 安装PCRE库

    1
    yum install -y pcre pcre-devel
  3. 安装openssl、zlib、gcc依赖

    1
    2
    yum install -y zlib zlib-devel
    yum install -y openssl openssl-devel
  4. 下载nginx安装包

    1
    wget -c https://nginx.org/download/nginx-1.10.1.tar.gz
  5. 将安装包解压到/usr/local/目录下

    1
    tar -xvf nginx-1.10.1.tar.gz -C /usr/local
  6. 进入/usr/local目录,确认nginx是否解压到该目录下,进入nginx-1.10.1的目录中,会发现有一个./configure的可执行文件,执行该配置文件

    1
    2
    3
    4
    cd /usr/local
    ls
    cd nginx-1.10.1/
    ./configure
  7. 编译并安装nginx

    1
    make && make install
  8. 查找nginx安装目录且进入安装目录

    1
    2
    3
    whereis nginx
    cd /usr/local/nginx
    ls
  9. 防火墙开启80端口访问(此时你应在阿里云控制台中创建安全组开启所有IP进方向80端口可访问)默认linux不会开启80端口

    1
    2
    3
    4
    5
    systemctl status firewalld  //检查防火墙是否开启,若显示failed则为开启
    systemctl start firewalld //开启为start关闭则改为stop
    firewall-cmd --zone=public --add-port=80/tcp --permanent
    firewall-cmd --reload
    firewall-cmd --list-ports

    防火墙其他常用命令

    firewall-cmd –state ##查看防火墙状态,是否是running
    firewall-cmd –reload ##重新载入配置,比如添加规则之后,需要执行此命令
    firewall-cmd –get-zones ##列出支持的zone
    firewall-cmd –get-services ##列出支持的服务,在列表中的服务是放行的
    firewall-cmd –query-service ftp ##查看ftp服务是否支持,返回yes或者no
    firewall-cmd –add-service=ftp ##临时开放ftp服务
    firewall-cmd –add-service=ftp –permanent ##永久开放ftp服务
    firewall-cmd –remove-service=ftp –permanent ##永久移除ftp服务
    firewall-cmd –add-port=80/tcp –permanent ##永久添加80端口
    firewall-cmd –remove-port=80/tcp –permanent ##永久移除80端口
    firewall-cmd –zone=public –list-ports ##查看已开放的端口

服务器nginx配置

  • 首先在home路径中建立www然后进入www再创建website目录
    1
    2
    3
    4
    cd /home
    mkdir www
    cd www
    mkdir website
  • 进入nginx目录修改nginx.conf文件,将server 80 端口下的root项改为 /home/www/website
    1
    2
    cd /usr/local/nginx/conf
    vi nginx.conf
    编辑nginx.conf文件

    安装node.js

    1
    2
    3
    cd ~
    curl -sL https://rpm.nodesource.com/setup_10.x | bash -
    yum install -y nodejs

    检查是否安装成功

    1
    2
    node -v
    npm -v
    安装检查

    安装Git

    全程依旧使用yum命令安装Git,安装期间提示y/s一律选择yes

  1. 安装Git及新建Git用户
    1
    2
    3
    4
    5
    yum install git
    git --version
    adduser git
    chmod 740 /etc/sudoers
    vi etc/sudoers
  2. 在打开的sudoers中如图片所在位置添加以下内容
    1
    git ALL=(ALL)ALL
    在sudoers中添加语句
  3. 执行以下指令更改文件夹权限,切换git用户并建立密钥

    这里的步骤至关重要!!!

    1
    2
    3
    4
    5
    6
    7
    8
    9
    chmod 400 /etc/sudoers
    sudo passwd git
    su git
    cd ~
    mkdir .ssh
    cd .ssh
    vi authorized_keys
    chmod 600 ~/.ssh/authorized_keys
    chmod 700 ~/.ssh
    建立密钥
    加权限
  4. 创建git仓库且添加钩子文件
    1
    2
    3
    cd ~
    git init --bare blog.git
    vi ~/blog.git/hooks/post-receive
  5. 在post-receive中输入
    1
    git --work-tree=/home/www/website --git-dir=/home/git/blog.git checkout -f
  6. 保存退出给文件加权限
    1
    chmod +x ~/blog.git/hooks/post-receive

    注意以上指令都需在git用户下执行,若中途断开需重新执行su git指令进入git账户!!

  7. 在之前root用户中新建的/home/www/website文件夹中添加文件权限
    1
    2
    3
    su root
    chmod 777 /home/www/website
    chmod 777 /home/www
  8. 切换到本地电脑,在本地git窗口中输入
    1
    ssh -o StrictHostKeyChecking=no git@你的服务器地址

    返回结果如下则成功!

    返回结果

    本地配置文件修改

  • 修改hexo目录下的_config.yml文件
    1
    repo: git@服务器地址:/home/git/blog.git
    修改配置文件

编写nginx启动脚本

在/etc/init.d/路径下添加以下脚本文件,名称改为nginx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/bin/bash
#Startup script for the nginx Web Server
#chkconfig: 2345 85 15
nginx=/usr/localinx/sbininx
conf=/usr/localinx/confinx.conf
case $1 in
start)
echo -n "Starting Nginx"
$nginx -c $conf
echo " done."
;;
stop)
echo -n "Stopping Nginx"
killall -9 nginx
echo " done."
;;
test)
$nginx -t -c $conf
echo "Success."
;;
reload)
echo -n "Reloading Nginx"
ps auxww | grep nginx | grep master | awk '{print $2}' | xargs kill -HUP
echo " done."
;;
restart)
$nginx -s reload
echo "reload done."
;;
*)
echo "Usage: $0 {start|restart|reload|stop|test|show}"
;;
esac

为nginx启动脚本添加权限

1
chmod +x nginx

脚本控制命令

1
2
3
service nginx start  //启动
service nginx stop //停止
service nginx reload //重启

命令执行效果

hexo常用命令

1
2
3
hexo s
hexo clean && hexo deploy
git pull

至此搭建完成,可以开始编写自己的博客内容了~