文章目录
前言:
阿里巴巴真的太好了,让学生能免费领取一台云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位
服务器配置
首先安装git和nginx,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 博客
—————————————————更新一下————————————-——————
三、部署到docker中
虽然都是静态内容已经很安全了,但为了方便管理还是把博客放到docker里面,这里记录一下如何放的。
先搜索一下含有nginx服务的centos7镜像并拉取
docker search centos7-nginx
docker pull centos7-nginx
映射好端口并建好容器数据卷,方便数据在主机和docker容器的传输
docker run -d -p 8888:80 -v /var/www/hexo:/var/www/hexo 7f9e697422eb
接下来进入docker容器中,修改一下nginx的配置
vi /etc/nginx/conf.d/default.conf
修改好之后就可以退出docker容器了,接下来在主机中进行操作
在 /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
修改/var/www/hexo
目录的所有权和权限
sudo chown -R $USER:$USER /var/www/hexo
sudo chmod -R 755 /var/www/hexo
在服务器上的裸仓库 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就可以了
URL要加上映射的端口
上传的时候不要映射端口,直接上传到本机服务器上,由数据容器卷共享过去
这样就可以了