Fork me on GitHub

零基础部署腾讯云Ubuntu系统HEXO环境(一)

一直计划将个人博客的系统由WordPress换成HEXO或者python的系统,但苦于一直没时间,决定这个周末花两天时间来搞定。看了N多的教程,发现一个问题,对于没有基础的同学来说,目前网上能搜到的教程都太过麻烦,我看着教程搞了好久都没搞定,原因不是教程写的不对,是教程中有很多细节作者没有写,而这些细节恰恰很关键,貌似所有的步骤都对了,但是就因为这些细节的问题,导致了很多小白同学反复操作,最终失败,下面开始正题。

本地环境:macOS
服务器环境:Ubuntu16.04 64位

1. 部署服务器环境

首先,你需要买一台云服务器,我买的是最低配的云服务器,系统为Ubuntu16.04 64位,有了服务器之后就开始以下的步骤。

1.1 开启root权限

刚买好的服务器自带Ubuntu系统,但是因为腾讯云的原因,没开放root权限,需要手动开启,需要参考我的另一篇文章《腾讯云Ubuntu如何开启root权限》。

1.2 配置安全组,开放系统端口

腾讯云默认的服务器需要自己开放各种端口,配置安全组,开放以下端口,都是一些常用的端口,见下图:

开放端口

1.3 配置服务器环境(nginx)

当前操作在服务器环境下进行

1
2
sudo apt-get update
sudo apt-get install nginx -y

依次执行两条命令,这样服务器的nginx就安装好了,安装好了nginx之后访问自己服务器的IP地址,出现下图则说明安装成功!

nginx安装成功

1.4 配置nginx网站根目录

1
sudo vim /etc/nginx/sites-available/default

执行上述命令,编辑nginx配置文件。

将默认配置文件中的网站路径更改:

1
2
3
root /var/www/html; # 这是网站默认的路径,需要修改成nginx的路径
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;

修改完成的路径:

1
2
3
root /usr/share/nginx/html/; //修改完成的路径
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;

然后重启nginx服务器:

1
nginx -s reload

到此为止,nginx服务器的配置就完成,接下来就是本地hexo的搭建了。

tips:在vim下编辑配置文件,进去后先按英文输入法下的i,确保是INSERT模式下,然后修改完之后按ESC,退出编辑状态,然后安装键盘shift+:,然后输入wq,保存并退出的意思。

2. 本地环境部署

到这里了其实就很简单了,服务器只是一个存放网站文件的地方,本地将hexo的网站目录传上去即可。

首先,删除服务器网站根目录的所有东东,执行以下命令:

1
2
ssh root@你的IP "rm -rf /usr/share/nginx/html/"
# 示例:ssh root@192.168.0.0 "rm -rf /usr/share/nginx/html/"

然后把本地的public文件夹中所有的文件上传上去,这里关于如何生成本地的hexo静态文件,我觉得这个实在太简单,就不具体描述了,看下官方文档几分钟就可以搞定。上传文件执行以下命令:

1
2
scp -r 你的本地路径 root@你的IP:/usr/share/nginx/html/
# 示例: scp -r /Users/huixing/huixing_say/public/* root@192.168.0.0:/usr/share/nginx/html/

执行完就可以访问你的IP或者域名,是不是网站已经出来了呢?

3. 脚本部署

做完上面两部,其实已经成功的将网站部署到服务器了,这个时候要是有一个脚本的话,就更方便了。

先写一个脚本:

1
vim  hexo.sh

然后在打开的脚本写入刚刚删除与上传的两条命令:

1
2
3
4
5
6
7
#!/bin/bash
ssh root@你的IP "rm -rf /usr/share/nginx/html/"
scp -r 你的本地路径 root@你的IP:/usr/share/nginx/html/

# 示例:
# ssh root@192.168.0.0 "rm -rf /usr/share/nginx/html/"
# scp -r /Users/huixing/huixing_say/public/* # root@192.168.0.0:/usr/share/nginx/html/

需要注意的是,第一行注释也必须写进去(#!/bin/bash)

给刚写好的脚本权限,执行以下指令:

1
chmod +x hexo.sh

然后每次发布完文章直接执行以下命令即可发布:

1
sh hexo.sh

4. 总结

以上就写完了,自己花了两天都没搞定,多亏在群里咨询了一些大神,才终于解决这个问题,在这里表示感谢。