Иногда возникает необходимость добавить пользовательские настройки для отдельно взятого домена в файл конфигурации Apache или Nginx. Добавление настроек в файл вручную не даст результата, т.к. внесенные изменения будут потеряны при следующей перезаписи самой панелью DirectAdmin. Но разработчики DirectAdmin учли возможность внесения изменений через шаблоны.

Стандартные шаблоны расположены здесь /usr/local/directadmin/data/templates

Рассмотрим создание собственных шаблонов на примере конфигурации Nginx+php-fpm. Почему именно эта конфигурация? Потому, что файл nginx_php.conf можно использовать в качестве пользовательского шаблона, но установка переменных в нём действовать не будет. Т.е. внесение переменных типа CUSTOM дадут ошибку, т.к. не будет замены на значение.

Подготовка шаблонов

cd /usr/local/directadmin/data/templates
mkdir -p custom
cp -pf nginx_server*.conf custom/

Изменение шаблонов

Вносим изменения в файлы. Например заменяем переменную NGINX_PHP_CONF в файле nginx_server.conf на часть содержимого файла nginx_php.conf. Далее добавляем необходимые переменные.

# use fastcgi for all php files
location ~ \.php$
{
    |*if CUSTOM2!=""|
    |CUSTOM2|
    |*else|
    try_files $uri =404;
    |*endif|
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    include /etc/nginx/fastcgi_params;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include /etc/nginx/nginx_limits.conf;

    if (-f $request_filename)
    {
            fastcgi_pass unix:/usr/local/php|PHP1_RELEASE|/sockets/|USER|.sock;
    }
}

Применяем новую конфигурацию

echo "action=rewrite&value=nginx" >> /usr/local/directadmin/data/task.queue
/usr/local/directadmin/dataskq d

Пользовательские настройки

Теперь можно вносить изменения через DirectAdmin с правами администратора. Переходим по ссылке Конфигурация HTTPD (http://IPилиИМЯСЕРВЕРА:2222/CMD_CUSTOM_HTTPD) и вносим соответствующие настройки для отдельно взятого домена. В нашем примере изменения будут внесены в переменную CUSTOM2

Добавить комментарий