Файл wp-config.php: для чего нужен, где найти, как с ним работать

WP-config.php – ключевой конфигурационный файл WordPress, загружающийся до запуска ядра. Не входит в инсталляционный пакет CMS, обычно генерируется «движком» во время установки сайта. С помощью этого файла подключается ваша база данных MySQL и устанавливается ее префикс, обеспечивается хранение ключей шифрования, включается режим отладки, указывается путь к директории WordPress, задаются глобальные значения констант PHP.

Редактировать wp-config.php стоит только в том случае, если точно знаете, что именно делаете. Перед каждой модификацией файла крайне рекомендуется делать резервную копию. Если что-то пойдет не так, вы в любой момент сможете восстановить рабочую конфигурацию, зайдя в корневой каталог вашего сайта WordPress файловым менеджером, FileZilla или другим FTP-клиентом. 

Где находится wp-config.php

В инсталляционном пакете файла wp-config.php нет, но есть шаблон wp-config-sample.php. при установке WordPress через FTP, CMS просит ввести название базы данных, имя и пароль пользователя, сервер БД MySQL, префикс таблиц. После этого «движок» автоматически копирует файл примера в корень, переименовывает его в wp-config.php и прописывает в нем введенные вами значения фиксированных переменных.    

Ответ на вопрос, где находится wp-config.php, обычно лежит в корневой директории вашего ресурса, рядом с другими служебными файлами WordPress и каталогами wp-admin, wp-includes, wp-content. Однако в типовом месте размещения есть существенный недостаток – здесь главный конфигурационный скрипт CMS становится легкой мишенью для злоумышленников. Многие плагины безопасности предлагают опцию перемещения wp-config в другую папку в качестве одного из шагов по усилению защиты сайта на WordPress.      

Для чего нужен файл wp-config.php

В базовой конфигурации CMS в главном файле системы управления сайтом задаются:

  • ключевые параметры подключения базы данных (БД);
  • ключи безопасности; // шифрование хранящихся в браузере паролей;
  • префикс таблицы БД; // wp_ по умолчанию, но рекомендуется более сложный префикс;
  • константа ABSPATH, указывающая путь к корневой директории.

Параметры подключения БД определяются фиксированными переменными:

  • DB_NAME – тип данных text, значение – текущее название БД MySQL;
  • DB_USER – текстовый тип данных, имя пользователя;
  • DB_HOST – имя хоста (домен, IP-адрес, опционально – +номер порта);
  • DB_PASSWORD – тип данных text, пароль БД MySQL;
  • DB_CHARSET – кодировка текста таблиц БД;
  • DB_COLLATE – тип сравнения для БД.

Параметр DB_HOST чаще всего принимает значение ‘localhost’, однако у многих хостеров дефолтные значения этой фиксированной переменной отличаются. Например, Yahoo использует хост ‘mysql’, 1and1 Hosting – db12345679. Если не подходит ‘localhost’, уточните корректное значение у своего провайдера услуг хостинга. Значение $_ENV{DATABASE_SERVER} даст на выходе функции define актуальный хост базы данных. С помощью константы DB_HOST можно указать и альтернативный порт хоста MySQL. Номер порта указывается после двоеточия. Например, ‘localhost:х’, где ‘х’ – новое глобальное значение порта.

В скрипте wp-config могут определяться и другие фиксированные константы языка сценариев PHP, не входящие в базовый функционал.

Принципы работы с файлом wp-config.php

Некорректные установки wp-config.php могут вызвать сбои или полностью заблокировать загрузку сайта и доступ к панели администрирования. Поэтому при работе с основным конфигурационным файлом ресурса рекомендуется соблюдать следующие меры предосторожности:

  • делайте резервные копии главного скрипта WordPress перед каждой модификацией файла конфигурации;
  • вносите изменения в wp-config.php только в том случае, если уверены на 100% в своих действиях.

Базовая конфигурация изначально находится в файле примера wp-config-sample.php. Сценарий инсталляции CMS копирует этот файл в корневую директорию, присваивает константам значения, введенные пользователем во время установки WordPress, и сохраняет результаты в скрипте wp-config.php. Если что-то пойдет не так, пользователю может понадобиться прописать нужные значения вручную. Для этого придется зайти в корень сайта с помощью файлового менеджера или FTP-клиента.

Настройки БД, ключи и путь к корневому каталогу, где находится wp-config.php, определяются функцией define(), принимающей на входе название константы, а на выходе дающей ее значение. С помощью этой функции глобально переопределяются и другие константы PHP. Формат записи:

define (‘КОНСТАНТА’, ‘значение_константы’);

Примеры:

define (‘DB_HOST’, ‘localhost’); // задаем сервер базы данных;

define (‘DB_CHARSET’, ‘utf8’); // определяем кодировку текста таблиц БД, рекомендуется UTF-8;

Полный перечень констант PHP, их тип и значения по умолчанию можно найти в Кодексе WordPress, официальном справочнике самой популярной CMS мира. Например, за включение и отключение режима отладки отвечает фиксированная переменная ‘WP_DEBUG’. Дебаг относится к логическому типу данных и может принимать значения ‘true’ (отладка включена) или ‘false’ (режим отладки отключен).

Примеры:

define ( ‘WPLANG’, ‘ru_RU’ ); // устаревшая константа указания файла локализации (до WP 4.0);

define ( ‘DISABLE_WP_CRON’, true ); // отключение cron, по умолчанию значение ‘false’;

define ( ‘EMPTY_TRASH_DAYS’, false ); // отключение корзины, по умолчанию включена;

В WordPress 4.0 фиксированная переменная WPLANG заменена функцией get_locale(), устанавливающей локаль и получающей текущий индекс языка сайта (например, en_US для английского (США) или ru_RU для русского). Начиная с WP 5.0, вместо функции get_locale() обычно используется обертка determine_locale().

Константа EMPTY_TRASH_DAYS показывает, сколько суток должны храниться в корзине стертые записи перед их окончательным удалением. Значение по умолчанию – 30 [дней]. Фиксированной переменной можно изменить период времени нахождения записей в корзине или полностью отключить корзину (значение – false). Есть возможность отключить корзину только для файлов медиа (видео, аудио, изображения). Делается это с помощью «переключателя» MEDIA_TRASH, принимающего два значения – ‘false’ (функция отключена) или ‘true’ (медиафайлы отправляются в корзину и хранятся там столько суток, сколько определено константой EMPTY_TRASH_DAYS).      

Для получения пути и URL каталога плагинов можно воспользоваться константами WP_PLUGIN_DIR и WP_PLUGIN_URL. За настройки автоматического обновления ядра отвечает фиксированная переменная WP_AUTO_UPDATE_CORE. Она может принимать значения ‘true’, ‘false’ или ‘minor’. True – автообновление включено. False – отключение автоматического апдейта. Minor – включение обновлений только для незначительных релизов.

Фиксированная переменная WP_MEMORY_LIMIT задает предельный объем ROM под выполнение скриптов WordPress. По умолчанию для сценариев выделяется 32 Мб, в режиме Multisite выставляется дефолтное значение 64 Мб. Обычно такого количества памяти хватает. Если же из-за превышения лимита наблюдаются сбои или полностью блокируется работа сайта на CMS WordPress, не стоит торопиться со смягчением ограничений. Возможно, есть смысл отказаться от «прожорливых» сценариев и плагинов и заменить их на более «легкое» ПО с меньшими требованиями к программно-аппаратной части сервера.

В wp-config.php можно задать значения еще нескольких десятков фиксированных переменных. Все они определяются глобально, поскольку главный конфигурационный файл сайта загружается еще до запуска ядра CMS. Полный список констант PHP смотрите в официальной документации WordPress.

Заключение

Задаваемая wp-config.php конфигурация – один из ключевых элементов обеспечения стабильной работы сайта на системе управления WordPress. Поэтому, еще раз повторимся, перед любой модификацией файла крайне рекомендуется сделать его резервную копию. Стоит подумать и о переносе wp-config.php в другой каталог. Нетиповое место размещение главного конфигурационного файла снижает уязвимость сайта при целом ряде хакерских атак. Это можно сделать либо вручную, либо с помощью одного из плагинов безопасности.