搭建基于Hexo+Git+Nginx的静态博客平台

综述

  • 使用Hexo编写/调试基于Markdown的博客,并负责生成静态文件
  • 在云主机上搭建Git环境,实现本地hexo博客到云主机的自动部署
  • Nginx用做静态文件服务器,实现外界对博客的访问

环境

  • Mac pro book – macOS Sierra + iTerm2
  • 阿里云 ECS – CentOS 7 64bit

前提

确认本地已安装Hexo

安装篇

登录阿里云ECS

安装node, git, nginx

安装node

配置篇

增加git用户并赋予权限

按下’i’开始编辑模式,找到’root ALL=(ALL) ALL’,在它后面加上一行’git ALL=(ALL) ALL’,’esc’退出编辑,’:wq!’保存编辑,如下图

输入并确认git密码

添加密钥给git用户

在iTerm2打开另一个tab,运行如下命令获取rsa密钥串

回到阿里云ssh tab,粘贴密钥串到authorized_keys文件并保存

创建应用目录和Nginx配置

多次按exit退出root账号,然后以git账号ssh重新登录ECS,如下

找到server配置块,主要配置listen, server_name, root三个字段。listen是端口,这里由于80端口被其它应用占用,所以使用8000端口,server_name是域名,这里先不考虑,root是应用所在目录,这里是/var/www/hexo,如上所创建的文件夹,如下图

创建git工程和git-hooks实现自动部署

增加如下两行,让hooks找到repo和work路径,如下图

部署篇

本地自动部署配置和实现

Hexo git部署参考官方文档,首先安装hexo git deploy插件

到hexo所在目录,打开_config.yml配置文件,找到deploy部分,添加如下几行配置,如下图

生成静态文件并部署到阿里云ECS。hexo g -d用于生成静态文件,并根据deploy配置自动部署到环境。如果遇到permission问题,加上sudo。

部署过程如下图

部署成功后可以在ECS上查看到如下文件

启动/停止Nginx服务器

完成上述步骤,即可使用浏览器(http://<your_ip>:8000)访问博客

参考: http://blog.csdn.net/fjinhao/article/details/77096951

搭建基于Hexo+Git+Nginx的静态博客平台

阿里云ECS外网访问设置[http/https]

在阿里云安装和配置好运行环境后,外网还是不能直接通过ip直接访问,需要增加安全组规则配置
按照步骤:管理控制台->云服务器ECS->网络和安全->安全组->(右侧找到实例对应的安全组)->配置规则->添加安全组规则,参考如上链接案例六配置,选择相应的协议,端口和授权对象,如下图。


配置完无需重启实例和server,刷新即可看到效果。

阿里云ECS外网访问设置[http/https]

Node set up on CentOS 7

Node official site gives instruction to install node & npm on CentOS 7, as see https://nodejs.org/en/download/package-manager/, just copy that.

1. Running script to check and provide instructions

2. Install with yum command

3. Check its success

Node set up on CentOS 7

安装 scikit-learn

Scikit-learn是一个基于python的机器学习开源库,它的实现依赖NumPy,SciPy和matplotlab。
Scikit-learn可以帮助我们解决监督学习和非监督学习场景下的机器学习问题,包括分类,回归,聚类,密度分析和降纬等。

在mac virtualenv下的安装过程如下:
1. virtualenv –system-site-packages ~/scikit-learn-py2
2. source ./scikit-learn-py2/bin/activate
3. pip install matplotlib (默认NumPy,SciPy是伴随python 2.7安装在mac系统中,如果没有请尝试手动pip安装)
3. pip install scikit-learn

安装 scikit-learn