Если PHP будет использоваться в Hugo, например, для контактной формы, полезно использовать для тестирования локальный веб-сервер c поддержкой PHP.
1. Выбор локального сервера
Локальные серверы позволяют запускать свой сайт без использования хостинга, прямо на домашнем компьютере. Вы можете выбрать локальный сервер, в зависимости от ваших потребностей, например: Open Server Panel, MAMP, XAMPP, Denwer и WampServe.
1.1. Open Server Panel
Open Server Panel (OSPanel) — это портативная программная среда, созданная специально для веб-разработчиков.
Приложение работает на ОС Windows, поддерживает Apache и Nginx в качестве веб-сервера и предоставляет возможность запускать различные версии PHP, MySQL, PostgreSQL, MongoDB и других популярных модулей.
OSPanel — некоммерческий проект, распространяется бесплатно.
Перейти к скачиванию этой программы для Windows можно на официальном сайте. Подробная документация по установке и настройке находится здесь.
1.1.1. Подключение Hugo к локальному серверу OSPanel
Установим OSPanel, например на диск D:
в папку OSPanel
.
OSPanel после установки создает следующую структуру каталогов:
.
├── addons # Дополнения
│ └── <имя_дополнения> # Основной каталог дополнения
│ └── ospanel_data # Служебные файлы (исходники настроек и конфигов)
├── bin # Общие исполняемые файлы
├── config # Настройки
│ ├── <имя_модуля> # Настройки модуля
│ │ ├── default # Каталог профиля Default
│ │ │ ├── templates # Шаблоны конфигурации
│ │ │ └── settings.ini # Настройки модуля для профиля Default
│ │ └── module.ini # Базовые настройки модуля (вкл/выкл + имя профиля)
│ ├── menu.ini # Настройки меню
│ └── program.ini # Настройки программы
├── data # Хранилище данных (базы данных и др.)
├── home # Пользовательские проекты (домены)
├── licenses # Лицензии на компоненты сторонних производителей
├── logs # Файлы журналов
│ ├── domains # Журналы проектов
│ └── mail # Хранилище почты
├── modules # Модули
│ └── <имя_модуля> # Основной каталог модуля
│ └── ospanel_data # Служебные файлы (исходники настроек и конфигов)
├── system # Служебный каталог программы
│ └── lang # Языковые файлы
├── temp # Временные файлы
└── user # Пользовательские данные
└── ssl # Пользовательские файлы SSL (ключи, сертификаты и др.)
Сначала создадим подкаталог с именем нового проекта в каталоге home
, например: webpractica
.
Далее, в корневом каталоге проекта создадим подкаталоги .osp
и public
.
Настройки проекта хранятся в файле <проект>\.osp\project.ini
.
В каталоге .osp
создадим файл настройки пректа project.ini
со следующим содержимым:
[имя_домена]
php_engine = ...
public_dir = {base_dir}\public
Замените [имя_домена]
на желаемое имя домена вашего проекта.
Задайте версию движка PHP, которую вы хотите использовать для обработки PHP-файлов этого домена, в параметре php_engine
.
[!important] Значение
[имя_домена]
должно совпадать с именем домена, заданным в файле настроек проекта Hugoconfig.toml
, в строкеbaseURL
.
Например, если baseURL = "https://www.webpractica.ru/"
, содержимое файла project.ini
, должно быть:
[www.webpractica.ru]
php_engine = PHP-8.3
public_dir = {base_dir}\public
Ниже приведена структура каталогов для нашего примера.
D:
└── OSPanel
├── addons # Дополнения
│ └── <имя_дополнения> # Основной каталог дополнения
│ └── ospanel_data # Служебные файлы (исходники настроек и конфигов)
├── bin # Общие исполняемые файлы
├── config # Настройки
│ ├── <имя_модуля> # Настройки модуля
│ │ ├── default # Каталог профиля Default
│ │ │ ├── templates # Шаблоны конфигурации
│ │ │ └── settings.ini # Настройки модуля для профиля Default
│ │ └── module.ini # Базовые настройки модуля (вкл/выкл + имя профиля)
│ ├── menu.ini # Настройки меню
│ └── program.ini # Настройки программы
├── data # Хранилище данных (базы данных и др.)
├── home # Пользовательские проекты (домены)
│ └── webpractica # Пример домена
│ │ ├── .osp
│ │ │ └── project.ini # Файл настроек проекта
│ │ └── public # Каталог для размещения папок и файлов сайта, сгентерированных Hugo
├── licenses # Лицензии на компоненты сторонних производителей
├── logs # Файлы журналов
│ ├── domains # Журналы проектов
│ └── mail # Хранилище почты
├── modules # Модули
│ └── <имя_модуля> # Основной каталог модуля
│ └── ospanel_data # Служебные файлы (исходники настроек и конфигов)
├── system # Служебный каталог программы
│ └── lang # Языковые файлы
├── temp # Временные файлы
└── user # Пользовательские данные
└── ssl # Пользовательские файлы SSL (ключи, сертификаты и др.)
1.1.2. Перенаправление общедоступного (Public) каталога Hugo в каталог локального сервера.
Для того чтобы Hugo генерировал папки и файлы сайта в нужный нам каталог, нужно прописать путь в параметре publishDir в файле конфигурации Hugo.
Ниже приведена конфигурация в файле config.toml, для нашего примера:
baseURL = "https://www.webpractica.ru/"
publishDir = "D:/OSPanel/home/webpractica/public"
Теперь, после выполнения команды hugo
из корня нашего проекта Hugo, папки и файлы сайта будут сгенерированы в каталоге пользовательского домена OSPanel.
Для нашего примера, выполним в окне командной строки (cmd):
d:
cd D:\Hugo\Sites\webpractica
hugo --gc --minify
1.2. MAMP
MAMP - локальная серверная среда для веб-разработки с Apache, Nginx, PHP и MySQL для macOS и Windows, есть платное и бесплатное решение.
1.2.1. Установка MAMP
Скачйте MAMP с сайта и запустите установку.
Локальная установка по умолчанию, происходит в папку Programs
(путь установки можно изменить).
Производитель запутывает пользователей, чтобы направить их к платной версии MAMP Pro. В папке Programs
есть только одна иконка для версии MAMP Pro. Приложение MAMP.app скрыто в каталоге Programs/MAMP
. Однако на панели запуска также есть иконка для запуска версии MAMP. У иконки серый фон в отличие от версии MAMP Pro с бирюзовым фоном.
1.2.2. Настройка MAMP
Самое важное при настройке MAMP и подключении к Hugo — это корневой каталог. Он настраивается в настройках в разделе Server
.
Нажатие на иконку MAMP запускает минимальный интерфейс. Здесь можно задать веб-сервер - Apache или Nginx - и версию PHP. Шестеренка вверху слева открывает диалог настроек.
В разделе «Настройки» — «Общие» можно включить «Запустить сервер», «Проверить наличие обновлений» и «Остановить сервер». «Кэш» отключить, а «Открыть страницу WebStart» необходимо только в том случае, если, например, вам нужна phpMyAdmin
база данных MySQL. «WebStart» также можно запустить на стартовой странице приложения.
Порты можно не изменять. Порт Apache - 8888, проект Hugo вызывается localhost:8888
в браузере.
В разделе Настройки - Сервер - корневой каталог для веб-страниц Hugo можно задать с помощью мини-кнопки «Select». Это самая важная настройка. Вы можете сохранить свой проект локально, например, в каталоге /Users/myWeb/mamp-sites/mySite
.
Настройки - Облако - бесплатная версия MAMP не имеет доступа к облаку. В случае выбора Облака, вам будет предложено купить платную версию.
1.2.3. Подключение Hugo к MAMP
Обычно содержимое каталога public
копируется в корневой каталог веб-сервера через sFTP. Файл конфигурации проекта Hugo config.toml
содержит параметр доменного имени baseurl
.
Для локальной установки MAMP, в config.toml
необходимо установить: baseURL = ""
.
1.2.4. Перенаправление публичного каталога Hugo в локальный каталог MAMP
Команда CLI терминала hugo в каталоге проекта Hugo создает новую статическую версию веб-сайта Hugo. По умолчанию эти данные доступны в каталоге Hugo project/public. Теперь можно копировать содержимое public в корневой каталог MAMP после каждой сборки. Но это очень неудобно.
Можно редактировать и сохранять свои проекты Hugo, например, в Apple iCloud. Это дает доступ к проектам со всех устройств с доступом к iCloud. При таком подходе MAMP, конечно, должен быть установлен по одному и тому же пути на всех устройствах.
Как уже было описано выше, для примера, локальный корневой каталог проекта MAMP — /Users/myWeb/mamp-sites/mySite
. Теперь нужно заставить Хьюго записывать файлы в этот каталог при создании статической версии. Для этого нужно вставить в config.toml
строку publishDir = "/Users/myWeb/mamp-sites/mySite"
.
Ниже приведен пример настроек в config.toml:
# baseURL = "https://mySite.ru/"
baseURL = ""
publishDir = "/Users/myWeb/mamp-sites/mySite"
1.2.5. MAMP logs
Если что-то не работает, иногда полезно посмотреть логи MAMP. Логи Apache, MySQL и PHP находятся в каталоге Programs/MAMP/logs
.
1.2.6. Удаление MAMP
MAMP, а также установленный MAMP Pro можно полностью удалить из каталога Programs
, удалив Programs/MAMP
каталог и приложение «MAMP PRO.app» из каталога Programs
.
1.2.7. Заключение
Если вам не нужен PHP для вашего сайта, то вполне достаточно интегрированной в Hugo среды разработки. Но если PHP нужно использовать для каких-то динамических вещей, MAMP — это бесплатное и работающее решение. Перенаправление с помощью publishDir
делает это очень удобным.
[!WARNING] Важно, как только проект Hugo будет опубликован, нужно не забыть установить параметр
baseURL
обратно на доменное имя. Это не должно быть проблемой, поскольку вам не придется продолжать разрабатывать PHP-код. В какой-то момент эта часть будет завершена, и вам больше не нужно будет запускать MAMP. Интегрированная среда разработки Hugo по-прежнему предоставляет все подlocalhost:1313
.