Веб-сервер
Используя Plesk SDK API, расширение может изменять конфигурацию веб-сервера.
- Класс pm_Hook_WebServer позволяет описывать персональные директивы для доменов, которые должны быть добавлены к файлам конфигурации.
- Класс pm_WebServer используется, чтобы дать инструкции веб-серверу для обновления конфигурации для указанного домена.
Примечание: Следующий пример проекта предоставлен Plesk, чтобы проиллюстрировать добавление изменений в конфигурационные файлы веб-сервера: https://github.com/plesk/ext-web-server.
Добавление персональной конфигурации
Следующие методы класса pm_Hook_WebServer используются, чтобы описать персональные директивы, добавленные расширением в конфигурационные файлы веб-сервера:
-
getDomainApacheConfig(pm_Domain $domain)
– возвращает строку, которая будет добавлена к конфигурации Apache в качестве персональной директивы<VirtualHost></VirtualHost>
. -
getDomainNginxConfig(pm_Domain $domain)
– возвращает строку, которая будет добавлена к конфигурации nginx в качестве персональной директивы{...}
, когда nginx используется как основной веб-сервер. -
getDomainNginxProxyConfig((pm_Domain $domain)
– возвращает строку, которая будет добавлена к конфигурации nginx в качестве персональной директивы{...}
, когда nginx используется в режиме proxy. -
getDomainIisConfig(pm_Domain $domain)
– возвращает XML как строку, которая будет добавлена к конфигуратору Plesk IIS.
Эти методы будут вызываться каждый раз при перенастройке домена.
class Modules_WebServer_WebServer extends pm_Hook_WebServer
{
public function getDomainApacheConfig(pm_Domain $domain)
{
return '# Apache config for domain: ' . $domain->getName();
}
public function getDomainNginxConfig(pm_Domain $domain)
{
return '# Nginx config for domain name: ' . $domain->getName();
}
}
Настройки конфигурации домена
Метод pm_WebServer::updateDomainConfiguration() используется для того, чтобы немедленно обновить конфигурацию указанного домена. Например, это можно сделать после того, как какая-либо дополнительная служба была активирована расширением на этом домене.
$webServerManager = new \pm_WebServer();
$webServerManager->updateDomainConfiguration(new \pm_Domain(1));