Hexo博客部署到服务器上

blog.csdn.net

文章目录

一、部署博客

服务器配置

首先安装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 博客


—————————————————更新一下————————————-——————


二、部署到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要加上映射的端口-
-
上传的时候不要映射端口,直接上传到本机服务器上,由数据容器卷共享过去-
-
这样就可以了-

查看原网页: blog.csdn.net