教你搭建 hexo 博客并通过 ngnix 部署到服务器上
国际惯例搭好一个博客先写个搭建教程。
搭建环境
首先 hexo 基于 node.js 运行所以我们要先在 linux 服务器上安装上 node.js 环境
- 然后我们通过 XShell 连接你的服务器,我这里用的是 阿里云,然后执行下面两句创建一个放 node.js 的文件夹
- 下载到本地后,我们上传到服务器上,我这里使用的是 XFtp 上传
1 2
| tar -xvf node-v12.13.1-linux-x64.tar.xz mv node-v12.13.1-linux-x64.tar.xz nodejs
|
- 按 i 键进入编辑模式,在最后一行的后面添加如下所示的语句(后面写你自己创建的文件的路径)
- 能正常显示版本信息则安装成功,接下来我们来配置一下 淘宝的源,这样会提高下载速度
1
| npm install -g cnpm --registry=https://registry.npm.taobao.org
|
- 同理 cnpm -v 确认是否安装成功(正常显示版本则成功)
- 然后下载 hexo
- 然后我们随便选择一个地方初始哈我们的博客的文件夹,我这里选的是 root 目录下
1 2 3 4
| cd mkdir blog cd blog hexo init
|
我们 ls 查看一下
- 简单介绍一下:
- 第一个 config.yml 是 hexo 的配置文件以后要用到
- themes 里面放的是主题的文件
- source 以后会用来存放你写的博客
- 这些都是初始化生成的文件我们在 blog 文件夹内输入启动 hexo 的命令
- 这样前面加上自己服务器的 ip 地址,后面冒号加 4000 的端口号访问,成功页面如上(这里我改了一下标题)
- 要修改启动端口的话,想要改为 80 端口,则输入 hexo s -p 80 命令即可
更换主题
- 我的 blog 使用的主题是 Butterfly 主题,个人很喜欢,你也可以去 github 上找其他的主题
- 首先你需要下载一个 git (这个后面还会用到)
- 然后 clone 主题(这步要在一开始建的 hexo 初始化的目录 blog 目录下进行)
1
| git clone https://github.com/jerryc127/hexo-theme-butterfly.git themes/Butterfly
|
- clone 完成以后,我们到 blog 文件夹下的 _config.yml 修改一下主题
- 进入后一直往下找,找到下图位置,修改为 Butterfly,如果你是别的主题那就写上别的主题的名字
- 网页打开无法渲染页面,不要慌输入下面的命令安装渲染组件(这是一条命令太长了,不是两条!!)
1
| npm install hexo-renderer-jade hexo-renderer-stylus --save or yarn add hexo-renderer-jade hexo-renderer-stylus
|
- 等待安装完成后输入 hexo s -p 80,再去访问
- OK 到这里主题也就完成更换了,觉得不好看再去挑几个嘛。
部署到 Nginx上
- 我们发现 hexo 在运行的时候,终端一直被挂起无法干别的事,去百度了一圈找到了好几种方法
安装 nginx
1
| vim /etc/nginx/nginx.conf
|
- server_name 后面填你域名或者服务器的 ip
- root 这里的 /data/www/hexo 是 nginx 的web 项目路径,会访问到里面的 index.html 页面
- 然后重启 nginx
配置Git
1
| npm install hexo-deployer-git --save
|
- 创建 /data/www/hexo目录,用于存放博客生成的静态文件
1 2 3 4 5 6
| cd / mkdir data cd data mkdir www cd www mkdir hexo
|
- 然后创建 /data/GitLibrary 目录,用于托管文件项目。
1 2
| cd /data mkdir GitLibrary
|
1
| git init --bare hexo.git
|
- 利用 git hooks (钩子函数)创建一个脚本,post-recive 脚本将在 blog.git仓库接收到 push 时执行。
1
| vim /data/GitLibrary/hexo.git/hooks/post-receive
|
1 2 3 4 5 6 7 8
| GIT_REPO=/data/GitLibrary/hexo.git PUBLIC_WWW=/data/www/hexo TMP_GIT_CLONE=/tmp/hexo
rm -rf ${TMP_GIT_CLONE} git clone $GIT_REPO $TMP_GIT_CLONE rm -rf ${PUBLIC_WWW}/* cp -rf ${TMP_GIT_CLONE}/* ${PUBLIC_WWW}
|
配置 Hexo
- 上面的步骤操作完后,打开 hexo根目录下的 _confi.yml,拉到最下面
- 格式:用户名@域名或 IP 地址:/data/GitLibrary/hexo
- 这里的用户名是你服务器的,一般来说都是 root
- @后面加上你的域名或者 ip
- 后面如果上面步骤一致则就是 /data/GitLibrary/hexo 不用改
- 然后我们来个 素质二连
- hexo clean 这个还是清除已生成的文件
- hexo g -d 这个命令就是 hexo g + hexo d 意思就是先生成,再推到 git 上去
最后
基本步骤应该没有啥大问题,中间我也是踩了很多的坑,不过总体来说要比我上次搭的 lnmp + wordpress 快上一百倍了。。。
最后感谢 小游 水风车 ,一开始也只是在知乎上闲逛,看见 有了自己一台服务器能干什么 后,看见了小游大佬的回答,突然感觉自己好像白学计算机了,而且搭个博客也是我一直想做的事,今天终于算是真正实现啦!
8 月份的时候搭过一个无奈太过复杂(好吧还是我太菜了 2333),接下来也会跟着大佬的脚步,弄个云盘,弄个图床什么的研究一下 cdn 也行 ,反正就是好好搞了。
如果还有什么问题我这里没有说清楚的,可以看下面的链接,我基本上都是看着链接自己弄的,应该可以解决大部分问题。
附上参考链接: