记录本地Hexo博客部署到服务器上

前言:

阿里巴巴真的太好了,让学生能免费领取一台云ECS服务器,感谢,所以我就将原本部署到GitHub的博客部署到了这台服务器,因为部署到GitHub上实在是太慢了。总结一下这次部署的过程以及域名等问题,因为我也是第一次,所以开始没有少跌坑,希望我总结这篇的博客可以帮助和我一样的新人。

最后希望疫情早日被消灭!!!

武汉加油,中国加油!

一、服务器使用

云服务器管理控制器中的实例便是我们的服务器了
在这里插入图片描述
要做的第一步便是修改SSH连接的密码,在这里便可以修改SSH连接的密码
在这里插入图片描述
注意下面这个是修改VNC的密码,不是修改SSH密码,一开始就是卡在这里了。。。。在这里插入图片描述

修改成功后,便可以用一些连接SSH的工具进行连接,可以去百度下这里就不多赘述

当连接好之后,比如你想要在服务器中搭建一个wordpress博客,那么新手的话推荐下载宝塔面板,很方便可以一键下载apache,MySQL等,当然也可以自己手动下载,具体的流程也很简单,网上教程也有很多,只需按照人家的操作走就可以了,这里只说一下安全组的问题

比如你MySQL需要3306端口,就必须在安全组中开发这个3306端口
在这里插入图片描述
授权对象设置为0.0.0.0/0就可以了,具体原因可以去看下大师傅们的博客
在这里插入图片描述
了解了这些之后,就开始部署博客!

二、部署博客

部署环境

本地:

win10操作系统
Hexo博客已搭建好(之前是部署在GitHub上的,并非是刚开始搭建)

服务器:

一台云ECS服务器
操作系统: Ubuntu  18.04 64

服务器配置

首先安装gitnginx,Git 用于版本管理和部署,Nginx 用于静态博客托管。

apt-get update
apt-get install git-core nginx
0x01: 创建私有 Git 仓库

/var/repo/ 下,创建一个名为 hexo_static 的裸仓库,然后需要修改用户对目录的权限

sudo mkdir /var/repo/
sudo chown -R $USER:$USER /var/repo/
sudo chmod -R 755 /var/repo/

然后,执行下面的命令:

cd /var/repo/
git init --bare hexo_static.git
0x02:配置 Nginx 托管文件目录

创建 /var/www/hexo 目录,用于 Nginx 托管

sudo mkdir -p /var/www/hexo

#修改目录的所有权和权限
sudo chown -R $USER:$USER /var/www/hexo
sudo chmod -R 755 /var/www/hexo

#修改 Nginx 的 default 设置
sudo vim /etc/nginx/sites-available/default
...
server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/hexo; # 需要修改的部分
    index index.html index.htm;
...
将其中的 root 指令指向 /var/www/hexo 目录

在这里插入图片描述
修改完成之后,重启 Nginx 服务,使改动生效

sudo service nginx restart
0x03:创建 Git 钩子

在服务器上的裸仓库 hexo_static 创建一个钩子,在满足特定条件时将静态 HTML 文件传送到 Web 服务器的目录下,即 /var/www/hexo

#在自动生成的 `hooks` 目录下创建一个新的钩子文件
vim /var/repo/hexo_static.git/hooks/post-receive

#在此文件中添加两行代码,指定 Git 的工作树(源代码)和 Git 目录(配置文件等)
#!/bin/bash
git --work-tree=/var/www/hexo --git-dir=/var/repo/hexo_static.git checkout -f

#保存退出文件后,需要让该文件变为可执行文件。
chmod +x /var/repo/hexo_static.git/hooks/post-receive

如果以上都配置好后,服务器端的配置基本就结束了,下面就开始配置本地的Hexo

本地Hexo配置

0x01:修改URL

之所以配置本地Hexo是为了自动部署到服务器端的 hexo_static 裸仓库中,_config.yml 为 Hexo 的主配置文件。首先需要修改的便是博客的 URL 地址
在这里插入图片描述

# URL
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'

url: http://server-ip # 没有绑定域名时填写服务器的实际 IP 地址。
root: /
permalink: :year/:month/:day/:title/
permalink_defaults:
0x02: Git 部署

编辑 _config.yml 文件,修改Deployment 部分

deploy:
    type: git
    repo: root@云服务器的IP地址:/var/repo/hexo_static
    branch: master

在这里插入图片描述
如果到这一步了,那基本就结束了

hexo g && hexo d

但是还是会遇到一些问题,如:在部署时会遇到(这里借用别人的图)
在这里插入图片描述
就类似这种问题,解决方法网上也有,只不过让人看的很晕,还好查到了一位大神的博客,出现这个问题的原因在于,第一次使用SSH连接时,会生成一个认证,储存在客户端的known_hosts中,解决方法就是:

ssh-keygen -R 服务器端的ip地址

这样就可以将报错提示的那行给删掉了,从而可以进行正常的连接

hexo g && hexo d

如果出现这样显示,那就是已经部署好了
在这里插入图片描述

这篇文章大多数操作都是模仿这位大师傅,如果哪里叙述的不是很详细可以参考这位师傅的
在 Ubuntu 14.04 服务器上部署 Hexo 博客

原本想把域名使用也写在这篇博客但是由于域名备案时间实在是太长了,等到域名备案好之后再写一篇关于域名的。

发布了60 篇原创文章 · 获赞 72 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_43431158/article/details/104221186
今日推荐