太阳有话要说:通过自己整整两天的摸索,看了二十几篇教程,尽力四五次奔溃,终于将博客网站部署到云服务器了,成功的那一刻我兴奋的有些恍惚。为此,我专门写了这篇详细无比的教程,希望大家少花点时间,通过我的教程,两小时就可以完成整个操作。

关于购买服务器这里我就不讲解了,因为我一开始买的连接好像失效了,所以大家自行购买,我当时买的价格是学习优惠价一个月9.5元,大家可以参考一下。

献上视频连接

教你如何将hexo博客部署到阿里云服务器

1、安装nginx

安装ngin需要相关的依赖库,我们先进行库的安装。

1.1、安装gcc gcc-c++

1
yum install -y gcc gcc-c++

1.2、安装PCRE库

1
2
3
4
5
6
7
8
9
10
11
12
13
cd /usr/local/

wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz

tar -xvf pcre-8.37.tar.gz

cd pcre-8.37

./configure

make && make install

pcre-config --version

1.3、安装 openssl 、zlib 、 gcc 依赖

1
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel

1.4、安装nginx

安装nginx一定要在local文件夹下
1
2
3
4
5
6
7
8
9
10
11
cd /usr/local/

wget http://nginx.org/download/nginx-1.17.9.tar.gz

tar -xvf nginx-1.17.9.tar.gz

cd nginx-1.17.9

./configure

make && make install

修改配置文件server 80 端口下的 root项 为/home/www/website

1
2
cd nginx/conf
vim nginx.conf

找到server80 端口下的root项,为自己的博客的地址,可以参考我的代码,我将博客放在/home/www/website路径下,大家可以换个路径。
代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
server {
listen 80;
server_name localhost;

#charset koi8-r;

#access_log logs/host.access.log main;

location / {
root /home/www/website;
index index.html index.htm;
}

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /home/www/website;
}

2、安装Git以及Node.js

2.1、安装Node.js

1
2
3
curl -sL https://rpm.nodesource.com/setup_10.x | bash -

yum install -y nodejs

查看是否成功

1
2
3
node -v

npm -v

2.2、安装Git及配置仓库

安装git及新建git用户

1
2
3
4
5
6
7
yum install git

adduser git

chmod 740 /etc/sudoers

vi /etc/sudoers

在如下位置添加
git ALL=(ALL) ALL
vi指令执行之后按i进入输入模式
编辑完成之后按一下esc
然后输入:wq即可退出

执行以下指令更改文件夹权限

1
2
3
chmod 400 /etc/sudoers

sudo passwd git

切换git用户并且建立密钥

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
su git

cd ~

mkdir .ssh

cd .ssh

ssh-keygen

vi authorized_keys

chmod 600 ~/.ssh/authorized_keys

chmod 700 ~/.ssh

创建git仓库

1
2
3
4
5
6
7
8
9
10
11
12
cd ~

git init --bare blog.git

vi ~/blog.git/hooks/post-receive


输入
git --work-tree=/home/www/website --git-dir=/home/git/blog.git checkout -f
保存退出

chmod +x ~/blog.git/hooks/post-receive

*以上指令都需要在su git 之后执行 如果中途断开重新连接过,需要重新执行 su git指令 进入git账户。

注:如果server里的boot路径填的不是/home/www/website,这里需要将/home/www/website,修改为自己的博客路径,并且下面新建文件夹也要按照自己的路径去新建

新建/home/www/website文件夹
在root用户下执行,所限先su root切换为root账户

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
su root

输入密码

cd /home

mkdir www

cd www

mkdir website

修改文件夹权限 这步很重要 视频中没有提及

chmod 777 /home/www/website

chmod 777 /home/www

在本地电脑cmd窗口输入
ssh -v git@服务器的公网ip

返回如下则成功。

修改本地配置文件,大家可以参考我的:

1
2
3
4
5
6
7
deploy: 
- type: git
repo:
github: git@github.com:CCIT18081430131/CCIT18081430131.github.io.git
www: git@120.26.173.241:/home/git/blog.git
branch: master
- type: baidu_url_submitter

repo: git@这里改为服务器公网IP:/home/git/blog.git

写入启动脚本

在/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/local/nginx/sbin/nginx
conf=/usr/local/nginx/conf/nginx.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

然后执行

1
chmod +x nginx

控制指令

启动service nginx start
停止service nginx stop
重启service nginx reload

参考文章