那个小朋友不想拥有一个自己的网站呢~
反反复复折腾了有一周多吧,我是一只小笨狗QAQ,这里记录一下
谢谢同事哥哥帮我找bug (呜呜呜他人真好)
原理
已知hexo已经帮我们把md文件转化为静态页面了,那么要做到将博客部署到云端,实际上是完成两件事情:
- 将静态页面从本地上传至服务器;
- 让外部的人可以访问这些静态页面
将静态页面从本地上传至服务器
操作
前置工作
首先我们需要开启安全组策略,具体操作见官方文档
这样就可以使用ssh来连接远程服务器啦,记得同时打开80端口
当没有操作时,过一段时间ssh连接就会断开, 自定义断开时间
安装git, nginx, nodejs
添加用户
我们为博客新建一个userblog用户,并为他设置密码
1 2
| adduser userblog passwd userblog
|
建立本地 -> 新用户的ssh连接
在本地执行命令
得到公钥
然后添加到服务器
1 2 3 4 5 6
| su userblog
cd /home/userblog/ mkdir .ssh vim .ssh/authorized_keys
|
检测: 在本地使用ssh userblog@ip命令,输入密码后可以顺利进入
创建工作目录
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| exit
cd /home/userblog/ mkdir workplace
cd workplace/ mkdir git mkdir web
cd git git init --bare blog.git cd blog.git/hooks/ vim post-update.sample
git --work-tree=/home/userblog/workplace/web --git-dir=/home/userblog/workplace/git/blog.git checkout -f
mv post-update.sample post-update
|
这时我们发现这个目录的权限为root, 需要改为userblog
1
| chown -R userblog:userblog workplace/
|
1 2 3 4 5
| #本地电脑修改 _config.yml文件 deploy: type: git repository: userblog@[ip]:/home/userblog/workplace/git/blog.git branch: master
|
检测:在本地博客目录下hexo clean & hexo d, 然后查看web目录,有文件就是胜利
配置nginx
注意,阿里云会有一堆奇怪的东西
使用netstat -npltu |grep 80 发现80端口被占用了
1 2 3 4
| systemctl disable docker
systemctl stop docker
|
使用nginx -V命令查看配置文件位置
修改配置文件vim /etc/nginx/nginx.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| user nginx; -> user root;
server { listen 80; listen [::]:80; server_name 改为ip; root /home/userblog/workplace/web;
include /etc/nginx/default.d/*.conf;
error_page 404 /404.html; location = /40x.html { }
error_page 500 502 503 504 /50x.html; location = /50x.html { } location / { index index.html; } }
|
使用nginx -t 命令检查
重启nginx: systemctl restart nginx
查看: systemctl status nginx
使用curl [ip] 80 检查
就可以在浏览器访问啦~
auto
最近迷上了写脚本 (脚本太神奇啦)
这样我们写完博客直接打开控制台运行脚本就可以了
1 2 3 4 5
| cd /Users/liergou/Desktop/blog hexo clean hexo g hexo d echo 'done'
|
当然也可以在控制台快速打开_post文件夹
1
| open /Users/liergou/Desktop/blog/source/_posts
|