Шпаргалка по настройкам Друпала, взята с сайта.
В этой статье речь пойдёт о переменных, которые не имеют пользовательского интерфейса для их конфигурации. Как правило, большинство пользователей Друпала не являются разработчиками и не лазят в код, а потому могут даже не подозревать о конфигурационных возможностях системы.
Я потратил немалое количество времени и нашёл все переменные, которые невозможно задать с помощью UI. В этот список вошли как некоторые настройки из settings.php, так и абсолютно недокументированные.
Некоторые переменные я сам узнал впервые, и был приятно удивлён этим открытием. Переменные, которые я счёл полезным к изучению, я выделил зелёным цветом. Переменные, которые я считаю знать обязательно - красным.
Остальные для ознакомления, чтобы просто держать в голове уровень возможностей Drupal 7.
Название переменной | Значение по умолчанию | Описание |
---|---|---|
404_fast_paths_exclude | /\/(?:styles)\// | Регулярное выражение для путей, которые не должны сразу отдавать 404 ошибку, если файл не был найден по этому пути. |
404_fast_paths | /\.(?:txt|png|gif|jpe?g |css|js|ico|swf|flv|cgi| bat|pl|dll|exe|asp)$/i | Регулярное выражение для расширений файлов, для которых можно сразу отдавать 404 ошибку (без дополнительных проверок), если такой файл не был найден на сервере. |
404_fast_html | Слишком большое, поэтому ссылка. | HTML, который будет подставлен для отображение 404 страницы при использовании drupal_fast_404(). |
actions_max_stack | 35 | Максимальное количество действий (модуль Actions, hook_action_info()), которое может выполняться за один раз после выполнения определённых событий. |
admin_compact_mode | FALSE | Включение компактного режима для админки. В этом режиме обычно скрываются лишний текст (описания) и прочие мелочи. |
allow_authorize_operations | TRUE | Разрешение на выполнение различных авторизационных операций, не требующих загрузки Друпала. Например, деплой или обновление модулей. Не путать с авторизацией пользователей на сайте. Рекомендую отключать эту переменную на рабочем сайте, для повышение безопасности. |
allow_insecure_uploads | 0 | Контроль за загрузкой потенциально проблемных файлов. К ним относятся файлы с nullbytes, исполняемые файлы и тд. |
blocked_ips | NULL | Массив с ip адресами, для которых не должен загружаться сайт. Значение этой переменной нельзя задать через UI. Однако через UI можно закинуть список блокированных адресов в таблицу {blocked_ips}, откуда будут браться данные, если не задана переменная. |
cache_backends | array() | Массив с путями к файлам с классами, в которых реализованы системы хранения кэшей, альтернативные базе данных (DrupalDatabaseCache). |
cache_class_[CACHE-BIN] | NULL | Название класса, который реализует хранение кэша для указанного сегмента кэша [CACHE-BIN]. |
cache_default_class | DrupalDatabaseCache | Название класса, который реализует хранение кэша для сегментов, у которых не указан явно другой класс для тех же целей. |
comment_maintain_node_statistics | TRUE | При отключении данной настройки, Друпал перестаёт записывать статистику по использованию и количеству комментариев для материалов в таблицу {node_comment_statistics}. |
contact_threshold_limit | 5 | Максимальное количество писем, которое можно отправить с одного ip адреса через модуль Contact за определённый период времени (contact_threshold_window). |
contact_threshold_window | 3600 | Период времени (в секундах), за который можно отправить определённое количество писем (contact_threshold_limit) через модуль Contact. |
cron_key | drupal | Специальный ключ, с которым запускается крон в Друпале, чтобы избежать DDOS уязвимости. По умолчанию он задаётся вместе с установкой Друпала, однако при необходимости можно выставить вручную и менять его хоть каждый день. |
css_gzip_compression | TRUE | Переменная включает автоматическое создание и использование архивированных css файлов. Это улучшает скорость загрузки страницы за счёт уменьшения загружаемого клиентом трафика. |
drupal_http_request_function | FALSE | Возможность изменить функцию, которая будет вызываться для обработки HTTP запросов, вместо функции ядра drupal_http_request(). |
drupal_js_version_query_string | v= | Строка, которая добавляется к загружаемому js файлу для указания версии. Можно изменять для динамической передачи каких-либо аргументов в подгружаемые js файлы. |
drupal_private_key | 0 | Используется для генерации уникальных значений (хэшей). Если переменная не указана - задаётся из случайных значений. |
drupal_stale_file_threshold | 2592000 | Количество времени (в секундах), через которое некоторые файлы считаются устаревшими. В ядре используется для удаления старых кэшированных css и js файлов. |
drupal_weight_select_max | DRUPAL_WEIGHT_SELECT_MAX | Максимальное количество элементов #weight в форме. Если количество этих элементов превышает указанное значение, то для задания веса используется textfield. |
field_purge_batch_size | 10 | Количество значений полей, которые удаляются по крону за один раз, если удаление этих значений было отложено (т.е. в таблице с полем в колонке deleted стоит 1). |
field_storage_default | field_sql_storage | Название начала наименований функций бэкенда, которые используются для хранения данных полей. |
file_chmod_directory | 0775 | Права доступа по умолчанию на создаваемые Друпалом директории. |
file_chmod_file | 0644 | Права доступа по умолчанию на создаваемые Друпалом файлы. |
file_description_length | 128 | Длина описания у всех файловых полей, созданных с помощью Field API. |
file_description_type | textfield | Виджет описания поля у всех файловых полей, созданных с помощью Field API. |
file_icon_directory | drupal_get_path('module', 'file') . '/icons' | Путь к директории, где хранятся иконки для файлов с различными mime-type'ами. |
filter_allowed_protocols | array('ftp', 'http', 'https', 'irc', 'mailto', 'news', 'nntp', 'rtsp', 'sftp', 'ssh', 'tel', 'telnet', 'webcal') | Список протоколов, которые не считаются потенциально опасными. Используются в drupal_strip_dangerous_protocols() и _filter_url(). |
https | FALSE | Включение шифрованного соединения. |
image_allow_insecure_derivatives | FALSE | Эта переменная введена для безопасности в Drupal 7.20 (заметки релиза). Её включение убирает добавление токена к урлам изображений. |
image_style_preview_image | drupal_get_path('module', 'image') . '/sample.png' | Путь к изображению, которое является тестовым при создании различных стилей изображений (пресетов). |
install_profile | standard | Название установочного профиля, с которым инсталируется Друпал. |
js_gzip_compression | TRUE | Переменная включает автоматическое создание и использование архивированных javascript файлов. Это улучшает скорость загрузки страницы за счёт уменьшения загружаемого клиентом трафика. |
language_native_enabled | TRUE | Отключение переменной убирает английский язык из списка доступных языков. |
locale_cache_length | 75 | Длина источника перевода строки. Используется при выгрузке переводов из базы данных. Используется для ограничения мощности используемых серверных ресурсов. |
locale_cache_strings | 1 | Переменная показывает, включено ли кэширование переводимых строк. Отключение этой переменной может привести к серьёзным потерям производительности. |
locale_custom_strings_[LANG] | array() | Массив с переводами для языка [LANG]. Может использоваться для неординарной интеграции с системой переводов Друпала. |
locale_field_language_fallback | TRUE | Поддержка обработки ситуации, когда сущность не имеет полей с переводом для текущего языка. |
locale_js_directory | languages | Директория, в которой хранятся переводы для js. |
lock_inc | includes/lock.inc | Путь к файлу, в котором хранятся функции для обработки системы блокировок Друпала. Пример можно посмотреть в моём модуле Memcache Storage. |
mail_line_endings | MAIL_LINE_ENDINGS | Символ окончания строк в емейлах. |
mail_system | array('default-system' => 'DefaultMailSystem') | Поддерживаемые классы, которые реализуют системы отправки писем. |
maintenance_theme | NULL | Название темы, которая будет включаться в режиме обслуживания и прочих технических работах (обновление сайта, и тд). |
maximum_replication_lag | 300 | Время в секундах, на протяжении которого для определённого пользователя не будут использоваться slave базы данных, давая тем самым время на проведение репликации между используемыми БД. Пользователю эта переменная добавляется в сессию после создания материала или комментария. Таким образом убирается вероятность, что пользователь не увидет свой контент, если реприкация ещё не была произведена, а содержимое ему отдаётся со slave базы данных. |
menu_inc | includes/menu.inc | Путь к файлу, в котором содержатся функции, которые отвечают за обработку и отображение всей системы меню (включая пути) Друпала. |
omit_vary_cookie | NULL | Отключение добавления заголовка Vary: Cookie для анонимов. Это позволяет прокси серверу отдать страницу из локального кэша, минуя обращение к веб серверу. Однако если включить эту переменную, то авторизованные пользователи тоже будут получать страницы из кэша. Поэтому механизм отличия анонимов от авторизованных придётся писать в конфигах прокси сервера. |
page_cache_invoke_hooks | TRUE | Переменная указывает, надо ли вызывать hook_boot() и hook_exit() для анонимов, если страница отдаётся из кэша. |
page_cache_without_database | NULL | Переменная отвечает за отдачу анонимам страницы из кэша без соединения к базе данных. |
password_count_log2 | DRUPAL_HASH_COUNT | Длина хэша при генерации паролей. При массовой генерации паролей уменьшение этого числа может сократить время выполнения этой операции. |
password_inc | includes/password.inc | Путь к файлу, который содержит функции для генерации, хэширования и контроля паролей. |
path_inc | includes/path.inc | Путь к файлу, который содержит функции для работы с путями и алиасами в системе. |
proxy_server | '' | Имя используемого прокси сервера. |
proxy_port | 8080 | Номер порта, по которому можно подключиться к прокси серверу. |
proxy_username | '' | Имя пользователя, с которым можно подключиться к прокси серверу. |
proxy_password | '' | Пароль, с которым можно подключиться к прокси серверу. |
proxy_user_agent | '' | Название браузера, с которым Друпал будет подключаться к прокси серверу. Если прокси сервер не делает различий по количеству подключений для определённого браузера, то переменную можно не задавать. |
proxy_exceptions | array('127.0.0.1', 'localhost') | Массив адресов, для которых не нужно подключение к прокси серверу. |
reverse_proxy | 0 | Переменная указывает, что пользователи приходят на сайт через реверсивный прокси. |
reverse_proxy_header | HTTP_X_FORWARDED_FOR | Заголовок, по которому будет определяться IP адрес пользователя, идущего через реверсивный прокси сервер. |
reverse_proxy_addresses | array() | Массив IP адресов всех реверсивных прокси, через которые пользователи попадают на сайт. Необходим для корректного распознавания пользовательских IP адресов. |
queue_class_[QUEUE-NAME] | NULL | Название класса, который производит обработку очереди с машинным именем [QUEUE-NAME]. |
queue_default_class | SystemQueue | Название класса, который отвечает за обработку всех очередей, для которых не указан другой обработчик. |
queue_default_reliable_class | SystemQueue | Название класса, который будет обрабатывать очереди, если класс, указанный в queue_default_class по каким-либо причинам не подходит для обработок очередей. Советую не менять это значение. |
search_and_or_limit | 7 | Количество подряд ищущих слов, разделяемые операндами И и ИЛИ, после которых последующие слова уже не будут засчитываться. |
search_tag_weights | array('h1' => 25, 'h2' => 18, 'h3' => 15, 'h4' => 12, 'h5' => 9, 'h6' => 6, 'u' => 3, 'b' => 3, 'i' => 3, 'strong' => 3, 'em' => 3, 'a' =>10) | Поиск Друпала определяет вес фраз в зависимости от тэгов, в которые эти фразы обёрнуты. Вес влияет на ранжирование материала (чем больше вес - тем выше материал в выдаче). Эта переменная позволяет менять вес тэгов. |
session_inc | includes/session.inc | Путь к файлу, в котором содержатся функции, управляющие пользовательскими сессиями. Пример такого файла можно найти в Memcache Storage. |
session_write_interval | 180 | Частота (в секундах), с которой пользовательская сессия обновляется в БД (или другом хранилище). Обратите внимание, что если писать в переменную $_SESSIONS значения явно, то запись будет производиться немедленно. Это значение влияет лишь на автоматическую запись времени последнего посещения сайта пользователем. |
shortcut_max_slots | 7 | Максимальное количество слотов, предоставляемое модулем Shortcut для размещение на панели быстрого доступа. |
taxonomy_maintain_index_table | TRUE | Переменная отвечает за поддержку дополнительной связи между материалами и таксономии в таблице {taxonomy_index}. Отключать эту переменную советую только разработчикам, которые знают, к чему это может привести. |
taxonomy_override_selector | FALSE | Включение этой переменной позволяет отключить в ядре кусок формы, отвечающий за вывод родительского элемента формы в при редактировании термина. Эта переменная может использоваться контриб модулями для имплементации в этом месте кастомной логики отображение иерархического списка терминов, которые можно выбрать в качестве родительского термина. |
taxonomy_terms_per_page_admin | 100 | Количество терминов, которое отображается на странице просмотра терминов словаря. |
theme_link | TRUE | Отключение этой переменной убирает возможность темизации ссылок. За счёт того, что на странице ссылок достаточно много, отключение этой переменной может несколько повысить производительность. Однако ссылки становятся нетемизируемыми (большинству сайтов оно и не надо). |
tracker_batch_size | 1000 | Количество единиц контента, которые индексирует модуль Tracker за один запуск крона. |
translation_language_type | LANGUAGE_TYPE_INTERFACE | Возможность для контриб модулей изменить ссылки на перевод содержимого. |
update_fetch_url | UPDATE_DEFAULT_URL | Урл, по которому модуль Update проверяет наличие обновлений для контриб модулей и ядра Друпала. |
update_max_fetch_attempts | UPDATE_MAX_FETCH_ATTEMPTS | Максимальное количество попыток получить обновление для модуля. |
update_max_fetch_time | UPDATE_MAX_FETCH_TIME | Время, в течение которого будет выполняться очередь на получение обновлений для модулей при запуске крона. |
user_failed_login_identifier_uid_only | FALSE | Переменная определяет, для какого идентификатора будут считаться количество попыток авторизоваться. По умолчанию количество попыток авторизации определённого пользователя считается только с одного ip адреса, а попытки авторизации с других адресов начинают свой счёт с нуля. Включение этой переменной приведёт к тому, что у пользователя будет только определённое количество попыток авторизации, и неважно, с каких ip адресов он пытается авторизоваться. |
user_failed_login_ip_limit | 50 | Суммарное количество допустимых попыток авторизации с одного ip адреса за определённый период (user_failed_login_ip_window). |
user_failed_login_ip_window | 3600 | Период (в секундах), в течение которого можно провести не больше определённого количества попыток авторизации (user_failed_login_ip_limit). Если пользователь попытается превысить это количество - ему будет показана соответствующее сообщение с предложением попробовать позже. |
user_failed_login_user_limit | 5 | Максимальное количество попыток авторизации определённого пользователя с одного ip адреса (или определённого пользователя вообще, зависит от переменной, описанной выше) за период времени, определённый в user_failed_login_user_window. |
user_failed_login_user_window | 21600 | Период времени (в секундах), в течение которого пользователь может совершить не больше определённого количества попыток авторизации (user_failed_login_user_limit). |
user_password_reset_timeout | 86400 | Период времени (в секундах), в течение которого действительна ссылка на восстановление пароля. |
Как задать эти переменные?
В файле settings.php достаточно указать так:
$conf['ИМЯ_ПЕРЕМЕННОЙ'] = ЗНАЧЕНИЕ_ПЕРЕМЕННОЙ;
Пример:
$conf['admin_compact_mode'] = TRUE;
- 1 просмотр