一直计划将个人博客的系统由WordPress换成HEXO或者python的系统,但苦于一直没时间,决定这个周末花两天时间来搞定。看了N多的教程,发现一个问题,对于没有基础的同学来说,目前网上能搜到的教程都太过麻烦,我看着教程搞了好久都没搞定,原因不是教程写的不对,是教程中有很多细节作者没有写,而这些细节恰恰很关键,貌似所有的步骤都对了,但是就因为这些细节的问题,导致了很多小白同学反复操作,最终失败,下面开始正题。
本地环境:macOS
服务器环境:Ubuntu16.04 64位
1. 部署服务器环境
首先,你需要买一台云服务器,我买的是最低配的云服务器,系统为Ubuntu16.04 64位,有了服务器之后就开始以下的步骤。
1.1 开启root权限
刚买好的服务器自带Ubuntu系统,但是因为腾讯云的原因,没开放root权限,需要手动开启,需要参考我的另一篇文章《腾讯云Ubuntu如何开启root权限》。
1.2 配置安全组,开放系统端口
腾讯云默认的服务器需要自己开放各种端口,配置安全组,开放以下端口,都是一些常用的端口,见下图:
1.3 配置服务器环境(nginx)
当前操作在服务器环境下进行
sudo apt-get update
sudo apt-get install nginx -y
依次执行两条命令,这样服务器的nginx就安装好了,安装好了nginx之后访问自己服务器的IP地址,出现下图则说明安装成功!
1.4 配置nginx网站根目录
sudo vim /etc/nginx/sites-available/default
执行上述命令,编辑nginx配置文件。
将默认配置文件中的网站路径更改:
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;
修改完成的路径:
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服务器:
nginx -s reload
到此为止,nginx服务器的配置就完成,接下来就是本地hexo的搭建了。
tips:在vim下编辑配置文件,进去后先按英文输入法下的i,确保是INSERT模式下,然后修改完之后按ESC,退出编辑状态,然后安装键盘shift+:,然后输入wq,保存并退出的意思。
2. 本地环境部署
到这里了其实就很简单了,服务器只是一个存放网站文件的地方,本地将hexo的网站目录传上去即可。
首先,删除服务器网站根目录的所有东东,执行以下命令:
ssh root@你的IP "rm -rf /usr/share/nginx/html/"
# 示例:ssh [email protected] "rm -rf /usr/share/nginx/html/"
然后把本地的public文件夹中所有的文件上传上去,这里关于如何生成本地的hexo静态文件,我觉得这个实在太简单,就不具体描述了,看下官方文档几分钟就可以搞定。上传文件执行以下命令:
scp -r 你的本地路径 root@你的IP:/usr/share/nginx/html/
# 示例: scp -r /Users/huixing/huixing_say/public/* [email protected]:/usr/share/nginx/html/
执行完就可以访问你的IP或者域名,是不是网站已经出来了呢?
3. 脚本部署
做完上面两部,其实已经成功的将网站部署到服务器了,这个时候要是有一个脚本的话,就更方便了。
先写一个脚本:
vim hexo.sh
然后在打开的脚本写入刚刚删除与上传的两条命令:
#!/bin/bash
ssh root@你的IP "rm -rf /usr/share/nginx/html/"
scp -r 你的本地路径 root@你的IP:/usr/share/nginx/html/
# 示例:
# ssh [email protected] "rm -rf /usr/share/nginx/html/"
# scp -r /Users/huixing/huixing_say/public/* # [email protected]:/usr/share/nginx/html/
需要注意的是,第一行注释也必须写进去(#!/bin/bash)
给刚写好的脚本权限,执行以下指令:
chmod +x hexo.sh
然后每次发布完文章直接执行以下命令即可发布:
sh hexo.sh
4. 总结
以上就写完了,自己花了两天都没搞定,多亏在群里咨询了一些大神,才终于解决这个问题,在这里表示感谢。
评论区