博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用阿里云搭配git搭建博客
阅读量:2072 次
发布时间:2019-04-29

本文共 2604 字,大约阅读时间需要 8 分钟。

近期在阿里云买了个学生服务器,就想着把github上的博客迁移过来。整个过程陆陆续续花了一个多星期的时间,也踩了不少坑,在此做个记录备忘。

准备工作

开启端口,轻量级服务器不用手动开,默认带了三个。ECS服务器需要自己配置。

开启端口如下:

1、安装git

使用yum安装即可

yum install git

完成后输入git version,若显示git版本信息即安装成功。

2、安装Node.js

  1. 去官网下载,博主是用的最新版10.15.3,请务必使用7以上的版本,不然使用hexo时会报错。

  2. 解压缩改名放到/usr/local

    tar xvJf node-v10.15.3-linux-x64.tar.xz

    将解压的 Node.js 目录移动到 /usr/local 目录下

    mv node-v10.15.3-linux-x64 /usr/local/node-v10
  3. 软链接到 /bin 目录

    ln -s /usr/local/node-v10/bin/node /bin/nodeln -s /usr/local/node-v10/bin/npm /bin/npm
  4. 配置环境变量

    将 /usr/local/node-v6/bin 目录添加到 $PATH 环境变量中可以方便地使用通过 npm 全局安装的第三方工具

    echo 'export PATH=/usr/local/node-v10/bin:$PATH' >> /etc/profile

    使环境变量生效

    source /etc/profile
  5. 测试是否成功

    输入node -vnpm -v,若显示版本号,即安装成功。

3、安装Hexo

  1. 安装Hexo

    执行以下命令即安装Hexo:

    npm install -g hexo-cli

    安装完成后输入hexo version,若显示版本信息则安装成功。

  2. 具体hexo教程请自行百度,百度上有详细介绍(后续再补)。

4、安装Nginx

  1. 使用 yum 来安装 Nginx

    yum install nginx
  2. 启动Nginx

    systemctl start nginx

    此时访问http//(你的ip地址),看到nginx测试界面则表示启动成功。

  3. 继续输入以下命令使Nginx开机自动启动:

    systemctl enable nginx
  4. 配置静态服务器访问路径

    Nginx 需要配置静态资源的路径信息才能通过 url 正确访问到服务器上的静态资源。
    即是要将HEXO生成的静态资源的路径放置到Nginx的访问路径

打开 Nginx 的默认配置文件 /etc/nginx/nginx.conf ,将默认的 root /usr/share/nginx/html 修改为: root /…//public (此处可能在此配置文件的42行,即为hexo初始化的文件夹)

修改完成后保存,输入以下命令重启Nginx:

nginx -s reload

此时再次访问你的IP地址,若显示上文的hexo初次运行的样子,则说明配置成功。

注意:可能会报403错误,原因是nginx没有权限访问public文件夹,修改方法有两种:1.修改public文件夹的权限,修改为777(即任何人可读可写可执行),不推荐2. 修改nginx.conf中的user(可能在第5行),改为可以访问public文件夹的用户,如root。

5、创建git环境

  1. 在云服务器上创建一个 GIT 用户,用来运行 GIT 服务
  • 创建用户:adduser git
  • 设置密码:passwd git
  1. 创建证书
  • 切换到git用户:su git

  • 创建.ssh目录:mkdir .ssh && chmod 700 .ssh

  • 然后在云服务创建authorized_keys公钥保存文件:touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys

    tip:公钥保存文件authorized_keys是一行添加一个

  1. 创建git仓库目录

    创建一个名为blog的git仓库

    mkdir /var/repocd /var/repogit init --bare blog.git
  2. 配置 GIT HOOKS(钩子)

    vim /var/repo/blog.git/hooks/post-receive

    添加以下内容,wq保存。

    #!/bin/shgit --work-tree=/var/www/hexo --git-dir=/var/repo/blog.git checkout -f

    设置权限

    chmod +x /var/repo/blog.git/hooks/post-receive
  3. 改变 blog.git 目录的拥有者为 git 用户

    chown -R git:git blog.git
  4. 创建静态文件目录并将3步骤生成的git仓库链接到静态文件目录下

  • 创建静态文件目录(文章网页):mkdir /var/www/hexo
  • 链接git仓库:chown -R git:git /var/www/hexo
  • 配置权限:chmod -R 755 /var/www/hexo
  • 这样git仓库更新便会自动同步到hexo目录下
  1. 禁用shell登录

    输入以下指令vim /etc/passwd找到下面这行:

    git:x:1001:1001:,,,:/home/git:/bin/bash

    改为:

    git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

    这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。

  2. 测试

    当上述步骤都完成后,我们就可以测试下git服务器是否部署成功,最简单的方法便是使用clone来校验。
    在用户git控制台输入git clone git@服务器ip:/var/repo/blog.git,当弹出密码输入框即环境搭建成功。

6、后续

  • 剩下的操作与使用git操作无异,提交代码至git服务器,git代码会自动推送至public目录,然后通过nginx代理即可访问自己的博客啦~

  • 点击

  • 点击

感谢以上两位博主的博客,没有他们的前置我也搭不出来现在的博客。若有侵权,请联系博主删除。

转载地址:http://hotmf.baihongyu.com/

你可能感兴趣的文章
Java 8新的时间日期库
查看>>
Chrome开发者工具
查看>>
Java工程师成神之路
查看>>
如何在 Linux 上自动设置 JAVA_HOME 环境变量
查看>>
MSSQL复习笔记
查看>>
Spring基础知识汇总
查看>>
Chrome扩展插件
查看>>
log4j.xml 日志文件配置
查看>>
如何删除MySql服务
查看>>
BAT Java和Rti环境变量设置
查看>>
NodeJs npm install 国内镜像
查看>>
python3.5.2 mysql Exccel
查看>>
mysqlDump 导出多表,其中部分表有限制数据内容
查看>>
vi 替换方法
查看>>
BAT 相关
查看>>
ANT集成SVNANT访问SVN(Subversion)
查看>>
高可用架构-- MySQL主从复制的配置
查看>>
jvm调优-从eclipse开始
查看>>
构建微服务:Spring boot 入门篇
查看>>
jvm调优-命令大全(jps jstat jmap jhat jstack jinfo)
查看>>