Интеграция с CyberPanel
В этом руководстве объясняется, как настроить интеграцию Ultimate Multisite с CyberPanel, чтобы домены, привязанные в вашей сети, автоматически добавлялись (и удалялись) в CyberPanel в качестве виртуальных хостов, с возможностью автоматического предоставления SSL-сертификатов через Let's Encrypt.
Что это делает
- Когда домен привязывается в Ultimate Multisite, интеграция обращается к API CyberPanel, чтобы создать виртуальный хост для этого домена.
- Когда привязка домена удаляется, интеграция вызывает API для удаления соответствующего виртуального хоста.
- Если включен автоматический SSL, интеграция немедленно инициирует выдачу сертификата Let's Encrypt после создания виртуального хоста.
- Опционально добавляет/удаляет псевдоним
www.в зависимости от настройки «Автоматическое создание поддомена www» в настройках привязки домена.
Предварительные требования
- Работающий экземпляр CyberPanel (рекомендуется v2.3 или новее), доступный с вашего сервера WordPress.
- Существующий сайт в CyberPanel, который уже обслуживает корневую папку вашей сети WordPress. Интеграция прикрепляет новые виртуальные хосты к этому серверу.
- Включенный доступ к API CyberPanel. Для аутентификации используются имя пользователя и пароль администратора CyberPanel.
- Ваши DNS-записи для привязанных доменов должны уже указывать на IP-адрес вашего сервера, прежде чем автоматический SSL сможет выдать действительный сертификат.
Требования
В файле wp-config.php должны быть определены следующие константы:
define('WU_CYBERPANEL_HOST', 'https://your-cyberpanel-host:8090');
define('WU_CYBERPANEL_USERNAME', 'your_admin_username');
define('WU_CYBERPANEL_PASSWORD', 'your_admin_password');
define('WU_CYBERPANEL_PACKAGE', 'Default');
Опционально вы также можете определить:
define('WU_CYBERPANEL_AUTO_SSL', true); // По умолчанию: true — выдает SSL Let's Encrypt после создания домена
define('WU_CYBERPANEL_PHP_VERSION', 'PHP 8.2'); // По умолчанию: PHP 8.2
define('WU_CYBERPANEL_EMAIL', '[email protected]'); // Используется для контакта при регистрации SSL-сертификата
Инструкции по настройке
1. Включение API CyberPanel
- Войдите в панель управления CyberPanel в качестве администратора.
- Перейдите в Security > SSL и убедитесь, что SSL активен на самой панели CyberPanel (это необходимо для безопасных вызовов API).
- API CyberPanel по умолчанию доступен по адресу
https://your-server-ip:8090/api/. Для включения дополнительных шагов не требуется — он включен по умолчанию для административных пользователей.
2. Добавление констант в wp-config.php
Добавьте следующие константы в файл wp-config.php перед строкой /* That's all, stop editing! */:
define('WU_CYBERPANEL_HOST', 'https://your-cyberpanel-host:8090');
define('WU_CYBERPANEL_USERNAME', 'admin');
define('WU_CYBERPANEL_PASSWORD', 'your_secure_password');
define('WU_CYBERPANEL_PACKAGE', 'Default');
Чтобы включить автоматический SSL (рекомендуется):
define('WU_CYBERPANEL_AUTO_SSL', true);
define('WU_CYBERPANEL_EMAIL', '[email protected]');
3. Включение интеграции
- В административной панели сети WordPress перейдите в Ultimate Multisite > Settings.
- Перейдите на вкладку Domain Mapping.
- Прокрутите вниз до Host Integrations.
- Включите интеграцию CyberPanel.
- Нажмите Save Changes.
4. Проверка подключения
Используйте встроенный тест подключения в мастере настроек:
- Перейдите в Ultimate Multisite > Settings > Domain Mapping > Host Integrations > CyberPanel.
- Нажмите Test Connection.
- Сообщение об успехе подтверждает, что плагин может получить доступ к API CyberPanel и правильно пройти аутентификацию.
Как это работает
Привязка домена (Domain Mapping)
Когда домен привязывается в Ultimate Multisite:
- Интеграция отправляет
POST-запрос на/api/createWebsiteна ваш хост CyberPanel. - CyberPanel создает новый виртуальный хост для домена в рамках настроенного пак ета.
- Корневая директория устанавливается так, чтобы указывать на корневую папку вашей сети WordPress.
- Когда привязка домена удаляется, интеграция вызывает
/api/deleteWebsite, чтобы очистить виртуальный хост.
Автоматический SSL (Auto-SSL)
Когда WU_CYBERPANEL_AUTO_SSL установлено в true:
- После создания виртуального хоста интеграция вызывает
/api/issueSSLдля домена. - CyberPanel запрашивает сертификат Let's Encrypt, используя проверку ACME HTTP-01.
- Сертификат автоматически продлевается CyberPanel до истечения срока действия.
Важно: DNS должен быть полностью пропэгатирован до IP-адреса вашего сервера, прежде чем Let's Encrypt сможет проверить домен. Если выдача SSL не удалась сразу после привязки, подождите, пока произойдет пропэгация DNS, и повторно запустите SSL из панели CyberPanel в разделе SSL > Manage SSL.
Поддомен www
Если в настройках привязки домена включено Auto-create www subdomain, интеграция также создает виртуальный хост-псевдоним для www.<домен> и, если включен автоматический SSL, выдает сертификат, покрывающий как основной домен (apex), так и вариант www.
Пересыльщики электронной почты (Email Forwarders)
Когда активен аддон Ultimate Multisite: Emails, CyberPanel также может предоставлять пересыльщики электронной почты для клиентов. Пересыльщики маршрутизируют сообщения с адреса домена на другой почтовый ящик без создания полноценного почтового ящика, что полезно для псевдонимов типа [email protected] или [email protected].
Перед включением пересыльщиков для клиентов:
- Убедитесь, что константы CyberPanel выше настроены и тест подключения пройден.
- В настройках аддона Emails включите поставщика электронной почты CyberPanel.
- Убедитесь, что домен клиента уже существует в CyberPanel, прежде чем создавать пересыльщик.
- Создайте тестовый пересыльщик и отправьте через него сообщение, прежде чем предлагать эту функцию на рабочих планах.
Если создание пересыльщика не удалось, сначала проверьте журналы активности Ultimate Multisite, а затем убедитесь в CyberPanel, что исходный домен существует и что пользователь API имеет права на управление электронной почтой.
Справочник конфигурации
| Константа | Требуется | По умолчанию | Описание |
|---|---|---|---|
WU_CYBERPANEL_HOST | Да | — | Полный URL вашего экземпляра CyberPanel, включая порт, например, https://cp.example.com:8090 |
WU_CYBERPANEL_USERNAME | Да | — | Имя пользователя администратора CyberPanel |
WU_CYBERPANEL_PASSWORD | Да | — | Пароль админист ратора CyberPanel |
WU_CYBERPANEL_PACKAGE | Да | Default | Пакет хостинга CyberPanel, который будет назначен новым виртуальным хостам |
WU_CYBERPANEL_AUTO_SSL | Нет | true | Выдавать SSL-сертификат Let's Encrypt после создания домена |
WU_CYBERPANEL_PHP_VERSION | Нет | PHP 8.2 | Версия PHP для новых виртуальных хостов (должна соответствовать версии, установленной в CyberPanel) |
WU_CYBERPANEL_EMAIL | Нет | — | Контактный email для регистрации SSL-сертификата |
Важные примечания
- API CyberPanel использует аутентификацию токенов на основе сессий. Интеграция автоматически обрабатывает получение токенов при каждом вызове API.
- Ваша учетная запись администратора CyberPanel должна иметь права на создание и удаление сайтов.
- CyberPanel по умолчанию работает на порту
8090. Если ваш сервер использует брандмауэр, убедитесь, что этот порт доступен с сервера приложения WordPress. - Интеграция не управляет DNS-записями. Вы должны указать DNS домена на IP-адрес вашего сервера, прежде чем привязывать домен в Ultimate Multisite.
- Если вы используете OpenLiteSpeed (OLS), после изменений виртуального хоста автоматически запускается мягкая перезагрузка. Ручное вмешательство не требуется.
Устранение неполадок
Отказано в подключении к API (API Connection Refused)
- Убедитесь, что порт
8090открыт в брандмауэре вашего сервера. - Подтвердите, что значение
WU_CYBERPANEL_HOSTвключает правильный протокол (https://) и порт. - Проверьте, что ваш SSL-сертификат CyberPanel действителен; самоподписанные сертификаты могут вызвать сбои проверки TLS. Устанавливайте
WU_CYBERPANEL_VERIFY_SSLвfalseтолько в доверенных частных сетевых средах.
Ошибки аутентификации (Authentication Errors)
- Подтвердите, что ваши
WU_CYBERPANEL_USERNAMEиWU_CYBERPANEL_PASSWORDверны, войдя в CyberPanel напрямую. - CyberPanel блокирует учетные записи после нескольких неудачных попыток входа. Проверьте Security > Brute Force Monitor в CyberPanel, если происходит блокировка.
Домен не создан (Domain Not Created)
- Проверьте журнал активности Ultimate Multisite (Ultimate Multisite > Activity Logs) на наличие сообщений об ошибках API.
- Убедитесь, что пакет, указанный в
WU_CYBERPANEL_PACKAGE, существует в CyberPanel (Packages > List Packages). - Убедитесь, что домен не зарегистрирован уже как сайт в CyberPanel — попытка создания дублирующего сайта вернет ошибку.
SSL-сертификат не выдан (SSL Certificate Not Issued)
- Подтвердите, что DNS полностью пропэгатирован:
dig +short your-domain.comдолжен вернуть IP-адрес вашего сервера. - Let's Encrypt ограничивает количество запросов. Если вы недавно выдавали несколько сертификатов для одного и того же домена, подождите, прежде чем повторять попытку.
- Проверьте журналы SSL CyberPanel в разделе Logs > Error Logs для получения подробной информации о сбоях выдачи сертификата.
- В качестве запасного варианта вы можете выдать SSL вручную из CyberPanel: SSL > Manage SSL > выбрать домен > Issue SSL.
Ссылки
- Документация API CyberPanel: https://docs.cyberpanel.net/docs/category/api
- Управление SSL CyberPanel: https://docs.cyberpanel.net/docs/cyberpanel/SSL/manageSSL
- Ограничения Let's Encrypt: https://letsencrypt.org/docs/rate-limits/