- Зачем нужен файл wp-config.php в WordPress? Где находиться и как правильно его настраивать?
- Что это за файл — wp-config.php?
- Настройки MySQL для wp-config.php
- Ключи безопасности (аутентификации)
- Префикс таблицы базы данных
- Режим отладки
- Язык WordPress
- Дополнительные хуки и настройки файла wp-config.php
- Изменяем папку загрузок
- Отключаем автоматическое обновление WordPress
- Ограничить количество редакций записи
- Изменение интервала автосохранения
- Файл wp-config.php — подробное описание настроек WordPress
- Базовый файл wp-config.php
- Базовая конфигурация: редактирование файловой системы
- Возможности для разработчиков: режим отладки и сохранение запросов
- Настройки, связанные с контентом
- Разрешенный объем памяти
- Автоматические обновления
- Настройки безопасности
- Другие дополнительные настройки
- Блокировка wp-config.php
- Резюме
Зачем нужен файл wp-config.php в WordPress? Где находиться и как правильно его настраивать?
Если вы планируете заниматься разработкой сайтов на WordPress, то вам обязательно нужно разобраться с фалом wp-config.php, поскольку именно его вы будете редактировать при переносе сайта на другой хостинг, или же при включении режима отладки в случае тестирования сайта на ошибки.
В этой статье мы разберемся со структурой и настройками данного файла.
Важный момент! Перед тем как проводить редактирование wp-config.php сделайте бэкап сайта или же хотя бы бэкап данного файла, чтобы вы могли оперативно залить его обратно на сервер в случае возникновения ошибок при его правке. А ошибки в данном файле зачастую приводят к тому, что сайт не работает, поэтому будьте внимательны в этом вопросе.
Что это за файл — wp-config.php?
Файл wp-config.php – это файл конфигурации вашего WordPress сайта, который хранит базовые настройки: подключение к базе данных, параметры безопасности и может включать дополнительные функции для работы вашего ресурса.
Где находится wp-config.php в структуре файлов CMS WordPress? Изначально данный файл создается в процессе установки движка и в него записываются параметры подключения к БД. Размещен файл в корневой директории файлов.
Для изменения файла конфига вы можете использовать FTP клиенты, например: FileZilla или же WinSCP, если у вас Mac, то можно установить: Transmit или CyberDuck. Второй путь – это редактирование файла напрямую через панель хостинга, если там есть функция файлового менеджера. Я рекомендую использовать FTP клиенты, поскольку через панель хостинга может сбиваться кодировка файла.
Как пример для изучения мы возьмем файл: wp-config-sample.php. Этот файл также размещен в корневой папке сайта и является файлом с дефолтными настройками. В случае необходимости вы можете скопировать его содержимое в основной файл конфига или же просто переименовать его убрав приставку «-sample».
Настройки MySQL для wp-config.php
Вот этот фрагмент файла отвечает за подключение базы данных.
Основные параметры для редактирования это: Имя базы данных, MySQL имя пользователя, MySQL пароль базы данных, MySQL сервер (его еще называют хост БД). Изменять кодировку не рекомендую, там по умолчанию установлена «utf8», с которой и работают большинство сайтов на WordPress. Данные параметры редактируют при переносе сайта и изменении доступов и названия БД. Узнать необходимую информацию для ввода вы можете у своего хостинг провайдера в панели управления или же при обращении к консультантам.
Ключи безопасности (аутентификации)
Второй тип настроек – это задание ключей аутентификации, которые повысят безопасность и зашифруют информацию пользователя. Вот как выглядит этот фрагмент кода в файле wp-config.php.
Пароли должны быть сложными и надежными. Каждая фраза должна быть разной. Желательно с использованием латинских строчных и прописных букв, цифр, спецсимоволов. При установке WordPress движок сам генерирует пароли и их можно не трогать. Но если стоит задача обновить все куки для пользователей, то можно изменить данные ключи, и вашим пользователям нужно будет заново авторизоваться на вашем сайте.
Сгенерировать ключи безопасности можно с помощью WordPress API.
Префикс таблицы базы данных
По умолчанию WordPress устанавливает префикс базы данных формата «wp_». Это стандарт, и для повышения безопасности вашего сайта я рекомендую изменять префикс на свой кастомный.
Такое редактирования префикса БД усложнит внедрение SQL-кода. При составлении префикса используйте подчеркивание, латинские буквы и цифры. Пример изменения префикса приведен ниже.
Старайтесь сделать его сложным. Я обычно изменяю его еще на этапе установки движка.
Режим отладки
Из коробки режим отладки в WordPress отключен. Убедиться в этом вы можете, зайдя в файл wp-config.php и найдя следующий код.
Режим отладки полезно включать при разработке сайта на WordPress. Он выводит уведомления об ошибках при выполнении кода. Сюда могут попадать и ошибки не первого уровня важности (notices), но их устранение иногда бывает важным моментом. Вы сможете увидеть конфликты плагинов или косяки вашего кода. Чтобы включить режим отладки, изменяем значение false на true.
Язык WordPress
Следующая строчка кода отвечает за язык вашего сайта. Если ее удалить, то по умолчанию будет установлена английская версия движка.
Как видите, для русской локализации мы используем: define (‘WPLANG’, ‘ru_RU’).
На этом стандартные настройки закончены.
Дополнительные хуки и настройки файла wp-config.php
Теперь рассмотрим несколько настроек, которые вы по желанию, можете добавить в файл wp-config.php.
Изменяем папку загрузок
По умолчанию WordPress сохраняет все загруженные файлы в папке /wp-content/uploads/. Если вы хотите изменить директорию для файлов, то можете прописать следующую строчку.
Обратите внимание на то, что путь к каталогу загрузок относится к ABSPATH, автоматически установленному в WordPress. Добавить здесь абсолютный путь не получится.
Отключаем автоматическое обновление WordPress
Начиная с версии 3.7, данный движок поддерживает функцию автоматического обновления файлов движка после выхода релиза его новой версии. Обновление движка – это залог безопасности вашего сайта, но иногда бывают релизы, которые могут вызвать конфликты с плагинами или вашим кастомным кодом, что приведет к ошибкам или же полному падению сайта. Лучше всего обновляться вручную, предварительно создав резервную версию вашего сайта.
Чтобы отключить автообновления, если у вас они включены, в файле конфига можно прописать следующее.
Ограничить количество редакций записи
По дефолту WordPress будет сохранять все сохраненные версии документа при его редактировании, давая возможность вернуться к предыдущей версии этой статьи или страницы. Редакции записей, особенно на крупных сайтах, могут существенно увеличить размер файла базы данных, и чтобы ограничить количество редакций вы можете прописать следующую строчку в конфиге.
Цифра 3 указывает на количество сохраняемых версий статьи. После этого WordPress будет автоматически удалять старые версии статей, и оставлять только три последние. Вы можете указать вместо 3-х свое значение редакций.
Если у вас поставлена задача, полностью отключить функцию сохранения редакций записи, то можете прописать следующую строчку.
Изменение интервала автосохранения
При написании статьи вы наверняка замечали, что с определенной периодичностью ваша запись сохраняется. Это реализовано с помощью Ajax. Иногда нужно увеличить интервал сохранения или же наоборот уменьшить его, чтобы не потерять вводимые данные. Делаеться это с помощью следующего кода.
Источник
Файл wp-config.php — подробное описание настроек WordPress
И снова я вас приветствую!
Все, у кого есть свой сайт на WordPress, знают о таком файле как wp-config.php, но не все знают как правильно его настроить. 90% пользователей вписывают в него только данные для подключения к базе.
Сегодня я бы хотел вам рассказать что в этот файл можно очень много интересного прописать для безопасности вашего сайта, и не только. Поехали!
Одним из наиболее важных файлов установки WordPress является файл конфигурации. Он находится в корневом каталоге и содержит постоянные определения и инструкции PHP, которые заставляют WordPress работать так, как вы хотите.
В файле wp-config.php хранятся такие данные, как сведения о подключении к базе данных, префикс таблицы, пути к определенным каталогам и множество настроек, связанных с конкретными функциями, которые мы с вами собираемся подробно рассмотреть в этом посте.
Базовый файл wp-config.php
Когда вы впервые устанавливаете WordPress, вас просят ввести необходимую информацию, такую как сведения о базе данных и префикс таблицы. Иногда ваш хостер настроит WordPress для вас, и вам не нужно будет запускать настройку вручную. Но когда вы запускаете 5-минутную установку вручную, вам будет предложено ввести некоторые наиболее важные данные, хранящиеся в wp-config.
Вот основной файл wp-config.php:
Обычно этот файл генерируется автоматически при запуске установки, но иногда WordPress не имеет прав для записи в папку установки. В этой ситуации вы должны создать пустой файл wp-config.php, скопировать и вставить содержимое из wp-config-sample.php и установить правильные значения для всех определенных констант. Когда вы закончите, загрузите ваш файл в корневую папку и запустите установку WordPress.
Сначала приведу определения констант базы данных, которые вы должны были получить от своего хостера:
- DB_NAME
- DB_USER
- DB_PASSWORD
- DB_HOST
- DB_CHARSET
- DB_COLLATE
Следуя данным базы данных, восемь ключей безопасности сделают сайт более защищенным от хакеров. При запуске установки WordPress автоматически генерирует ключи безопасности и соли, но вы можете изменить их в любое время, добавив любую произвольную строку. Для большей безопасности рассмотрите возможность использования онлайн-генератора.
Переменная «$table_prefix» хранит префикс всех таблиц WordPress. К сожалению, любой знает его значение по умолчанию, и это может открыть базу данных WordPress для уязвимости, которую можно легко исправить, установив пользовательское значение «$table_prefix» при запуске установки.
Чтобы изменить префикс таблицы на работающем веб-сайте, необходимо выполнить несколько запросов к базе данных, а затем вручную отредактировать файл wp-config.php. Если у вас нет доступа к базе данных или вы не обладаете необходимыми знаниями для создания пользовательских запросов, вы можете установить плагин, такой как Change Table Prefix (правда он давно не обновлялся), который будет переименовывать таблицы базы данных и имена полей, а также обновлять файл конфигурации без риска.
До сих пор анализ был ограничен базовой конфигурацией. Но у нас есть много констант, которые мы можем определить, чтобы включить функции, настроить и защитить установку.
Базовая конфигурация: редактирование файловой системы
Файловая система WordPress хорошо известна пользователям и хакерам. По этой причине вы можете рассмотреть возможность изменения встроенной файловой структуры путем перемещения определенных папок в произвольных местах и установки соответствующих URL-адресов и путей в файле wp-config.
Во-первых, мы можем переместить папку содержимого, определив две константы. Первый устанавливает полный путь к каталогу:
Второй устанавливает новый URL каталога:
Мы можем переместить только папку плагинов, определив следующие константы:
Таким же образом мы можем переместить папку загрузки, установив новый путь к каталогу:
Когда закончите, расставьте папки и перезагрузите WordPress.
Невозможно переместить папку /wp-content/themes из файла wp-config, но мы можем зарегистрировать новый каталог темы в плагине или файле functions.php темы.
Возможности для разработчиков: режим отладки и сохранение запросов
Если вы разработчик (как и я), вы можете заставить WordPress отображать ошибки и предупреждения, которые помогут вам в отладке тем и плагинов. Чтобы включить режим отладки, вам просто нужно установить «WP_DEBUG» в значение «true», как показано ниже:
«WP_DEBUG» по умолчанию имеет значение «false». Если вам нужно отключить режим отладки, вы можете просто удалить определение или установить значение константы в «false».
Когда вы работаете на живом сайте, вы должны отключить режим отладки. Ошибки и предупреждения никогда не должны показываться зрителям сайта, поскольку они могут предоставить хакерам ценную информацию. Но что делать, если вам все равно придется отлаживать?
В таких ситуациях вы можете заставить WordPress вести таблицу ошибок и предупреждений в файле «debug.log», расположенном в папке /wp-content. Чтобы включить эту функцию, скопируйте и вставьте следующий код в файл wp-config.php:
Чтобы эта функция работала, сначала нужно включить режим отладки. Затем, установив «WP_DEBUG_LOG» в значение «true», мы заставляем WordPress хранить сообщения в файле «debug.log», а при определении «WP_DEBUG_DISPLAY» в «false» скрываем их с экрана. Наконец, мы устанавливаем в 0 значение переменной PHP — «display_errors» чтобы сообщения об ошибках не выводились на экран. Wp-config никогда не загружается из кеша. По этой причине это хорошее место для переопределения настроек «php.ini».
Другая константа отладки определяет версии скриптов и стилей для загрузки. Установите «SCRIPT_DEBUG» в значение «true», если вы хотите загружать несжатые версии:
Если ваша тема или плагин показывает данные, полученные из базы данных, вы можете сохранить сведения о запросе для последующего просмотра. Константа «SAVEQUERIES» заставляет WordPress хранить информацию о запросах в массиве «$wpdb->queries». Эти сведения будут напечатаны, добавив следующий код в шаблон подвала вашего сайта:
Настройки, связанные с контентом
Когда ваш сайт вырастет, вы можете захотеть уменьшить количество пост-редакций. По умолчанию WordPress автоматически сохраняет изменения каждые 60 секунд. Мы можем изменить это значение, установив пользовательский интервал в wp-config следующим образом:
Конечно, вы также можете уменьшить интервал автосохранения.
Каждый раз, когда мы сохраняем наши изменения, WordPress добавляет строку в таблицу сообщений, чтобы мы могли восстановить предыдущие версии сообщений и страниц. Это полезный функционал, который может стать проблемой, когда наш сайт станет больше. К счастью, мы можем уменьшить максимальное количество сохраняемых пост-ревизий или вообще отключить эту функцию.
Если вы хотите отключить публикацию ревизий, определите следующую константу:
Если вы хотите ограничить максимальное количество ревизий, добавьте следующую строку:
По умолчанию WordPress хранит удаленные сообщения, страницы, вложения и комментарии в течение 30 дней, а затем удаляет их навсегда. Мы можем изменить это значение с помощью следующей константы:
Мы даже можем отключить корзину, установив для нее значение 0, но учтите, что WordPress больше не позволит вам восстанавливать содержимое.
Разрешенный объем памяти
Иногда вы можете получить сообщение, подобное следующему:
Максимальный объем памяти зависит от конфигурации сервера. Если у вас нет доступа к файлу php.ini, вы можете увеличить ограничение памяти только для WordPress, установив константу «WP_MEMORY_LIMIT» в файле wp-config. По умолчанию WordPress пытается выделить 40 МБ для PHP для отдельных сайтов и 64 МБ для многосайтовой установки. Конечно, если выделенная PHP память превышает 40 МБ (или 64 МБ), WordPress примет максимальное значение.
При этом, вы можете установить пользовательское значение с помощью следующей строки:
При необходимости вы также можете установить максимальный предел памяти с помощью следующего оператора:
Автоматические обновления
Начиная с версии 3.7, WordPress поддерживает автоматические обновления для выпусков безопасности. Это важная функция, которая позволяет администраторам сайтов постоянно поддерживать безопасность своего сайта.
Вы можете отключить все автоматические обновления, определив следующую константу:
Возможно, не стоит отключать обновления безопасности, но это ваш выбор.
По умолчанию автоматические обновления не работают с основными выпусками, но вы можете включить любые основные обновления, определяя их «WP_AUTO_UPDATE_CORE» следующим образом:
Значение по умолчанию «minor»:
Дополнительная константа отключает автообновления (и любое обновление или изменение любого файла). Если вы установите «DISALLOW_FILE_MODS» в значение «true», все изменения файлов будут отключены, даже установки и обновления тем и плагинов. По этой причине его использование не рекомендуется.
Настройки безопасности
Мы можем использовать файл wp-config для повышения безопасности сайта. В дополнение к изменениям в файловой структуре, которые мы рассмотрели выше, мы можем заблокировать некоторые функции, которые могут открыть ненужные уязвимости. Прежде всего, мы можем отключить редактор файлов, представленный в панели администратора. Следующая константа скроет экран «Appearance Editor»:
Функцией безопасности является администрирование через SSL. Если вы приобрели сертификат SSL и он правильно настроен, вы можете заставить WordPress передавать данные через SSL при любом входе в систему и сеансе администратора. Используйте следующую константу:
Проверьте Кодекс, если вам нужна дополнительная информация об администрировании через SSL.
Две другие константы позволяют блокировать внешние запросы и выводить список разрешенных хостов.
В этом примере мы сначала отключили все обращения с внешних хостов, затем перечислили разрешенные хосты, разделенные запятыми (подстановочные знаки разрешены).
Другие дополнительные настройки
«WP_CACHE» — значение «true» включает скрипт wp-content/advanced-cache.php. Эта константа действует только если вы устанавливаете постоянный плагин кэширования.
«CUSTOM_USER_TABLE» и «CUSTOM_USER_META_TABLE» используются для установки пользовательских таблиц, отличных от таблиц «wp_users» и «wp_usermeta» по умолчанию. Эти константы включают полезную функцию, которая позволяет пользователям сайта получать доступ к нескольким веб-сайтам только с одной учетной записью. Чтобы эта функция работала, все установки должны совместно использовать одну и ту же базу данных.
Начиная с версии 2.9, WordPress поддерживает автоматическую оптимизацию базы данных. Благодаря этой функции, установив «WP_ALLOW_REPAIR» в значение «true», WordPress автоматически восстановит поврежденную базу данных.
WordPress создает новый набор изображений каждый раз, когда вы редактируете изображение. Если вы восстановите исходное изображение, все созданные наборы останутся на сервере. Вы можете перезаписать это поведение, установив «IMAGE_EDIT_OVERWRITE» значение в «true», чтобы при восстановлении исходного изображения все изменения были удалены с сервера.
Блокировка wp-config.php
Теперь мы знаем, почему wp-config.php является одним из наиболее важных файлов WordPress. Итак, почему мы не скрываем это от хакеров? Прежде всего, мы можем переместить wp-config на один уровень выше корневой папки WordPress (всего на один уровень). Однако этот метод немного противоречив, поэтому я бы предложил принять другие решения для защиты файла. Если ваш сайт работает на веб-сервере Apache, вы можете добавить следующие директивы в файл .htaccess:
Если сайт работает на Nginx, вы можете добавить следующую директиву в файл конфигурации:
Если ваш сайт прошел несколько миграций или вы приобрели его у кого-то другого, рекомендуется создать новый набор ключей безопасности WordPress. Эти ключи представляют собой набор случайных величин, которые улучшают шифрование информации, хранящейся в файлах «cookie» пользователя. Начиная с WordPress 2.7, было 4 разных ключа: «AUTH_KEY», «SECURE_AUTH_KEY», «LOGGED_IN_KEY» и «NONCE_KEY».
По умолчанию они генерируются случайным образом для вас. Но на самом деле WordPress имеет бесплатный инструмент, который вы можете использовать для генерации новых случайных ключей. Затем вы можете просто обновить ваши текущие ключи, которые хранятся в вашем файле wp-config.php.
И наконец, вы должны дважды проверить и убедиться, что ваши права доступа усилены в вашем файле wp-config.php. Обычно для файлов в корневом каталоге сайта WordPress устанавливается значение 644, что означает, что файлы доступны для чтения и записи для владельца файла и для чтения пользователями в группе, владеющей этим файлом, и для чтения всеми остальными. Согласно документации WordPress, разрешения для файла wp-config.php должны быть установлены на 440 или 400, чтобы другие пользователи на сервере не могли его прочитать. Вы можете легко изменить это с вашим FTP-клиентом.
Резюме
В этом посте я перечислил много констант WordPress, которые мы можем определить в файле wp-config. Некоторые из этих констант имеют общее использование, и их функции легко понять. Другие константы включают расширенные функции, которые требуют глубоких знаний WordPress и администрирования сайта.
Я перечислил наиболее распространенные функции, оставляя в стороне некоторые дополнительные функции, которые мы можем обсудить в будущих публикациях. Если вы хотите изучить функции и константы не перечисленные здесь, начните разговор в комментариях ниже, и мы углубимся в подробности.
Источник