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