hexo博客上华为云
今天在牛客划水,看见华为云与牛客搞了一个买服务器返现的活动,买一年99反90,四舍五入等于不要钱,然后,果断入手。
配置如下 因为之前用hexo搭了博客并部署在了GitHub上,访问就有点慢,所以现在把博客迁移过去就可以了
1:本地ssh连接服务器
先确认安全组是否配置得当
打开华为云控制台,左边导航栏找到访问控制,点击,选择安全组,没有特殊需求,直接配置Sys-default即可,
本地安装上ssh工具,我用的Finalshell(没有工具的话,点击即可下载)
主机出输入云主机的弹性公网ip,可用用户名加密码登陆
2:服务器配置web环境
2.1 node js 安装
#如果没有yum,输入apt -get install yum
yum -y install nodejs
#输入node -v
root@ecs-sn3-medium-2-linux-20200203153603:~# node -v
v8.10.0 #显示版本号即为正常
2.2 安装git和nginx
#git做版本控制,Nginx做博客托管
yum install git nginx -y
2.3 安装hexo
#安装node js 后,可以使用npm包管理器
npm install hexo-cli hexo-server -g
#验证
hexo
3:服务器创建Git环境
3.1 创建git用户
创建用户:adduser git
设置密码:passwd git
3,2 配置公钥
切换到git用户:su git
创建.ssh目录: mkdir .ssh && chmod 700 .ssh
创建 authorized_keys
公钥保存文件:touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys
打开本地的id_rsa.pub文件,复制内容,(路径C:\Users\your name\.ssh)
若没有该文件,则生成即可,打开.ssh文件夹,在此打开git,输入ssh-keygen -t rsa -C "youremail@example.com"
打开服务器端刚刚创建的authorized_keys``文件:vim authorized_keys
粘贴本地的公钥到authorized_keys
后,按Esc退出insert模式,输入:wq!
保存并退出
3.3 创建git仓库
创建一个git仓库,名字叫blog(名字随便起)
mkdir /var/repo
cd /var/repo
git init --bare blog.git
3.4 配置GIT HOOKS
vim /var/repo/blog.git/hooks/post-receive
#!/bin/sh
git --work-tree=/var/www/hexo --git-dir=/var/repo/blog.git checkout -f
chmod +x /var/repo/blog.git/hooks/post-receive #设置权限
3.5 把blog的拥有者变更为git
chown -R git:git blog.git
3.6 创建博客目录
创建静态文件目录(文章网页):mkdir /var/www/hexo
链接git仓库:chown -R git:git /var/www/hexo
配置权限:chmod -R 755 /var/www/hexo
这样git仓库更新便会自动同步到hexo目录下
3.7 禁用git用户的shell登陆权限(安全考虑)
判断git-shell 是否在/etc/shell文件中
使用which git-shell,如果安装了,则返回git-shell安装目录,若未安装,则 yum install git
安装
判断shells文件是否存在,判断命令:cat /etc/shells
如果文件不存在或没有/usr/bin/git-shell
则需要使用vim增加这个路径: sudo vim /etc/shells
# /etc/shells: valid login shells ##在最后一行添加git-shell路径
如图输出结果最后一行有git-shell,即为成功
现在我们修改第一步中创建的git用户的登录权限,禁止git用户使用shell权限: 终端中输入sudo chsh git
然后在Login Shell [/bin/bash]
: 后输入git-shell路径/usr/bin/git-shell
修改完成后验证: vim /etc/passwd
找到类似git:x:1000:1000:,,,:/home/git:/usr/bin/git-shell
,看看git用户是否是以git-shell结尾
这样,git用户就只能使用SSH连接对Git仓库进行推送和拉取操作,而不能登录机器并取得普通shell命令
3.8 测试
测试git服务器是否部署成功,在本地,使用git运行clone操作 git clone git@服务器ip:/var/repo/blog.git
4:hexo配置
打开本地的hexo博客目录,编辑主题配置文件 _config.yml
修改repository为:
deploy:
type: git
repository: git@ip或域名:/var/repo/blog.git
branch: master
然后执行hexo g -d
,上传本地文件到服务器
5:nginx配置
修改Nginx的default设置
ubuntu
vim /etc/nginx/sites-available/default
centos
vim /etc/nginx/conf.d/blog.conf
将nginx的root指令指向博客目录(配置git钩子目录)
server {
listen 80;
listen [::]:80;
root /var/www/hexo; # 修改为博客目录
server_name laoyuyu.me www.laoyuyu.me; # 如果需要改域名访问,修改server_name 为域名便可,多个用空格隔开
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
}
重启nginx服务器使更改生效
service nginx restart
至此,网站已经可以在云上运行了。
#我部署在华为云上的
- 点赞
- 收藏
- 关注作者
评论(0)