在腾讯云的CentOS7云主机上部署一个Hexo博客,马上让你写博客的姿势变得更加极客。
先明确一下它的运作流程:本地有个 hexo 程序,里面包含了 public 文件夹,sources 文件夹,hexo 将 sources 里的*.md
文件渲染为静态的 html 文件放到 public 下,然后我们用git推送到服务器的repository
,服务器用git hooks
把仓库里的文件同步到网站根目录,而 nginx 的作用就是反向代理。
在服务器上用root权限运行下面命令
yum install git
adduser git
yum install nginx
systemctl start nginx
systemctl enable nginx.service # 设置为开机启动
修改nginx的配置文件
vim /etc/nginx/nginx.conf
server那块改为
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;
}
}
然后执行
cd /usr
mkdir www
chmod -R 777 /usr/www #设置权限
作为服务器上的网站根目录。
安装hexo-cli(windows用git bash运行命令):
sudo npm install -g hexo-cli
初始化hexo,比如我要在~/blog下搭建博客
cd ~
hexo init blog
之后继续安装hexo-deployer-git
和hexo-server
,一个用于git自动部署,一个用于本地简单的服务器。
cd blog
npm install hexo-deployer-git --save
npm install hero-server
执行:
hexo g #或者hexo generate
hexo s #或者hexo server
就可以访问http://localhost:4000
看到博客了。
自动化部署就是可以不用在服务器上执行操作,只要本地 git 推送上去,服务器就会通过git hooks
自动把内容同步到网站根目录。
为了以后每次发布时不用输入密码,我们需要创建证书登录,如果自己电脑里没有公钥(我们的公钥在这里:~/.ssh/id_rsa.pub
),则创建公钥:
ssh-keygen -t rsa -C "xx@xx.com"
有则跳过上面这步,然后复制公钥到服务器,下面这个命令就是把公钥内容读入剪贴板。
pbcopy < ~/.ssh/id_rsa.pub
切换为git用户,添加公钥后记得要赋予文件相应权限:
su git
cd ~
mkdir .ssh
vim .ssh/authorized_keys
#粘贴然后保存
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
在自己电脑终端输入ssh git@你的域名
验证是否配置好ssh登录。
接着上一步(git用户~目录),在服务器上创建一个裸仓库
git init --bare blog.git
然后
vim ~/blog.git/hooks/post-receive
#写入以下内容保存
#!/bin/sh
git --work-tree=/path/to/www --git-dir=~/blog.git checkout -f
再赋予它权限
chmod +x ~/blog.git/hooks/post-receive
本地打开_config.yml
,最后面的deploy
修改为:
deploy:
type: git
repo: git@你的域名:/home/git/blog.git
branch: master
我们试试能不能自动部署:
hexo clean && hexo g --deploy
现在,打开域名看看吧。
接下来安装主题和配置hexo的其他功能就是后话了。
相关推荐
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。