Разверните блог Hexo на сервер по GIT

Hexo

Эта статья была впервые опубликована в моем личном блогеorxing.topДобро пожаловать
Сервер — Alibaba Cloud ECS CentOS. Первоначально он использовался для развертывания WordPress. Позже, когда я вступил в контакт с Hexo, я развернул Hexo непосредственно на страницах GitHub и страницах кодирования, обратно на сервер.

Основание

  • Создание статических файлов с помощью hexo
  • Создайте среду git на облачном хосте и загрузите статические файлы на облачный хост через git.
  • Автоматическое развертывание с GIT-крюками
  • Nginx использует статический файловый сервер для реализации доступа к блогам.

示意图

окружающая обстановка

  • Локальный рабочий стол — Win10, используемый терминал — cmder, а cmder поставляется с git Теоретически bash — то же самое.

  • Сервер CentOS 7 64bit, состояние по умолчанию, не используйте панель пагоды


Начинать


сервер входа

$ ssh root@123.125.114.144   
#这里假设服务器外网ip为123.125.114.144(悄悄告诉你一个大秘密,这是百度的ip地址) 
#登陆密码就是你拿到服务器一开始设置的密码

Устанавливаем git и nginx.

$ yum install git
$ yum install nginx

Добавить пользователя git

$ adduser git   #添加git用户
$ chmod 740 /etc/sudoers   #改变sudoers文件的权限为文件所有者可写
$ vim /etc/sudoers   #vim是一个很强大的编辑器,使用方法自行Google

оказатьсяroot ALL=(ALL) ALL, добавьте строку под ним

git ALL=(ALL) ALL

$ chmod 400 /etc/sudoers   #将其权限修改为文件所有者可读
$ sudo passwd git  #设置git用户的密码

Добавить ключ ssh для пользователя git

Если вы раньше использовали github или кодинг, вы должны знать, к чему относится этот ключ, я не буду здесь много говорить.

$ su git	#切换到git用户
$ mkdir ~/.ssh	#创建.ssh文件夹
$ touch ~/.ssh/authorized_keys	#创建authorized_keys文件
$ chmod 600 ~/.ssh/authorzied_keys	#为authorized_keys文件赋予文件所有者可读可写的权限
$ chmod 700 ~/.ssh	#为.ssh文件夹赋予文件夹所有者可读可写可执行的权限
$ vim ~/.ssh/authorized_keys	#将ssh密钥粘贴进去

Закройте терминал, используйтеssh git@123.125.114.144Снова войдите на сервер и проверьте, можете ли вы войти в систему под пользователем git без пароля.

Создайте репозиторий git и используйте git-хуки для автоматического развертывания.

$ sudo mkdir /var/repo	  #新建目录,这是git仓库的位置
$ sudo mkdir /var/www		  #
$ sudo mkdir /var/www/hexo  #这是博客源文件的目录
$ cd /var/repo	#转到git仓库的文件夹
$ sudo git init --bare blog.git	#创建一个名叫blog的仓库
$ sudo vim /var/repo/blog.git/hooks/post-update	

Добавьте следующие две строки. Когда мы нажимаем из локального, git-hooks автоматически выполняет следующие команды. Это метод, который поставляется с git, указывая, что в/var/repo/blog.gitсредняя пара/var/www/hexoвоплощать в жизньcheckout -fкоманда, мы можем обновить каталог развертывания до последнего состояния блога после каждого нажатия. Я также немного запутался здесь, и я не понимаю, почему проверка работает так

#!/bin/bash
git --work-tree=/var/www/hexo --git-dir=/var/repo/blog.git checkout -f

затем дайте разрешение

$ cd blog.git/hooks/
$ sudo chown -R git:git /var/repo/   	#进行文件夹及其子文件所有者变更
$ sudo chown -R git:git /var/www/hexo  #进行文件夹及其子文件所有者变更,我也不知道为什么git:git
$ sudo chmod +x post-update  #赋予其可执行权限

На самом деле есть другой способ, то есть после пуша сначала удалить предыдущие файлы, а потом уже клонировать хранилище на/var/www/hexo, вы можете попробовать сами,ссылка здесь

настроить nginx

$ sudo nginx -t  #查看nginx配置路径,宝塔面板安装nginx非下列路径
$ sudo vim /etc/nginx/nginx.conf

Найдите блок конфигурации сервера, в основном настройте три поля listen, server_name и root. listen — порт, server_name — ваше доменное имяorxing.top, root — это путь к исходному файлу блога./var/www/hexo

Имя домена не зарегистрировано, порт 80 не разрешен, и имя_сервера не может быть добавлено.Порт можно изменить на любой порт.Если ваш порт 80 занят, вы также можете изменить его на другой порт.Заполните прослушивание для пользовательский порт и удалите другой.

域名没备案

Доменное имя зарегистрировано, затем введите доменное имя и перейдите в консоль доменного имени, чтобы преобразовать доменное имя в IP-адрес вашего сервера.

域名已备案

Поскольку сервер Aliyun не открывает порт 80 по умолчанию, вы должны открыть его самостоятельно, и то же самое верно для других портов.

Установить разрешения для пользователя git

Установите разрешения для пользователя git, чтобы они не могли пройтиssh git@123.125.114.144Войдите, и вы не можете переключиться на пользователя git через su git,

git операции не влияют

$ sudo vim /etc/passwd
#修改最后一行
#将/bin/bash修改为/usr/bin/git-shell

Ссылка на ссылку