文章归档

置顶文章

Web安全

Web安全基础

PHP相关

Writeups

靶机系列

HackTheBox

VulnHub

代码审计

PHP代码审计

流量分析

机器学习

基础学习

Python

Python编程

Java

Java编程

算法

Leetcode

随笔

经验

技术

 2019-10-24   762

阿里云Centos7+Ngnix部署Hexo

之前一直把hexo部署在GitHub Page上,缺点就是访问的速度慢,有时候甚至加载不出来,刚好之前买的阿里云ECS也落灰了,顺手把hexo部署在阿里云上,再顺手记录一下部署过程。

部署环境

  • 本地环境:
    • Window10(64bit)
    • Git
    • NodeJS
    • Hexo
  • 云主机环境
    • Centos7
    • Nginx
  • 其他
    • 宝塔面板

开始部署

生成ssh公钥

如果本机已有id_rsa.pub文件,此步骤可跳过

在Win10桌面右击,点击Git Bash Here打开命令行终端,执行如下命令(直接按三次回车生成密钥)

1
ssh-keygen -t rsa

生成的文件默认在C:/用户/本机用户名/.ssh/路径下。

Centos搭建环境

安装Git
1
yum -y install git
创建Git账户
1
adduser git
添加账户权限
1
2
chmod 740 /etc/sudoers
vim /etc/sudoers

找到下面这一行:

1
2
## Allow root to run any commands anywhere
root ALL=(ALL) ALL

紧接着添加:

1
git     ALL(ALL)      ALL
设置Git账户密码
1
sudo passwd git
复制公钥

切换至git用户,创建./ssh文件夹和``~/.ssh/authorized_keys `文件,并给权限:

1
2
3
4
5
6
su git
mkdir ~/.ssh
vim ~/.ssh/authorized_keys
# 然后将win10中生成的id_rsa.pub文件中的公钥复制到authorized_keys
chmod 600 /home/git/.ssh/authorzied_keys
chmod 700 /home/git/.ssh

在本地Git终端中测试是否能免密登录git,其中SERVER为填写自己的云主机IP,执行输入yes后不用密码就说明好了

1
ssh -v [email protected]
创建本地仓库和网站根目录

首先创建目录并给权限:

1
2
3
4
5
6
7
8
#repo作为为Git仓库目录
mkdir /var/repo
chown -R git:git /var/repo
chmod -R 755 /var/repo
#hexo作为网站根目录
mkdir /var/www/hexo
chown -R git:git /var/www/hexo
chmod -R 755 /var/www/hexo

然后创建一个Git仓库:

1
2
cd var/repo
git init --bare hexoBlog.git
自动部署

/var/repo/hexoBlog.git下,有一个自动生成的hooks文件夹。我们需要在里边新建一个新的钩子文件post-receive

1
vim /var/repo/hexoBlog.git/hooks/post-receive

添加一下内容:

1
2
#!/bin/bash
git --work-tree=/var/www/hexo --git-dir=/var/repo/hexoBlog.git checkout -f

修改文件权限,使得其可执行:

1
2
chown -R git:git /var/repo/hexoBlog.git/hooks/post-receive
chmod +x /var/repo/hexoBlog.git/hooks/post-receive

Centos配置Nginx

为了适合小白安装部署和后期网站服务器的扩展性,选用宝塔面板来一键部署Nginx。宝塔面板的安装和使用可以查看官方文档

Nginx部署成功后就可以创建网站了。

没有域名的可以填写IP地址。

注意:根目录的路径必须是你上一步在云服务器上创建的网站目录。

本地Hexo配置

配置_config.yml,完成自动化部署。

打开blog文件夹,编辑_config.yml,找到deploy:

1
2
3
4
5
6
deploy:
type: git
#server改为你的服务IP地址或解析后的域名
#例如我改为repo: git@ali6.cn:/var/repo/blog.git
repo: [email protected]:/var/repo/hexoBlog.git
branch: master

再执行命令:

1
2
hexo clean
hexo g -d

不出错显绿说明完成,打开浏览器输入你的域名或ip地址就可以看到你部署的Hexo博客了。

Copyright © ca01h 2019-2020 | 本站总访问量