# 一、服务器和域名
- 腾讯云轻量级服务器
- 腾讯云域名
服务器系统 Centos7
# 1、配置 nginx
使用云命令安装
1 | yum install -y nginx |
启动服务器
1 | systemctl start 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 再按回车
1 | server { |
# 3、安装 git
1 | yum install git |
配置 git 用户
1 | adduser git |
修改用户权限:
1 | chmod 740 /etc/sudoers |
按向下键在文件中找到字段
1 | root ALL=(ALL) ALL |
按 i 进入编辑模式,在这一句下面加上一句
1 | git ALL=(ALL) ALL |
按 Esc 退出编辑,再按:wq 回车保存退出后,然后将 sudoers 文件权限改回原样
1 | chmod 400 /etc/sudoers |
设置 git 用户的密码
1 | sudo passwd git |
注意 git 用户的密码要在 root 用户下修改,否则会提示权限不足。下面操作也是一样,要注意是在 git 用户还是 root 用户
切换到 git 用户,然后在~目录下创建.ssh 文件夹
1 | su git |
生成公钥密钥文件
1 | ssh-keygen |
此时在目录下就会有两个文件,分别是
1 | id_rsa 和 id_rsa.pub |
其中 id_rsa.pub 就是公钥文件,我们把它复制一份
1 | cp id_rsa.pub authorized_keys |
这样目录下就会有一个 authorized_keys 文件
然后我们修改它的权限
1 | chmod 755 ~ |
这样我们就可以在自己的电脑上打开 cmd,使用 ssh 方式连接我们的云服务器
1 | ssh -v git@公网ip #@后面输入云服务器公网ip |
输入密码,就能成功登录服务器
接着我们创建一个 git 的仓库,并且新建一个 post-receive 文件,用来把提交到服务器仓库操作如下:
1 | su root |
在 /home/hexo/blog.git 下,有一个自动生成的 hooks 文件夹,我们创建一个 post-receive 钩子,把提交到 /home/git/blog.git 仓库里的文件同步到 /home/hexo 中。
1 | cd blog.git/hooks |
在 post-receive 中输入
1 | #!/bin/bash |
保存退出后授予该文件可执行权限
1 | chmod +x /home/git/blog.git/hooks/post-receive |
# 二、关于本地主机的操作
# 1、安裝 hexo
由于使用 npm 直接下载会有很多人遇到卡顿的问题 (国外服务器),所以我们要做的第一步工作是将 npm 换成淘宝的服务器。cmd 输入下面的命令:
1 | npm config set registry https://registry.npm.taobao.org |
接下来就直接安装 hexo
1 | cnpm install -g hexo-cli |
然后我们选一个目录用来初始化博客
例如 D:/Blog
1 | D: |
执行成功后安装两个插件
1 | npm install hexo-deployer-git --save |
之后我们就可以在自己的本机上查看自己的博客了
1 | hexo g |
# 2、配置服務
在刚才生成博客的目录下,找到 _config.yml ,打开它。
找到 deploy 做如下配置,注意 deploy:下面几行一定要缩进两格
1 | deploy: |
保存退出
在服务器上重新运行 nginx 服务器
nginx -s reload
注意每次修改配置文件按后都要重启 nginx 使之生效
然后尝试写一篇文章并且发布到服务器上
1 | hexo new "Hello My First Blog" |
打开本地博客目录,会发现 deploy_git 目录下有了 Hello My First Blog 文件夹,里面是个简单的 index.html 文件。
在服务器的 home/hexo/2020/12/17 目录下可以发现也有个 Hello My First Blog 文件,这说明文件上传成功。