Базовые настройки wp-config.php: файл & память, редакции — руководство для SSH, SFTP и cPanel

Файл wp-config.php — самый важный конфигурационный файл сайта на WordPress. В нём хранится ключевая информация, которая нужна WordPress для подключения к базе данных и работы, поэтому он играет роль сердца сайта.
Ⅰ. Зачем нужен wp-config.php
В этом файле есть такие чувствительные настройки.

Поэтому файл wp-config.php становится для внешних злоумышленников целью номер один. Если права доступа к файлу настроены неверно или его содержимое раскрыто, может утечь вся база данных или злоумышленники получат права администратора сайта — это серьёзная уязвимость. Поэтому первый шаг к усилению защиты WordPress — обезопасить этот файл.
1️⃣ Где находится wp-config.php
wp-config.php лежит в корневой папке установки WordPress, рядом с папками [wp-admin]·[wp-content]·[wp-includes]. На хостинге с cPanel это папка [public_html], а на VPS файл находится в веб-корне (например, [/var/www/html/wp-config.php]).
Если в корневой папке файла не видно, проверьте папку на уровень выше. WordPress сначала ищет wp-config.php в папке установки, а если его там нет, загружает из папки уровнем выше.
2️⃣ Как открыть wp-config.php
В [File Manager] панели управления хостингом перейдите в корневую папку, щёлкните правой кнопкой мыши по wp-config.php и выберите [Edit]. Так файл можно править прямо в браузере, без отдельной программы.
FTP-клиент (FileZilla) позволяет скачать файл на компьютер, отредактировать его и загрузить обратно. Если перед загрузкой отдельно сохранить копию оригинала, при ошибке его можно сразу вернуть.
На серверах вроде VPS, к которым подключаются по SSH, запустите редактор [vi], указав после его имени путь к файлу; [nano] открывается так же.
vi /var/www/html/wp-config.php3️⃣ wp-config-sample.php и базовая структура
В свежескачанном архиве WordPress нет wp-config.php — на его месте лежит только [wp-config-sample.php]. Когда на экране установки вводят данные базы, WordPress создаёт wp-config.php на основе этого файла; если скопировать и переименовать его вручную, результат будет тот же.
define( 'DB_NAME', 'database_name_here' );
define( 'DB_USER', 'username_here' );
define( 'DB_PASSWORD', 'password_here' );
define( 'DB_HOST', 'localhost' );
define( 'DB_CHARSET', 'utf8mb4' );
define( 'DB_COLLATE', '' );
define( 'AUTH_KEY', 'put your unique phrase here' );
define( 'SECURE_AUTH_KEY', 'put your unique phrase here' );
define( 'LOGGED_IN_KEY', 'put your unique phrase here' );
define( 'NONCE_KEY', 'put your unique phrase here' );
define( 'AUTH_SALT', 'put your unique phrase here' );
define( 'SECURE_AUTH_SALT', 'put your unique phrase here' );
define( 'LOGGED_IN_SALT', 'put your unique phrase here' );
define( 'NONCE_SALT', 'put your unique phrase here' );
$table_prefix = 'wp_';
define( 'WP_DEBUG', false );В четыре строки [DB_NAME]·[DB_USER]·[DB_PASSWORD]·[DB_HOST] вписывают данные базы, полученные от хостинга. Если ошибиться хотя бы в одном значении, вместо сайта появится ошибка [Error establishing a database connection].
Восемь строк от [AUTH_KEY] до [NONCE_SALT] — значения, которые шифруют cookie входа; получите новый набор на [https://api.wordpress.org/secret-key/1.1/salt/] и замените их целиком. После смены значений все вошедшие пользователи выйдут из системы.
[$table_prefix] — префикс перед именами таблиц базы данных, по умолчанию [wp_]; он разделяет несколько установок WordPress в одной базе. Если переключить [WP_DEBUG] в [true], ошибки PHP будут выводиться на экран, поэтому на рабочем сайте оставляйте [false].
Ⅱ. Базовые настройки wp-config.php после установки WordPress
Все строки настроек вставляются над комментарием /* That’s all, stop editing! Happy publishing. */. В симуляторе ниже выберите способ подключения — SSH, cPanel или FTP — и откройте wp-config.php: курсор сразу перейдёт к строке настройки, которую вы нажали слева.
- Константы настроек (define) — выше: Большинство констант, связанных с настройками WordPress (define), нужно размещать над строкой /* That’s all, stop editing! Happy publishing. */ — то есть прямо над комментарием, чтобы WordPress правильно загрузил их при инициализации настроек.
- Загрузка WordPress — ниже: Ниже этого комментария находятся определение [ABSPATH] и код [require_once( ABSPATH . ‘wp-settings.php’ );]. С момента загрузки файла [wp-settings.php] основные функции WordPress действительно начинают работать.
а WP_MAX_MEMORY_LIMIT — «расширенный лимит для админки и внутренних задач».
Только задав обе константы, можно получить полный контроль над памятью WordPress.


/wp-admin/admin-ajax.php для AJAX-вызовов из браузера. В консоли WordPress через этот файл каждые 15 секунд отправляется POST-запрос.


/** Disable Heartbeat everywhere except post editor */
add_action('init', function() {
global $pagenow;
if ($pagenow != 'post.php' && $pagenow != 'post-new.php') {
wp_deregister_script('heartbeat');
}
}, 1);🔢 FAQ & рекомендуемые материалы
Производительность
Отключение WP-Cron и системный cron
Как отключить wp-cron.php, который запускается при каждом открытии страницы, и перенести задачи в серверный cron.
Настройки
2 способа убрать запрос учётных данных FTP
Два способа убрать окно ввода данных FTP, которое появляется при каждом обновлении плагина.
Ошибка
critical error: причины и решение
Как нашли и устранили причину, когда появилось сообщение [There has been a critical error].
ℹ️ О партнёрских ссылках
Материалы этого сайта содержат партнёрские ссылки. Если посетитель покупает товар или услугу по такой ссылке, сайт получает комиссию от продавца. При этом сумма, которую платит покупатель (при акционных скидках сумма снижается ↓), не увеличивается. Указанные цены, скидки и наличие актуальны на момент написания и могут отличаться, поэтому перед покупкой уточняйте их у продавца. Товары выбираются и оцениваются по нашим собственным критериям, а комиссия не влияет ни на порядок, ни на содержание обзоров.