把自己的博客部署在服务器上

  1. 画69买了一年,第一次买服务器。。。应该不会踩坑吧,但愿!
  2. 傻逼服务器,我感觉是腾讯云装的Ubuntu有问题,yum命令死活用不了,换成centos就好了。。。(25年2/16补充,yum是centos的,ubuntu是sudo apt install那一套)
  3. 参考https://lneverl.github.io/posts/2092ec56.html
    b站也有视频讲解很赞

预备软件:1. Xshell(这个无所谓,在命令行隶属都行)

​ 2. WinSCP(这个最好下一下,可视化linux文件目录,也可以直接修改里面的文件,不用vim)


1. 开始安装nginx

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

1.1 安装gcc gcc-c++

1
2
yum install -y gcc gcc-c++

1.2 安装PCRE库

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

cd /usr/local/

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

tar -xvf pcre-8.45.tar.gz

cd pcre-8.45

./configure

make && make install

pcre-config --version

1.3 安装nginx

1
2
3
4
5
6
7
8
9
10
11
12
    
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
1
/usr/local/nginx/sbin/nginx   //启动ngnix


这步完成就可以用公网ip访问了

1.4 保障80端口开放


2. 安装Git以及Node.js

2.1 安装Node.js

1
2
3
yum install -y nodejs
yum install npm

2.2 安装git及新建git用户

1
2
3
4
5
6
7
8

yum install git

adduser git

chmod 740 /etc/sudoers

vi /etc/sudoers //vim 里面添加git ALL=(ALL) ALL,i插入,esc退出插入,:wq保存 //退出,也可以用winscp直接可视化操作

编辑完,更改文件权限

‘’’

chmod 400 /etc/sudoers

sudo passwd git

‘’’

2.3 切换git用户并且建立密钥

1
2
3
4
5
6
7
8
9
su git

cd ~

mkdir .ssh

cd .ssh

vi authorized_keys //此处将ssh pub公钥粘贴进这个文本
1
/usr/local/nginx/sbin/nginx   //启动ngnix

我nm,为什么这里是usr,网上那么多是user,查了我半天。。。还有nginx按别按错目录了,我现在里面有两个nginx,根本不敢删hh

2.4 创建git仓库

1
2
3
4
5
6
cd ~

git init --bare blog.git

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

输入的是

1
git --work-tree=/home/www/website --git-dir=/home/git/blog.git checkout -f

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

2.5 新建/home/www/website

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


su root

输入密码

cd /home

mkdir www

cd www

mkdir website


chmod 777 /home/www/website

chmod 777 /home/www

2.6 cmd中输入

1
2
3

ssh -v git@服务器的公网ip

本地博客config.yml
修改 repo: git@这里改为服务器公网IP:/home/git/blog.git


2.7 修改服务器上

把/usr/local/nginx/conf/中nginx.conf中的root改为,共两个

1
/home/www/website

3. 此时已经基本完成了,但还要重启niginx


2. 写入重启脚本

用脚本方便些?
在/etc/init.d/(注意此处init.d是个文件夹)路径下添加脚本文件,名称为nginx,内容如下(不会命令行可以在直接用winscp操作)

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
34

#!/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


最后记一下3条指令来控制服务器

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

如果以前部署在别的服务器上,记得部署的时候把本地blog文件夹里的部署文件删了.deploy那个文件夹