在腾讯云的CentOS7云主机上部署一个Hexo博客,马上让你写博客的姿势变得更加极客。
搭建流程
先明确一下它的运作流程:本地有个 hexo 程序,里面包含了 public 文件夹,sources 文件夹,hexo 将 sources 里的*.md
文件渲染为静态的 html 文件放到 public 下,然后我们用git推送到服务器的repository
,服务器用git hooks
把仓库里的文件同步到网站根目录,而 nginx 的作用就是反向代理。
- 服务器环境:安装git、nginx、创建git用户
- 本地搭建Hexo环境:安装NodeJs、hexo-cli,生成本地静态网站
- 使用git自动化部署发布博客
一、安装git、创建git用户
在服务器上用root权限运行下面命令
代码语言:javascript复制yum install git
adduser git
二、nginx安装和配置
代码语言:javascript复制yum install nginx
systemctl start nginx
systemctl enable nginx.service # 设置为开机启动
修改nginx的配置文件
代码语言:javascript复制vim /etc/nginx/nginx.conf
server那块改为
代码语言:javascript复制server {
listen 80 default_server;
listen [::]:80 default_server;
server_name ffflipped.cn; #你的域名
index index.html;
root /usr/www;#网站根目录
location / {
try_files $uri $uri/ =404;
}
location ~* ^. .(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
access_log off; log_not_found off; expires max;
}
}
然后执行
代码语言:javascript复制cd /usr
mkdir www
chmod -R 777 /usr/www #设置权限
作为服务器上的网站根目录。
三、本地搭建Hexo环境
安装hexo-cli(windows用git bash运行命令):
代码语言:javascript复制sudo npm install -g hexo-cli
初始化hexo,比如我要在~/blog下搭建博客
代码语言:javascript复制cd ~
hexo init blog
之后继续安装hexo-deployer-git
和hexo-server
,一个用于git自动部署,一个用于本地简单的服务器。
cd blog
npm install hexo-deployer-git --save
npm install hero-server
执行:
代码语言:javascript复制hexo g #或者hexo generate
hexo s #或者hexo server
就可以访问http://localhost:4000
看到博客了。
四、自动化部署
自动化部署就是可以不用在服务器上执行操作,只要本地 git 推送上去,服务器就会通过git hooks
自动把内容同步到网站根目录。
ssh登录
为了以后每次发布时不用输入密码,我们需要创建证书登录,如果自己电脑里没有公钥(我们的公钥在这里:~/.ssh/id_rsa.pub
),则创建公钥:
ssh-keygen -t rsa -C "xx@xx.com"
有则跳过上面这步,然后复制公钥到服务器,下面这个命令就是把公钥内容读入剪贴板。
代码语言:javascript复制pbcopy < ~/.ssh/id_rsa.pub
切换为git用户,添加公钥后记得要赋予文件相应权限:
代码语言:javascript复制su git
cd ~
mkdir .ssh
vim .ssh/authorized_keys
#粘贴然后保存
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
在自己电脑终端输入ssh git@你的域名
验证是否配置好ssh登录。
新建仓库,配置hooks
接着上一步(git用户~目录),在服务器上创建一个裸仓库
代码语言:javascript复制git init --bare blog.git
然后
代码语言:javascript复制vim ~/blog.git/hooks/post-receive
#写入以下内容保存
#!/bin/sh
git --work-tree=/path/to/www --git-dir=~/blog.git checkout -f
再赋予它权限
代码语言:javascript复制chmod x ~/blog.git/hooks/post-receive
本地打开_config.yml
,最后面的deploy
修改为:
deploy:
type: git
repo: git@你的域名:/home/git/blog.git
branch: master
我们试试能不能自动部署:
代码语言:javascript复制hexo clean && hexo g --deploy
现在,打开域名看看吧。
接下来安装主题和配置hexo的其他功能就是后话了。
相关推荐
使用 Github 和 Hexo 快速搭建个人博客
【腾讯云的1001种玩法】利用腾讯云搭建个人博客