It's Me
正值服务器年付便宜就买了一年来玩玩,所以就有了搭建博客的想法。用的是目前比较流行的Hexo开源博客程序,采用Node.js渲染,并且支持 MarkDown 以及一键部署。折腾了不少时间,虽然还不怎么完善,先用着。
后面慢慢完善!
于是准备把这记录下来,少走弯路…
准备环境
Step 1. 资源准备
- VPS 主机一台(本文使用 CentOS7).
- 本地电脑(本文使用 Windows10).
- XShell终端连接工具用于连接 VPS 主机.
- SSR代理(仅限学习使用),因为部分文件不挂代理的话速度会很慢.
配置
Step 2.配置
Step 2.1 本地端配置
本地安装 Git ,Node.js,从官网下载安装即可。
在本地创建目录如
E:\MyBlog\hexo\
进入目录右键选择Git Bash Here
,然后安装 Hexo。
输入以下命令安装 Hexonpm install -g hexo
安装完成后在该文件夹下进行初始化
hexo init
初始化 Hexonpm install
安装依赖安装完成后,我们在终端执行
hexo s
启动 Hexo
根据提示在浏览器中输入地址
http://localhost:4000
就可以看到预览界面了!配置本地端无密码 ssh 登录服务端
用过 Hadoop 和 git 的是不是觉得似曾相识,这里为什么要用到呢?因为这里的 Hexo 发布博客是用 git 来部署的,而 git 又是基于 ssh 连接的,所以实现一键发布博客就得配置这玩意了。其实很简单,有的教程复杂化了,注意这里有些步骤在本地端操作,为了条理,也为了符合我们学习思路,放在这里
- 本地端设置 git 用户名邮箱
这里的用户名邮箱是在本地提交 git 时,服务器端做记录用的1
2git config --global user.email "你的邮箱"
git config --global user.name "你的用户名" - 本地端生成 ssh Key
1
2ssh-keygen -t rsa -C "你的邮箱"
cat .ssh/id_rsa.pub //用于将该公钥内容复制到服务端
Step 2.2 VPS 配置
习惯性的,先进行一次更新
yum update -y
配置服务端端 ssh 登录(已安装则不需要进行操作)
- 服务器端安装 ssh
yum install ssh
- 启动服务
service sshd start
- 服务器端安装 ssh
hexo 用户配置
- 新建 hexo 用户
useradd hexo
- 更改密码
passwd hexo
- 新建 hexo 用户
服务器端在用户主目录下新建.ssh 文件夹并拷贝本地端公钥内容到.ssh 目录下的 authorized_keys
1
2
3
4
5su - hexo
mkdir .ssh
cd .ssh
echo "本地端公钥(全部内容)" > authorized_keys
chmod 600 authorized_keys本地端 ssh 验证
ssh hexo@你的域名 //@前是你创建的站点管理用户
OK,无密码 ssh 登陆完成,配置过程注意是在本地端还是服务器端操作。网站地址文件夹配置
- 新建网站文件夹
mkdir /home/hexo/www
- 新建网站文件夹
赋予 hexo 用户对网站目录的所有权
chown hexo:hexo -R /home/hexo
Nginx 安装与配置
添加 Nginx 源,安装 Nginx
在/etc/yum.repos.d 目录下创建一个 yum 源文件 nginx.repo,用 vi 编辑写入如下内容。1
2
3
4
5[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1安装 Nginx
1
2sudo yum install nginx -y
# nginx -v //查看版本号验证
Nginx 启动
nginx -c /etc/nginx/nginx.conf
Nginx 停止
pkill -9 nginx
删除原配置文件
rm /etc/nginx/conf.d/*
重新配置,添加以下内容到/etc/nginx/conf.d/hexo.conf1
2
3
4
5
6
7server {
root /home/hexo/www; #网站根目录,用来存储网站文件,后面 会创建
server_name www.hellolvs.com; #你的域名
location / {
index index.html index.htm;
}
}看到没,这一步将你的域名和服务器下的网站根目录挂钩,主页是根目录下 index.html
很关键!!!nginx 重启
service nginx restart
Git 配置
- 安装 Git
yum install git
- 初始化 git 仓库
1
2
3cd /home/hexo
mkdir hexo.git && cd hexo.git
git init --bare - 配置 git 仓库 Hooks
hooks,钩子,就是将不同目录的数据实现同步。具体如下,在 git 仓库 hooks 目录下创建文件 post-receive 并修改权限将以下内容添加到 post-receive 中1
2
3cd hooks
touch post-receive
chmod 755 post-receive1
2
3
4
5
6
7
8
GIT_REPO=/home/hexo/hexo.git
TMP_GIT_CLONE=/tmp/hexo
PUBLIC_WWW=/home/hexo/www
rm -rf ${TMP_GIT_CLONE}
git clone $GIT_REPO $TMP_GIT_CLONE
rm -rf ${PUBLIC_WWW}/*
cp -rf ${TMP_GIT_CLONE}/* ${PUBLIC_WWW}
- 安装 Git
部署
Step 3.部署
安装 hexo git 部署模块
首先我们得给 hexo 添加 git 部署支持…
本地进入 hexo 目录下,执行1
npm install hexo-deployer-git --save
修改站点配置文件_config.yml
这个配置文件很重要,可以配置网站名,作者,网站 URL 等等,可以参考官方文档看看各项含义,这里我们配置其中的 URL 项和部署项就好,按下面修改。URL 项配置:
1
2
3
4# URL
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
url: http://www.hellolvs.com #你的博客网址
root: /部署项配置:
1
2
3
4deploy:
type: git #部署方式
repo: hexo@www.hellolvs.com:/home/hexo/hexo.git #@符 号之前是服务器的站点管理用户,之后是服务器的git仓库路径
branch: master #分支,我们只用主分支即可这种部署默认是使用 ssh:22 端口,如果服务器是其他端口则需要进行修改
在本地.ssh 目录下新建 config 文件(没有扩展名并不是 config.txt)
在文件中添加 IP 端口信息
Host blog.luckyh.cn #域名或 IP
Port 1234 #端口号部署验证
1
2
3
4
5hexo clean //清除缓存(实际是删除db.json和public文件夹)
hexo g //生成静态页面(public文件夹)
hexo d //部署到服务器
hexo g -d //后两步简写
OK,完结撒花,浏览器输入你的域名看看吧!
本次总结有点乱(下次重新整理一遍)