专栏首页小康的自留地将Hexo部署到云服务器

将Hexo部署到云服务器

前言

看到群里好多人问如何将Hexo部署到云服务器。按我的思想,如果有服务器谁还用Hexo?但居然还真有人。趁着上个月白嫖的腾讯云的机器还没过期,赶紧重装个系统,来咕一篇Hexo如何部署到云服务器。

开始操作

这篇文章并非从安装开始的教程。此教程建立在你已经能通过http://localhost:4000/访问到你的博客的基础上进行的教程。因此并不会涉及到Node的安装与配置,Hexo的下载等。如果还没完成可以自行百度或者看我以前的一篇水文:从零开始搭建Hexo博客

一、通过Git生成SSH密钥

// 假如没有设置git的全局信息需要先设置 设置过了可以忽略
git config --global user.name "yourname"
git config --global user.email youremail@example.com
// 生成SSH密钥
ssh-keygen -t rsa -C "youremail@example.com"
// 禁用自动转换,这个不设置后面上传时会出现警告
git config --global core.autocrlf false

然后Windows的同学生成的密钥在C:\Users\yourname\.ssh路径下,但是Linux或者MAC的小伙伴我就不知道了。毕竟没用这两个操作系统搞过。

二、配置GIT服务器

连接服务器可以使用Xshell或者FinalShell等工具。这里我已Xshell为例,另一款工具同理。

  1. 登录服务器 由于是刚刚重装的系统,因此登录很简单。看到一如既往的黑底白字。
  1. 检查是否存在git,如果没有则需要安装 通过git --version命令查看是否存在git命令,我这里显示not found。则代表没有git,需要安装。
  1. 安装Git yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel -y yum install -y git

安装很快就完成了!

  1. 创建用户并配置其仓库 // 创建用户 useradd git // 设置密码 passwd git // 切换用户 su git // 进入git用户的家目录 cd /home/git/ // 项目存在的真实目录(当然你可以创建在其他地方) mkdir -p projects/blog // 创建文件夹 mkdir repos && cd repos // 创建一个裸露的仓库 git init --bare blog.git

cd blog.git/hooks // 创建 hook 钩子函数,输入了内容如下 vi post-receive //-------------分割线不需要复制------------- #!/bin/sh git --work-tree=/home/git/projects/blog --git-dir=/home/git/repos/blog.git checkout -f //-------------分割线不需要复制-------------

按住ESC,然后输出:wq可以保存退出哦! // 为刚才的文件添加可执行的权限 chmod +x post-receive // 退出到 root 登录 exit // 添加权限 chown -R git:git /home/git/repos/blog.git

  1. 测试能否将其clone 在你的电脑上随便找个位置新建一个文件夹,并且将bash或者其他命令行工具切换到这里。开始执行以下命令(注意替换成你的服务器ip),测试能否将仓库clone下来。 git clone git@server_ip:/home/git/repos/blog.git
  1. 建立SSH信任关系(免密登录) 在你自己的电脑上输入以下命令(注意替换成你的文件路径) ssh-copy-id -i C:/Users/yourname/.ssh/id_rsa.pub git@server_ip // 测试能否登录 ssh git@server_ip翻车了!? 好吧,我居然没有这个ssh-copy-id命令,不过无妨,既然不能使用命令,那么我就手动。如果你上面的两个命令没有问题,那么可以跳过我手动建立信任关系的过程。 手动设置:
    1. 依次执行以下命令 // 切换到git用户 su git //进入家目录,如果没有.ssh目录,那么需要创建。如果存在直接进入即可 cd ~ //创建.ssh目录 mkdir .ssh // 赋予权限 chmod 700 .ssh/ // 进入.ssh目录 cd .ssh // 编辑一个名为authorized_keys的文件,并写入公钥(id_rsa.pub)内容 vi authorized_keys // 添加完成后赋予权限 chmod 600 authorized_keys

    图片中的命令如果与给出代码命令有出入,请以给出代码为准,图片仅作参考。

    1. 在自己电脑测试能否连接成功。 ssh git@server_ip此时登录就需要密码了。

    完成以上步骤后通过ssh git@server_ip连接服务器是不需要密码的。如果还是需要密码,请检查你是否遗漏的哪一步没有做

  2. 为了安全,禁用 git 用户的 shell 登录权限。从而只能用 git clone,git push 等登录 在服务器端输入以下命令: // 如果不是root用户请切换至root用户 su root // 查看 git-shell 是否在登录方式里面 cat /etc/shells // 查看是否安装 which git-shell vi /etc/shells // 添加上2步显示出来的路劲,通常在 /usr/bin/git-shell

修改/etc/passwd中的权限 // 修改passwd文件 vi /etc/passwd// 将原来的 git:x:1000:1000::/home/git:/bin/bash // 修改为 git:x:1000:1000::/home/git:/bin/git-shell

三、配置NGINX服务器

这一步主要是用来开启80端口的服务器。你不会以为要用hexo s吧?

  1. 安装NGINX服务器 // 安装依赖 sudo yum install -y yum-utils // 安装nginx服务 sudo yum install -y nginx
  2. 检查是否安装成功。

看到输出了版本号及代表成功了。

  1. 配置NGINX服务器 // 直接运行nginx nginx // 先停止nginx nginx -s stop // 切换到nginx的配置文件目录 cd /etc/nginx // 编辑文件 vi nginx.conf // 同时,不然nginx无法访问将 user 改为 root 如下图

修改 root 解析路径(/home/git/projects/blog/),如下图

nginx -s reload此时在浏览器直接访问你的服务器ip地址即可看到一个提示——404页面

四、配置Hexo发布

  1. 配置博客根目录下的_config.yml文件 deploy: type: git #用户名 repo: git@server_ip:/home/git/repos/blog.git #Git仓库 branch: master #分支
  1. package.json 中添加 npm 脚本 "scripts": { "deploy": "hexo clean && hexo g -d", "start": "hexo clean && hexo g && hexo s" },
  1. 这下在本地调试就用npm start,调试好了就上传到服务器,然后就可以通过服务器的IP访问了!

绑定域名

直接修改NGINX的文件即可。然后域名解析用A记录解析到服务器即可。

配置HTTPS(SSL)

请自行参考百度!

原创不易,所有文字及图片都是我自己一个一个弄得。搬砖党请尊重一下作者,转载请标明出处。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • git常用命令总结

    Dreamy.TZK
  • 记录一次Hexo持续集成部署尝试

    鉴于已经实现了Coding与Github的双部署,而目前使用了GitHub的actions作为主要的生成Hexo页面的环境,但是由于私有仓库使用时间收到了限制。...

    Dreamy.TZK
  • 通过云环境部署Hexo静态博客

    其中.pub结尾的就是你的公钥了。这个是我们一会儿需要用到的。 如果使用这种方式,无法使用hexo自动部署。

    Dreamy.TZK
  • 快速入门使用Git管理代码

    许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

    Bobby
  • GIT 远程仓库搭建与使用

    这一步生成了 idrsa 和 idrsa.pub 两个文件 (windows 在用户文件夹找),将 idrsa.pub 上传到 git 用户的 .ssh 目录下...

    Gaussic
  • 使用码云新建、推拉第一个项目文件

    本地电脑安装git。可通过 git --version 查看版本,确保本机已有git。

    子乾建建-Jeff
  • 10分钟带你入门git到github

    开局先来一个故事吧,故事看完如果不想看枯燥无味的指令,没关系我已经把这篇文章的内容录制成了一个视频,点击文末阅读原文就可以观看。或者说你已经熟练掌握git的使用...

    java金融
  • Git详细操作

    1.参考帮助文档:https://gitee.com/help/ 仓库管理 =公钥管理 =生成/添加SSH公钥

    小小咸鱼YwY
  • Git常用命令总结

    ​ 在本地新建一个repo,进入一个项目目录,执行git init,会初始化一个repo,并在当前文件夹下创建一个.git文件夹.

    小小咸鱼YwY
  • 教妹子用 git(一)

    最近和一个研一妹纸合作弄自己的网站,然后发现妹纸不太懂 git。于是就写下这篇文章。看看能不能言简意赅的教会一个新手如何使用 git。

    程序员小浩

扫码关注云+社区

领取腾讯云代金券