Hugo установка · 16 min read · Oct 19, 2025

Как установить генератор сайтов Hugo с Nginx на Rocky Linux 9

Статический сайт состоит из страниц со статическим контентом или простым HTML, JavaScript или CSS кодом. Контент не генерируется динамически и не требует базы данных или серверной обработки. Такие сайты невероятно быстры и защищены от уязвимостей, зависящих от динамического кода или SQL.

Hugo — это генератор статических сайтов с открытым исходным кодом, написанный на Go. Он генерирует контент, преобразуя посты, написанные на языке markdown, в HTML. Hugo также поставляется с встроенным сервером для хостинга создаваемых им сайтов. Вы также можете разместить сайт Hugo на Amazon S3, GitHub Pages, Google Cloud, Netlify, Vercel и т.д.

В этом руководстве мы рассмотрим, как установить Hugo для создания статического веб-сайта на сервере, работающем под управлением Rocky Linux 9. Мы будем использовать сервер Nginx для хостинга сайта и SSL-сертификат Let’s Encrypt для обеспечения безопасности нашей установки.

Предварительные требования

  • Сервер с установленным Rocky Linux 9.
  • Пользователь без прав root с правами sudo.
  • Полностью квалифицированное доменное имя (FQDN), указывающее на ваш сервер. Для наших целей мы будем использовать hugo.example.com в качестве доменного имени.
  • Убедитесь, что все обновлено. $ sudo dnf update
  • Установите базовые утилиты. Некоторые из них могут быть уже установлены. $ sudo dnf install wget curl nano unzip yum-utils tree -y

Шаг 1 - Настройка брандмауэра

Первый шаг — настроить брандмауэр. Rocky Linux использует брандмауэр Firewalld. Проверьте статус брандмауэра.

$ sudo firewall-cmd --state
running

Брандмауэр работает с различными зонами, и публичная зона является той, которую мы будем использовать по умолчанию. Перечислите все службы и порты, активные на брандмауэре.

$ sudo firewall-cmd --permanent --list-services

Он должен показать следующий вывод.

cockpit dhcpv6-client ssh

Wiki.js нуждается в портах HTTP и HTTPS для работы. Откройте их.

$ sudo firewall-cmd --add-service=http --permanent
$ sudo firewall-cmd --add-service=https --permanent

Перезагрузите брандмауэр, чтобы применить изменения.

$ sudo firewall-cmd --reload

Шаг 2 - Установка Nginx

Rocky Linux 9 поставляется со старой версией Nginx. Вам нужно загрузить официальный репозиторий Nginx, чтобы установить последнюю версию.

Создайте и откройте файл /etc/yum.repos.d/nginx.repo для создания официального репозитория Nginx.

$ sudo nano /etc/yum.repos.d/nginx.repo

Вставьте следующий код в него.

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.

Установите сервер Nginx.

$ sudo dnf install nginx -y

Проверьте установку.

$ nginx -v
nginx version: nginx/1.24.0

Включите и запустите сервер Nginx.

$ sudo systemctl enable nginx --now

Проверьте статус сервера.

$ sudo systemctl status nginx
? nginx.service - nginx - высокопроизводительный веб-сервер
     Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; preset: disabled)
     Active: active (running) since Mon 2023-10-30 08:24:05 UTC; 7s ago
       Docs: http://nginx.org/en/docs/
    Process: 4265 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
   Main PID: 4266 (nginx)
      Tasks: 2 (limit: 4402)
     Memory: 1.9M
        CPU: 7ms
     CGroup: /system.slice/nginx.service
             ??4266 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf"
             ??4267 "nginx: worker process"

Oct 30 08:24:05 hugo.example.com systemd[1]: Starting nginx - high performance web server...

Шаг 3 - Установка Git

Hugo нуждается в Git для работы. Выполните следующую команду для установки Git

$ sudo dnf install git -y

Проверьте установку Git.

$ git --version
git version 2.39.3

Шаг 4 - Установка Hugo

Поскольку Hugo построен с использованием языка Go, установка его довольно проста, так как он не требует никаких зависимостей и может работать автономно.

Скачайте Hugo. Для нашего руководства мы будем устанавливать расширенную версию Hugo. Расширенная версия может кодировать изображения в формат Webp при обработке изображений. Это полезно, если вы хотите, чтобы Hugo конвертировал изображения для вас на лету и уменьшал их размеры. Расширенная версия также включает компилятор SASS, который может быть полезен в некоторых случаях, если он вам нужен.

Создайте директорию для Hugo.

$ sudo mkdir /var/www/html/hugo -p

Перейдите в только что созданную директорию.

$ cd /var/www/html/hugo

Скачайте Hugo со страницы релизов GitHub. На момент написания этого руководства последняя версия — v0.119.0, которую мы и загрузим.

$ sudo wget https://github.com/gohugoio/hugo/releases/download/v0.119.0/hugo_extended_0.119.0_linux-amd64.tar.gz

Извлеките файлы из архива.

$ sudo tar -xzf hugo_extended_0.119.0_linux-amd64.tar.gz

Вы увидите следующие три файла в вашей директории.

$ ls
hugo  hugo_extended_0.119.0_linux-amd64.tar.gz  LICENSE  README.md

Переместите бинарный файл hugo в директорию /usr/bin.

$ sudo mv hugo /usr/bin/hugo

Файл уже имеет установленные разрешения на выполнение, поэтому вам не нужно их устанавливать.

Подтвердите установку.

$ hugo version
hugo v0.119.0-b84644c008e0dc2c4b67bd69cccf87a41a03937e+extended linux/amd64 BuildDate=2023-09-24T15:20:17Z VendorInfo=gohugoio

Вы также можете проверить все доступные параметры, используя флаг --help.

$ hugo --help

Вы получите следующий вывод.

hugo is the main command, used to build your Hugo site.

Hugo is a Fast and Flexible Static Site Generator
built with love by spf13 and friends in Go.

Complete documentation is available at https://gohugo.io/.

Usage:
  hugo [flags]
  hugo [command]

Available Commands:
  completion  Generate the autocompletion script for the specified shell
  config      Print the site configuration
  convert     Convert your content to different formats
  deploy      Deploy your site to a Cloud provider.
  env         Print Hugo version and environment info
  gen         A collection of several useful generators.
  help        Help about any command
  import      Import your site from others.
  list        Listing out various types of content
  mod         Various Hugo Modules helpers.
  new         Create new content for your site
  server      A high performance webserver
  version     Print Hugo version and environment info

Flags:
  -b, --baseURL string             hostname (and path) to the root, e.g. https://spf13.com/
  -D, --buildDrafts                include content marked as draft
  -E, --buildExpired               include expired content
  -F, --buildFuture                include content with publishdate in the future
      --cacheDir string            filesystem path to cache directory
      --cleanDestinationDir        remove files from destination not found in static directories
      --clock string               set the clock used by Hugo, e.g. --clock 2021-11-06T22:30:00.00+09:00
      --config string              config file (default is hugo.yaml|json|toml)
      --configDir string           config dir (default "config")
  -c, --contentDir string          filesystem path to content directory
      --debug                      debug output
  -d, --destination string         filesystem path to write files to
      --disableKinds strings       disable different kind of pages (home, RSS etc.)
      --enableGitInfo              add Git revision, date, author, and CODEOWNERS info to the pages
  -e, --environment string         build environment
      --forceSyncStatic            copy all files when static is changed.
      --gc                         enable to run some cleanup tasks (remove unused cache files) after the build
  -h, --help                       help for hugo
      --ignoreCache                ignores the cache directory
      --ignoreVendorPaths string   ignores any _vendor for module paths matching the given Glob pattern
  -l, --layoutDir string           filesystem path to layout directory
      --logLevel string            log level (debug|info|warn|error)
      --minify                     minify any supported output format (HTML, XML etc.)
      --noBuildLock                don't create .hugo_build.lock file
      --noChmod                    don't sync permission mode of files
      --noTimes                    don't sync modification time of files
      --panicOnWarning             panic on first WARNING log
      --poll string                set this to a poll interval, e.g --poll 700ms, to use a poll based approach to watch for file system changes
      --printI18nWarnings          print missing translations
      --printMemoryUsage           print memory usage to screen at intervals
      --printPathWarnings          print warnings on duplicate target paths etc.
      --printUnusedTemplates       print warnings on unused templates.
      --quiet                      build in quiet mode
      --renderToMemory             render to memory (only useful for benchmark testing)
  -s, --source string              filesystem path to read files relative from
      --templateMetrics            display metrics about template executions
      --templateMetricsHints       calculate some improvement hints when combined with --templateMetrics
  -t, --theme strings              themes to use (located in /themes/THEMENAME/)
      --themesDir string           filesystem path to themes directory
      --trace file                 write trace to file (not useful in general)
  -v, --verbose                    verbose output
  -w, --watch                      watch filesystem for changes and recreate as needed

Use "hugo [command] --help" for more information about a command.

Удалите все оставшиеся файлы в папке, так как они больше не нужны.

$ sudo rm -rf *.*

Шаг 5 - Создание нового сайта Hugo

Выполните следующую команду, чтобы создать новый сайт Hugo.

$ sudo hugo new site howtoforge

Вы получите следующий вывод.

Поздравляем! Ваш новый сайт Hugo был создан в /home/navjot/hugo/howtoforge.

Всего несколько шагов...

1. Перейдите в текущую директорию /home/navjot/hugo/howtoforge.
2. Создайте или установите тему:
   - Создайте новую тему с помощью команды "hugo new theme "
   - Установите тему с https://themes.gohugo.io/
3. Отредактируйте hugo.toml, установив свойство "theme" в имя темы.
4. Создайте новый контент с помощью команды "hugo new content /.".
5. Запустите встроенный веб-сервер с помощью команды "hugo server --buildDrafts".

Смотрите документацию на https://gohugo.io/.

Запустите команду tree, чтобы проверить структуру сайта.

$ tree howtoforge/

Вы получите следующий вывод.

howtoforge/
??? archetypes
?   ??? default.md
??? assets
??? content
??? data
??? hugo.toml
??? i18n
??? layouts
??? static
??? themes

8 directories, 2 files

Перейдите в директорию Hugo.

$ cd howtoforge

Шаг 6 - Установка темы Hugo

Следующий шаг — установить тему Hugo. Существует два способа сделать это, и оба требуют Git. Первый метод прост и включает клонирование репозитория темы с GitHub. Это полезно в большинстве случаев и самый простой способ. Обновление через этот метод легко, хотя он включает загрузку много ненужных вещей, которые вам не нужны. Есть некоторые темы, особенно платные, которые не имеют репозитория GitHub, откуда вы можете их получить. Такие темы обычно предлагаются в виде сжатого архива. В этом случае вам нужно вручную извлечь архив и поддерживать тему в актуальном состоянии. Третий метод включает получение темы в качестве подмодуля Git. Это требует инициализации вашей директории Hugo как репозитория Git. Это рекомендуемый метод и полезен, если вы хотите развернуть свой сайт на GitHub, Netlify или любом другом хостинге. Публикация вашего сайта Hugo на GitHub обеспечивает автоматическое резервное копирование без дополнительных усилий.

Мы рассмотрим все три метода. Существует еще один метод установки темы Hugo с использованием модулей Hugo Go. Этот метод работает только если тема доступна как модуль Hugo. Однако мы не будем его рассматривать, так как это выходит за рамки данной статьи.

Метод 1 - Клонирование темы Hugo

Это самый распространенный метод установки темы Hugo. Для нашего руководства мы будем устанавливать тему Paper. Перейдите в директорию Hugo.

$ cd /var/www/html/hugo/howtoforge

Выполните следующую команду, чтобы клонировать репозиторий темы с GitHub. Флаг --depth=1 только загружает последний коммит.

$ sudo git clone https://github.com/nanxiaobei/hugo-paper themes/Paper --depth=1

Чтобы обновить тему, загруженную этим методом, выполните следующие команды.

$ cd ~/hugo/howtoforge/themes/Paper
$ sudo git pull

Метод 2 - Установка темы из сжатого архива

Это самый простой метод из всех. Получите архив файла темы. У темы Paper нет раздела релизов, поэтому вы не можете загрузить конкретную версию. Поэтому мы загрузим архив мастер-ветки GitHub. Вы можете получить ссылку с ее страницы репозитория GitHub.

$ cd ~
$ wget https://github.com/nanxiaobei/hugo-paper/archive/refs/heads/main.zip

Извлеките архив в директорию тем. Флаг -q подавляет вывод, а флаг -d указывает выходной каталог.

$  sudo unzip -q main.zip -d /var/www/html/hugo/howtoforge/themes/

Чтобы обновить тему, вам нужно загрузить последний архив и снова извлечь его. Убедитесь, что вы сделали резервную копию всех измененных файлов.

Нижние два метода работают только если ваш сайт Hugo размещен как проект Git. В противном случае вам не нужно использовать следующие методы.

Метод 3 - Установка темы как подмодуля Git

Перейдите в папку Hugo.

$ cd /var/www/html/hugo/howtoforge

Инициализируйте папку Hugo как репозиторий Git. Это важный шаг. Это позволяет вам отправить ваш сайт Hugo на GitHub для использования позже для хостинга с помощью Netlify, AWS, Vercel и т.д.

$ sudo git init

Выполните следующую команду, чтобы добавить тему как подмодуль Git.

$ sudo git submodule add https://github.com/nanxiaobei/hugo-paper themes/paper

Чтобы обновить тему, добавленную как подмодуль, выполните следующую команду из папки Hugo.

$ sudo git submodule update --remote --merge

Настройка Hugo

После установки темы любым из выбранных вами методов откройте файл hugo.toml в корневом каталоге вашего Hugo. Начиная с версии Hugo v0.110.0, файл конфигурации по умолчанию называется hugo.toml. Если вы используете более старую версию Hugo, вы найдете файл config.toml в вашей директории Hugo.

$ sudo nano hugo.toml

Добавьте следующую строку в файл. Значение должно соответствовать директории темы. Для темы Paper это будет директория hugo-paper-theme, если вы использовали установку из архива, или Paper, если вы использовали метод клонирования Git или подмодуля выше.

theme = 'hugo-paper-main'

Также измените значение переменной baseURL на доменное имя вашего сайта. И измените title вашего веб-сайта.

Ваш файл конфигурации должен выглядеть следующим образом.

baseURL = 'https://hugo.example.com/'
languageCode = 'en-us'
title = 'Howtoforge Hugo Demo'
theme = 'hugo-paper-main'

После завершения сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.

Шаг 7 - Создание постов и страниц

Чтобы создать новый пост, выполните следующую команду.

$ sudo hugo new post/first-post.md

Это создаст новый файл markdown first-post.md с заголовком Первый пост в папке content/post. Откройте файл в вашем любимом редакторе и отредактируйте детали, написав что-то для вашего первого поста.

+++
title = 'Первый пост'
date = 2023-10-30T03:32:38Z
draft = true
+++
## Введение

Это жирный текст, а это *выделенный* текст.

Посетите сайт [Howtoforge](https://www.howtoforge.com)! 

Удалите draft = true, как только закончите писать пост. Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.

Чтобы создать новую страницу, выполните следующую команду.

$ sudo hugo new about.md

Это создаст новую страницу с заголовком О нас в папке content. Откройте ее и отредактируйте так же, как и пост.

Настройка темы

Перед публикацией нам нужно внести несколько изменений в тему, чтобы отобразить панель меню. Эти изменения будут сделаны в конфигурационном файле Hugo, а не в конфигурации темы.

Перейдите в директорию Hugo.

$ cd /var/www/html/hugo/howtoforge

Откройте файл hugo.toml для редактирования.

$ sudo nano hugo.toml

Вставьте следующий код внизу.

author = "Navjot Singh"
copyright = "Copyright © 2023, Navjot Singh; все права защищены."
paginate = 3
enableInlineShortcodes = true
# необходимо для рендеринга сырого HTML (например, , , , )
[markup]
  [markup.goldmark]
    [markup.goldmark.renderer]
      unsafe = true

[menu]
  [[menu.main]]
    identifier = "about"
    name = "О нас"
    url = "/about/"
    weight = 10

[taxonomies]
category = "категории"
tag = "теги"
series = "серии"

Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.

Это некоторые основные настройки, чтобы сделать сайт функциональным. Здесь мы настроили сайт для отображения 3 постов на странице, показываем страницу О нас как элемент меню и настроили категории, теги и серии постов. Мы также включили встроенные шорткоды Hugo и разрешили сырой HTML для рендеринга Goldmark Markdown. Вы можете отключить это, если не хотите встраивать сырой HTML в свои посты.

Шаг 8 - Публикация сайта Hugo

Чтобы построить и опубликовать сайт, просто выполните следующую команду.

$ sudo hugo

Вы получите аналогичный вывод.

Начало сборки сайтов …
hugo v0.119.0-b84644c008e0dc2c4b67bd69cccf87a41a03937e+extended linux/amd64 BuildDate=2023-09-24T15:20:17Z VendorInfo=gohugoio


                   | EN
-------------------+-----
  Pages            |  7
  Paginator pages  |  0
  Non-page files   |  0
  Static files     | 11
  Processed images |  0
  Aliases          |  3
  Sitemaps         |  1
  Cleaned          |  0

Всего за 46 мс

Это создает и публикует статический сайт Hugo в папке public. Это файлы, которые нам нужно указать в конфигурации Nginx, чтобы сайт работал. Запустите команду снова после внесения изменений, и ваш сайт обновится в кратчайшие сроки.

Шаг 9 - Установка SSL

Прежде чем продолжить, нам нужно установить инструмент Certbot и установить SSL-сертификат для нашего домена.

Чтобы установить Certbot, мы будем использовать установщик пакетов Snapd. Snapd всегда содержит последнюю стабильную версию Certbot, и вы должны использовать именно ее.

Инструмент Snapd требует репозиторий Epel для работы.

$ sudo dnf install epel-release -y

Мы будем использовать Snapd для установки Certbot. Установите Snapd.

$ sudo dnf install snapd -y

Включите и запустите службу Snap.

$ sudo systemctl enable snapd.socket --now

Создайте необходимые ссылки для работы Snapd.

$ sudo ln -s /var/lib/snapd/snap /snap
$ echo 'export PATH=$PATH:/var/lib/snapd/snap/bin' | sudo tee -a /etc/profile.d/snapd.sh

Убедитесь, что ваша версия snapd актуальна. Подождите несколько секунд перед выполнением следующих команд.

$ sudo snap install core
$ sudo snap refresh core

Установите Certbot.

$ sudo snap install --classic certbot

Используйте следующую команду, чтобы убедиться, что команда Certbot может быть выполнена, создав символическую ссылку в директории /usr/bin.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Проверьте установку.

$ certbot --version
certbot 2.7.3

Сгенерируйте SSL-сертификат.

$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d hugo.example.com

Вышеуказанная команда загрузит сертификат в директорию /etc/letsencrypt/live/hugo.example.com на вашем сервере.

Сгенерируйте сертификат группы Диффи-Хеллмана.

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Проверьте службу планировщика обновления Certbot.

$ sudo systemctl list-timers

Вы найдете snap.certbot.renew.service как одну из запланированных служб.

NEXT                        LEFT          LAST                        PASSED    UNIT                         ACTIVATES
Wed 2023-10-29 10:00:17 UTC 57min left    Wed 2023-10-18 08:49:39 UTC 12min ago dnf-makecache.timer          dnf-makecache.service
Wed 2023-10-29 12:18:00 UTC 3h 15min left -                           -         snap.certbot.renew.timer     snap.certbot.renew.service
Thu 2023-10-30 00:00:00 UTC 14h left      Wed 2023-10-18 08:10:08 UTC 52min ago logrotate.timer              logrotate.service

Выполните пробный запуск процесса, чтобы проверить, работает ли обновление SSL.

$ sudo certbot renew --dry-run

Если вы не видите ошибок, вы готовы. Ваш сертификат будет автоматически обновляться.

Шаг 10 - Настройка Nginx

Создайте и откройте файл /etc/nginx/conf.d/hugo.conf для редактирования.

$ sudo nano /etc/nginx/conf.d/hugo.conf

Вставьте следующий код в файл hugo.conf. Замените все вхождения hugo.example.com на ваш домен.

## принудить HTTPS
server {
  listen 80;
  listen [::]:80;
  server_name hugo.example.com;
  return 301 https://$server_name$request_uri;
}

server {
  listen 443 ssl http2;
  listen [::]:443 ssl http2;
  server_name hugo.example.com;

  root /home/navjot/hugo/howtoforge/public;
  index index.html
  
  access_log /var/log/nginx/hugo.access.log;
  error_log /var/log/nginx/hugo.error.log;
  client_max_body_size 20m;
  gzip on;

  http2_push_preload on; # Включить HTTP/2 Server Push

  ssl_certificate     /etc/letsencrypt/live/hugo.example.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/hugo.example.com/privkey.pem;
  ssl_trusted_certificate /etc/letsencrypt/live/hugo.example.com/chain.pem;
  ssl_session_timeout 1d;

  # Включить версии TLS (TLSv1.3 требуется для предстоящего HTTP/3 QUIC).
  ssl_protocols TLSv1.2 TLSv1.3;

  # Включить 0-RTT для TLSv1.3. Используйте $ssl_early_data при обратном проксировании, чтобы
  # предотвратить атаки повторного воспроизведения.
  #
  # @see: https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_early_data
  ssl_early_data on;

  ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384';
  ssl_prefer_server_ciphers on;
  ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
  ssl_session_cache shared:SSL:50m;
  ssl_session_tickets off;

  # OCSP Stapling ---
  # извлекать OCSP записи из URL в ssl_certificate и кэшировать их
  ssl_stapling on;
  ssl_stapling_verify on;
  ssl_dhparam /etc/ssl/certs/dhparam.pem;

  add_header X-Early-Data $tls1_3_early_data;
  
  location / {
      try_files $uri $uri/ =404;
  }
  
  # Медиа
  location ~* \\.jpg|jpeg|gif|png|ico|cur|gz|svg|mp4|ogg|ogv|webm|htc$ {
      expires 30d;
  }

  # CSS и Js
  location ~* \\.css|js$ {
      expires 7d;
  }
}

# Этот блок полезен для отладки TLS v1.3. Пожалуйста, не стесняйтесь удалять это
# и использовать переменную `$ssl_early_data`, предоставленную NGINX, напрямую, если вы
# хотите сделать это.
map $ssl_early_data $tls1_3_early_data {
  "~." $ssl_early_data;
  default "";
}

Вышеуказанная конфигурация перенаправит все HTTP-запросы на HTTPS и будет служить прокси для службы Hugo, чтобы обслуживать ее через ваш домен.

Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.

Откройте файл /etc/nginx/nginx.conf для редактирования.

$ sudo nano /etc/nginx/nginx.conf

Добавьте следующую строку перед строкой include /etc/nginx/conf.d/*.conf;.

server_names_hash_bucket_size  64;

Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.

Проверьте вашу конфигурацию Nginx.

$ sudo nginx -t

Если вы не видите ошибок, значит, вы готовы. Перезагрузите сервер Nginx.

$ sudo systemctl reload nginx

Шаг 11 - Настройка SELinux

Измените контекст безопасности файла для OpenEMR.

$ sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html/hugo/howtoforge/public(/.*)?"

Примените политику.

$ sudo restorecon -Rv /var/www/html/hugo/howtoforge/public/

Разрешите Nginx подключаться к сети.

$ sudo setsebool -P httpd_can_network_connect 1

Шаг 12 - Запуск сайта

Теперь вы можете проверить вашу установку, открыв https://hugo.example.com в вашем веб-браузере. Вы получите следующую страницу, указывающую на успешную установку.

Главная страница Hugo

Шаг 13 - Обновление Hugo

Обновление Hugo довольно просто. Скачайте последнюю версию с страницы релизов Hugo на GitHub.

$ cd /var/www/html/hugo
$ sudo wget https://github.com/gohugoio/hugo/releases/download/v0.119.0/hugo_extended_0.119.0_linux-amd64.tar.gz

Извлеките архив.

$ sudo tar -xzf hugo_extended_0.119.0_linux-amd64.tar.gz

И замените бинарный файл Hugo на последнюю версию. Флаг -f перезаписывает бинарный файл без запроса. Вы можете использовать флаг -i вместо этого, если хотите, чтобы был запрос на перезапись.

$ sudo mv -f hugo /usr/bin/hugo

Вот и все. Обновление Hugo так же просто, как замена бинарного файла.

Шаг 14 - Резервное копирование и восстановление Hugo

Чтобы сделать резервную копию, создайте архив всей папки Hugo.

$ cd /var/www/html/hugo
$ sudo tar -czvf howtoforge.tar.gz howtoforge/

Чтобы восстановить его на новом сервере, извлеките архив и установите бинарный файл, и вы готовы к работе.

$ cd /var/www/html/hugo
$ sudo tar -xzf howtoforge.tar.gz

Заключение

Это завершает наше руководство о том, как настроить генератор статических сайтов Hugo на вашем сервере Rocky Linux 9 с использованием Nginx. Если у вас есть какие-либо вопросы или отзывы, делитесь ими в комментариях ниже.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.