近期在阿里云买了个学生服务器,就想着把github上的博客迁移过来。整个过程陆陆续续花了一个多星期的时间,也踩了不少坑,在此做个记录备忘。
准备工作
开启端口,轻量级服务器不用手动开,默认带了三个。ECS服务器需要自己配置。
开启端口如下:1、安装git
使用yum安装即可
yum install git
完成后输入git version,若显示git版本信息即安装成功。
2、安装Node.js
去官网下载,博主是用的最新版10.15.3,请务必使用7以上的版本,不然使用hexo时会报错。
解压缩改名放到/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
软链接到 /bin 目录
ln -s /usr/local/node-v10/bin/node /bin/nodeln -s /usr/local/node-v10/bin/npm /bin/npm
配置环境变量
将 /usr/local/node-v6/bin 目录添加到 $PATH 环境变量中可以方便地使用通过 npm 全局安装的第三方工具echo 'export PATH=/usr/local/node-v10/bin:$PATH' >> /etc/profile
使环境变量生效
source /etc/profile
测试是否成功
输入node -v
和npm -v
,若显示版本号,即安装成功。
3、安装Hexo
安装Hexo
执行以下命令即安装Hexo:npm install -g hexo-cli
安装完成后输入
hexo version
,若显示版本信息则安装成功。具体hexo教程请自行百度,百度上有详细介绍(后续再补)。
4、安装Nginx
使用 yum 来安装 Nginx
yum install nginx
启动Nginx
systemctl start nginx
此时访问
http//(你的ip地址)
,看到nginx测试界面则表示启动成功。继续输入以下命令使Nginx开机自动启动:
systemctl enable nginx
配置静态服务器访问路径
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环境
- 在云服务器上创建一个 GIT 用户,用来运行 GIT 服务
- 创建用户:
adduser git
- 设置密码:
passwd git
- 创建证书
切换到git用户:
su git
创建.ssh目录:
mkdir .ssh && chmod 700 .ssh
然后在云服务创建authorized_keys公钥保存文件:
touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys
tip:公钥保存文件authorized_keys是一行添加一个
创建git仓库目录
创建一个名为blog的git仓库mkdir /var/repocd /var/repogit init --bare blog.git
配置 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
改变 blog.git 目录的拥有者为 git 用户
chown -R git:git blog.git
创建静态文件目录并将3步骤生成的git仓库链接到静态文件目录下
- 创建静态文件目录(文章网页):
mkdir /var/www/hexo
- 链接git仓库:
chown -R git:git /var/www/hexo
- 配置权限:
chmod -R 755 /var/www/hexo
- 这样git仓库更新便会自动同步到hexo目录下
禁用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每次一登录就自动退出。
测试
当上述步骤都完成后,我们就可以测试下git服务器是否部署成功,最简单的方法便是使用clone来校验。在用户git控制台输入git clone git@服务器ip:/var/repo/blog.git
,当弹出密码输入框即环境搭建成功。
6、后续
剩下的操作与使用git操作无异,提交代码至git服务器,git代码会自动推送至public目录,然后通过nginx代理即可访问自己的博客啦~
点击
- 点击
感谢以上两位博主的博客,没有他们的前置我也搭不出来现在的博客。若有侵权,请联系博主删除。