如何将博客部署到云服务器


经过我的一番研究,终于成功将博客部署的自己的服务器而不是依赖于github或者gite了,现在来一期域名购买到服务器配置到博客部署的教程。目前用的是阿里云。

视频教程

1.安装nginx

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

1.1安装gcc gcc-c++


yum install -y gcc gcc-c++

1.2安装PCRE库


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 依赖


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

1.4安装nginx

安装nginx一定要在local文件夹下


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;

2.安装Git以及Node.js

2.1安装Node.js


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

yum install -y nodejs

查看是否成功


node -v

npm -v

可以显示版本号即为成功

2.2安装Git及配置仓库

安装git及新建git用户


yum install git

adduser git

chmod 740 /etc/sudoers

vi /etc/sudoers

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

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


chmod 400 /etc/sudoers

sudo passwd git

切换git用户并且建立密钥


su git

cd ~

mkdir .ssh

cd .ssh

vi authorized_keys

chmod 600 ~/.ssh/authorized_keys

chmod 700 ~/.ssh

创建git仓库


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账户。

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


su root

输入密码

cd /home

mkdir www

cd www

mkdir website

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

chmod 777 /home/www/website

chmod 777 /home/www

在本地电脑输入


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

返回如下则成功。

修改本地配置文件

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

写入启动脚本

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


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

然后执行

chmod +x nginx

控制指令
启动service nginx start
停止service nginx stop
重启service nginx reload

后续有问题可以在视频下留言大家一起讨论

问题解决

部署时候一直输入密码报错Can’t open /dev/tty: No such device or address Error (Linux)解决办法

由于之前的线上服务器替换过ip地址,导致线下服务器crontab在拉取备份日志时日志里记录了如下问题

注意:
查找服务器端问题一定要查看日志,不能靠猜,例如ssh的问题可以多加-vvv参数来具体排查问题

原因
线上服务器进行了ip地址的修改,开始出现Host key verification failed的时候,以为删除自己的know_hosts文件即可,但是没有解决本质问题,所以察看日志很重要

解决方法


mknod -m 644 /dev/tty c 5 0

chmod o+rw /dev/tty

公私钥认证
解决了上面的问题,发现之前由于不清楚原因搞乱了.ssh目录的权限,无法公私钥认证登陆,这里记录一下权限设置:

~/.ssh目录的权限必须是0700
~/.ssh/authorized_keys文件权限必须是0600


chmod 600 ~/.ssh/authorized_keys

chmod 700 ~/.ssh

Author: Never
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint polocy. If reproduced, please indicate source Never !
 Previous
如何给你的博客配置ssl证书 如何给你的博客配置ssl证书
在我们的博客搭建好了之后呢,通过域名访问会提示不安全,那么怎么解决这个问题呢。我们可以通过对我们的域名申请ssl证书来解决。还是以视频为主,这个文字更多的是一些用到的指令的罗列吧。
2020-03-27
Next 
从零带你搭建代理服务器 从零带你搭建代理服务器
之前也是应邀答应做一期搭建代理服务器的教程,现在也算是有一点时间了。我在这里呢,打算分为两个部分讲解,第一部分呢,是一些基础知识和原理的一些说明。这样一方面呢,可以让你出现问题更好的排查。另一方面呢,可以让你在更换其他的方法之后可以更快的上
2020-03-12
  TOC