Иногда возникает необходимость добавить пользовательские настройки для отдельно взятого домена в файл конфигурации 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
