一、服务器和域名

  • 腾讯云轻量级服务器
  • 腾讯云域名

服务器系统 Centos7

1、配置nginx

使用云命令安装

yum install -y nginx

启动服务器

systemctl start nginx
systemctl enable nginx
2、配置服务器路由

安装并启动服务器后,我们就完成了第一步,现在我们可以尝试使用自己的电脑去访问服务器的公网IP。可以发现,公网IP可以打开一个nginx的默认网页。这样,我们就成功了第一步。

但我们实际上是想要让这个地址指向我们的博客,而不是nginx的默认网址,这就需要我们去配置nginx的配置文件。很多关于centOS的资料都是说配置位于etc/nginx/conf.d/ 下的dafault.conf 这个配置文件,但腾讯云和阿里云默认的库下载的是fedora版本的nginx,我们应该配置的是位于 etc/nginx/ 下的 nginx.conf 。

打开/etc/nginx/目录下的nginx.conf文件vi /etc/nginx/nginx.conf

按i键进入编辑模式,编辑完成后按Esc键退出编辑模式,依次按 :wq保存并退出,注意是先按:键,然后输入wq再按回车

server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;   #把server_name后面的_换为自己的域名,没有域名可以先填公网ip
        root         /home/hexo;       #root后面改为git仓库目录
    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;

    location / {
    }
3、安装git
yum install git

配置git用户

adduser git

修改用户权限:

chmod 740 /etc/sudoers
vi /etc/sudoers

按向下键在文件中找到字段

root    ALL=(ALL)       ALL

按i进入编辑模式,在这一句下面加上一句

git     ALL=(ALL)       ALL

按Esc退出编辑,再按:wq回车保存退出后,然后将sudoers文件权限改回原样

chmod 400 /etc/sudoers

设置git用户的密码

sudo passwd git

注意git用户的密码要在root用户下修改,否则会提示权限不足。下面操作也是一样,要注意是在git用户还是root用户

切换到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文件

然后我们修改它的权限

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

这样我们就可以在自己的电脑上打开cmd,使用ssh方式连接我们的云服务器

ssh -v git@公网ip    #@后面输入云服务器公网ip

输入密码,就能成功登录服务器

接着我们创建一个git的仓库,并且新建一个post-receive文件,用来把提交到服务器仓库操作如下:

su root
cd /home/git
git init --bare blog.git  #在/home/git下创建新仓库blog.git
chown git:git -R blog.git #给予git用户权限

/home/hexo/blog.git 下,有一个自动生成的 hooks 文件夹,我们创建一个 post-receive钩子,把提交到/home/git/blog.git仓库里的文件同步到/home/hexo中。

cd blog.git/hooks
vim post-receive

post-receive中输入

 #!/bin/bash 
  git --work-tree=/home/hexo --git-dir=/home/git/blog.git checkout -f

保存退出后授予该文件可执行权限

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

二、关于本地主机的操作

1、安裝hexo

由于使用npm直接下载会有很多人遇到卡顿的问题(国外服务器),所以我们要做的第一步工作是将npm换成淘宝的服务器。cmd输入下面的命令:

npm config set registry https://registry.npm.taobao.org
# 然后安装cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org

接下来就直接安装 hexo

cnpm install -g hexo-cli

然后我们选一个目录用来初始化博客
例如D:/Blog

D:
cd Blog
hexo init

执行成功后安装两个插件

npm install hexo-deployer-git --save
npm install hexo-server

之后我们就可以在自己的本机上查看自己的博客了

hexo g
hexo s

2、配置服務

在刚才生成博客的目录下,找到_config.yml,打开它。

找到deploy 做如下配置,注意deploy:下面几行一定要缩进两格

deploy:
  type: git
  repo: root@服务器仓库位置   #@后输入 服务器公网IP:/home/git/blog.git       
branch: master 

保存退出

在服务器上重新运行nginx服务器
nginx -s reload

注意每次修改配置文件按后都要重启nginx使之生效

然后尝试写一篇文章并且发布到服务器上

hexo new "Hello My First Blog"
hexo clean && hexo generate --deploy

打开本地博客目录,会发现deploy_git目录下有了Hello My First Blog文件夹,里面是个简单的index.html文件。

在服务器的home/hexo/2020/12/17目录下可以发现也有个Hello My First Blog文件,这说明文件上传成功。

Q.E.D.


一个爱折腾的小伙子