Эта статья была впервые опубликована в моем личном блоге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