wp-config.php – ключевой конфигурационный файл WordPress, загружающийся до запуска ядра. Не входит в инсталляционный пакет CMS, обычно генерируется «движком» во время установки сайта. С помощью этого файла подключается ваша база данных MySQL и устанавливается ее префикс, обеспечивается хранение ключей шифрования, включается режим отладки, указывается путь к директории WordPress, задаются глобальные значения констант PHP.
Полезный плагин
A-Feed: автонаполнение вашего WordPress-сайта. Обзор плагина.
Редактировать 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.
Полезная статья
Выбор хостинга для WordPress
Заключение
Задаваемая wp-config.php конфигурация – один из ключевых элементов обеспечения стабильной работы сайта на системе управления WordPress. Поэтому, еще раз повторимся, перед любой модификацией файла крайне рекомендуется сделать его резервную копию. Стоит подумать и о переносе wp-config.php в другой каталог. Нетиповое место размещение главного конфигурационного файла снижает уязвимость сайта при целом ряде хакерских атак. Это можно сделать либо вручную, либо с помощью одного из плагинов безопасности.
Наш канал на YouTube