在阿里云上搭建Hexo博客详细流程

在阿里云上抢到了6个月免费的主机,花钱买了注册了域名,搭建了这个博客。

1 域名注册

挑选喜欢的域名注册就好了。注册之后需要DNS解析。

记录类型 主机记录选 记录值
A @ ip地址
A www ip地址

这样域名在十几分钟之后就可以访问你的主机了。

2 配置服务器

Ubuntu

在服务器上选择ubuntu。
我一直使用Ubuntu,比较熟悉apt的安装方式和目录配置。

配置SSH登陆

本地终端中输入

ssh root@ip地址

输入root密码即可登录你的阿里云主机。
每次输入密码太麻烦是吧?

本地终端

先进入./.ssh文件夹,没有的话就创建一个。

#查看是否有./.ssh
cd ~ && ls -a
#建立文件夹(有的话就不用了)
mkdir ~./.ssh
cd ~./.ssh

生成rsa秘钥

ssh-keygen -t rsa

按照以上的方法在服务器上建立~/.ssh文件夹,然后将公共秘钥考到服务器

scp id_ras.pub root@ip地址:/root/.ssh/id_rsa.pub

服务器终端

进入.ssh/文件夹然后将公共秘钥放入主机识别的文件中,然后销毁公共秘钥

cd /root/.ssh/
cat id_rsa.pub >> authorized_keys
rm id_rsa.pub

本地终端中输入

ssh root@ip地址

即可直接登录服务器

参考:阿里云主机ssh免密码登录

LNMP

使用LNMP一键安装包安装配置服务器。
登陆服务器后,运行

apt-get install screen

然后运行

screen -S lnmp

安装LNMP

wget -c http://soft.vpser.net/lnmp/lnmp1.4.tar.gz && tar zxf lnmp1.4.tar.gz && cd lnmp1.4 && ./install.sh lnmp

运行安装脚本,一路默认设置,在配置MySQL时需要输入root密码。如果设置期间输入错误,可使用Ctrl+c推出安装,然后在到lnmp下载目录下运行

./install.sh

即可从新安装。
如果在出现提示"Press any key to install...or Press Ctrl+c to cancel"后,发现错了,呵呵……喝杯茶吧,等一个小时之后,输入

./uninstall.sh

之后在重新安装即可。

参考:LNMP安装

添加网站(虚拟主机)

LNMP安装网站非常方便

lnmp vhost add

首先输入你的域名,然后询问是否需要输入更多域名,相当于把多个域名绑定到同一个服务器上。

注意:www.域名.com和域名.com是两个域名。

然后输入你的网站目录,要求是从/开始的完整路径,如果实在弄不明白就回车按照默认值来吧。

Allow Rewrite rule? (y/n)

选择n,不需要

log配置,默认

MySQL选择n,不需要

SSL选择n,不需要

ftp选择n,不需要

然后LNMP开始配置主机

参考:LNMP添加、删除虚拟主机及伪静态使用教程

搭建Hexo博客

本地安装Hexo(Mac)

安装Homebrew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安装Homebrew Cask包

brew install caskroom/cask/brew-cask

安装Node.js

brew install git

安装Git

brew cask install git

安装Hexo

npm install -g hexo-cli

创建你的博客目录,然后进入你的博客目录

mkdir 博客目录
cd 博客目录
hexo init

完成初始化后需要安装一些需要的实现博客功能软件包(需要在博客目录下运行)

npm install hexo-deployer-git --save

测试Hexo(需要在博客目录下运行)

#生成博客
hexo g
#运行本地服务器
hexo s

在浏览器中输入:

http://localhost:4000/

即可看到Hexo生成的博客

参考:Mac下使用Hexo搭建个人博客

服务器配置

安装Git

apt-get install git

创建一个用户git,用来执行git服务,并将上步建立的id_rsa.pub文件考入/home/git/.ssh/authorized_keys中

adduser git

切换至本地终端运行

scp ~/.ssh/id_ras.pub root@ip地址:/root/.ssh/id_rsa.pub

切换至服务器运行

cd /home/git/.ssh/
cat id_rsa.pub >> authorized_keys
rm id_rsa.pub
#将文件authorized_keys所有权改为git
chown git:git authorzied_keys

建立git-hooks同步跟目录(我的是/var/repo/),在目录hooks文件夹下建立post-receive文件

cd /var/repo
git init --bare blog.git(同步目录名)
cd blog.git/hooks/
vim post-receive
#写入以下内容
#!/bin/sh
git --work-tree=/path/to/www(LNMP中设置的网站目录) --git-dir=/var/repo/blog.git(同步目录的完整路径) checkout -f

保存后赋予文件可执行权

chmod +x post-receive

将blog.git目录的拥有者换成git用户

chown -R git:git /var/repo/blog.git

出于安全考虑,禁用git用户的shell登录权限
在/etc/passwd中找到类似行:

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

并将其改为:

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

由于LNMP使用的是www用户,而git使用的是git用户,在更新博客时会照成冲突,新建web-blog组,将两个用户同时的加入该组,并将网站目录的所有权更改为web-blog组。

groupadd web-blog
useradd -g web-blog www
useradd -g web-blog git
chgrp web-blog 网站目录
chmod -R 775 网站目录

参考:使用 Git Hook 自动部署 Hexo 到个人 VPS

你可能感兴趣的:(在阿里云上搭建Hexo博客详细流程)