之前在服务器用WordPoress,Eblog程序搭建过个人博客,因为平时也不写什么,导致服务器过期也没续费。
这次我又续费了3年的阿里云学生机,续费后第一个想到的就是重新搭建一个自己的博客,考虑到学生机只有
1M的带宽,我特意上网查了下静态的博客程序,最后选择了Hexo来部署我的博客,域名ali6.cn是早期买的。
部署总览
个人使用的环境
本地环境: Windows10(64位)
云主机:阿里云ECS(CentOS 7.3 64位)
整个部署过程
本地环境搭建(Git,NodeJs,Hexo)
云主机环境搭建(Git,Nginx)
使用git自动化部署博客
开始部署
本地Win10搭建环境
安装Git(下载安装包,打开后一直下一步到结束就行)
安装Nodejs(下载安装包,打开后一直下一步到结束就行)
安装Hexo(下面详细讲解安装步骤)
生成ssh公钥
在Win10桌面右击,点击Git Bash Here打开命令行终端,执行如下命令(直接按三次回车生成密钥)
1 | ssh-keygen -t rsa |
生成的文件默认在~/.ssh目录中,看到有id_rsa,id_rsa.pub这些文件即可,
Win10中就是 我的电脑/C盘/用户/你自己的用户名/.shh/ 就可以看到了
阿里云Centos搭建环境
安装git
1 | yum install git |
创建Git账户
1 | adduser git |
添加账户权限
1 | chmod 740 /etc/sudoers |
找到
1 | ## Allow root to run any commands anywhere |
添加以下内容、
1 | git ALL=(ALL) ALL |
保存退出并改回权限
1 | chmod 400 /etc/sudoers |
设置git账户密码
1 | sudo passwd git |
切换至git用户,创建 ~/.ssh 文件夹和 ~/.ssh/authorized_keys 文件,并赋予相应的权限
1 | su git |
在本地Git终端中测试是否能免密登录git,其中SERVER为填写自己的云主机IP,执行输入yes后不用密码就说明好了
1 | ssh -v git@SERVER |
创建目录
1 | #repo作为为Git仓库目录 |
然后创建一个裸的 Git 仓库
1 | cd var/repo |
创建一个新的 Git 钩子,用于自动部署
在 /var/repo/hexoBlog.git 下,有一个自动生成的 hooks 文件夹。我们需要在里边新建一个新的钩子文件 post-receive。
1 | vim /var/repo/hexoBlog.git/hooks/post-receive |
按 i 键进入文件的编辑模式,在该文件中添加两行代码(将下边的代码粘贴进去),指定 Git 的工作树(源代码)和 Git 目录(配置文件等)
1 | #!/bin/bash |
然后,按 Esc 键退出编辑模式,输入”:wq” 保存退出。
修改文件权限,使得其可执行
1 | chown -R git:git /var/repo/hexoBlog.git/hooks/post-receive |
到这里,我们的 Git 仓库算是完全搭建好了。下面进行 Nginx 的配置。
阿里云Centos配置Nginx
为了适合小白安装部署和后期网站服务器的扩展性,选用宝塔面板来一键部署Nginx
Linux面板6.0安装命令(暂时仅兼容Centos7.x,其它系统版本请安装5.9稳定版):
1 | yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh |
Linux面板6.0升级专业版
1 | curl http://download.bt.cn/install/update6.sh|bash |
安装完成后会显示面板后台地址·账号·密码。打开面板后台地址登陆面板,选择Nginx的部署方案,静静等待部署。
部署完成,点击网站-添加站点-输入域名(没有域名的输入自己的IP地址)-底部的PHP版本选择”纯静态”(其他不改
或者根据自己的习惯来改)-提交。
网站创建完成后点击设置-配置文件
1 | server |
-保存
点击设置-网站目录,修改为/var/www/hexo ,保存
重启宝塔面板服务
1 | service bt restart |
本地win10安装部署Hexo
我部署在D:/blog 中,你根据自己的习惯定义部署位置,不建议C盘,避免系统损坏后导致文件丢失。
打开D盘,新建blog文件夹,打开blog文件夹,按住Shift键右击鼠标,点击”在此处打开CMD窗口”。
执行如下命令
1 | npm install hexo-cli -g |
配置_config.yml,完成自动化部署
打开D盘,blog文件夹,打开blog文件夹,打开_config.yml, 找到deploy
1 | deploy: |
保存后,即可测试部署
打开D盘,blog文件夹,按住Shift键右击鼠标,点击”在此处打开CMD窗口”
执行如下命令
1 | hexo clean |
不出错显绿说明完成,打开浏览器输入你的域名或ip地址就可以看到你部署的Hexo博客了。
至此,我们已经成功部完成,并且访问自己的服务器端比访问github快多了,国外速度也是很好。
常见问题
我在部署过程中,执行 hexo d发现部署老是出错,什么权限不允许之类的,这里我们需要检查我们在上述的git操作部署是否使用了git用户操作,若是没有,需要给相应的目录更改用户组
使用
1 | chown -R git:git /var/repo/ |
这条命令递归的将repo目录及其子目录用户组设置为git。
同时使用
1 | chown -R git:git /var/www/hexo |
这样即可解决此类问题