Как настроить файл config php. Как настроить WordPress, используя файл конфигурации wp-config. Работа с консолью MySQL
wp-config.php является самым главным конфигурационным файлом на сайте WordPress. В нем хранятся секретные ключи безопасности, данные для подключения к базе данных, вызовы библиотек и прочая важная информация, необходимая для стабильной работы сайта.
В арсенале файла wp-config.php имеется большое количество разных настроек, которые позволяют гибко управлять конфигурацией вашей копией WordPress. С ними можно ознакомится в официальной документации .
В этом материале мы рассмотрим некоторые полезные, особенно для новичков, настройки файла, которые помогут вам устранить неполадки, а также оптимизировать и защитить ваш WordPress-сайт.
Полезные настройки wp-config.php
Файл wp-config.php является мощным инструментом, и даже маленькая ошибка в его коде может сделать ваш сайт недоступным. Вы должны редактировать этот файл только при необходимости и всегда создавать полную резервную копию WordPress, прежде чем вносить в него какие-либо изменения.
1. Основные настройки конфигурации WordPress
Во время первой установки копии WordPress система предложит заполнить настройки базы данных. Если файл wp-config.php отсутствует, вам будет предложено создать его, указав необходимую информацию о базе (название базы, имя пользователя и пароль, хост, а также префикс таблиц).
Для этого вам нужно будет подключиться к вашему сайту с помощью FTP -клиента (подробно об этом мы писали в из наших прошлых статей). После подключения вам нужно будет переименовать файл wp-config-sample.php в wp-config.php .
После этого вы можете продолжить редактирование созданного файла wp-config.php . Вам нужно будет добавить информацию о своей базе данных, изменив следующие строки:
// ** Параметры MySQL: Эту информацию можно получить у вашего хостинг-провайдера ** // /** Имя базы данных для WordPress */ define("DB_NAME", "database_name_here"); /** Имя пользователя MySQL */ define("DB_USER", "username_here"); /** Пароль к базе данных MySQL */ define("DB_PASSWORD", "password_here"); /** Имя сервера MySQL */ define("DB_HOST", "localhost");
После того, как данные были внесены, необходимо сохранить все изменения и загрузить файл обратно на сервер.
2. Добавление ключей безопасности в WordPress
Установка WordPress по умолчанию автоматически добавляет ключи безопасности в файл конфигурации. Они используются для обеспечения дополнительного уровня безопасности для аутентификации в WordPress и проверки файлов cookie . Более подробно о них описано в нашей . Отметим, что их вы всегда сможете , добавив новые в файл wp-config.php .
3. Изменение префикса таблиц WordPress
Типичная установка новой копии WordPress по умолчанию добавляет префикс «wp_» ко всем названиям таблиц базы данных WordPress. Некоторые эксперты по безопасности считают, что изменение префикса может сделать вашу базу данных WordPress более безопасной.
Для этого вам нужно найти и изменить следующую строку в файле wp-config.php :
$table_prefix = "wp_";
Нужно заметить, что если вы делаете это для уже действующего веб-сайта, то вам также потребуется изменить префикс таблиц в базе данных. Это подробно описано в нашей .
4. Включение отладки
В WordPress встроена очень полезная функция отладки, которая позволяет видеть или скрывать ошибки WordPress. Чтобы ее задействовать, необходимо в wp-config.php добавить следующую директиву:
Define ("WP_DEBUG", true);
Кроме того, также можно включить отладку, скрывая ошибки на своем веб-сайте, но сохраняя их в файле журнала. Для этого нужно добавить следующие строки:
Define ("WP_DEBUG", true); define ("WP_DEBUG_LOG", true); define ("WP_DEBUG_DISPLAY", false);
Это создаст файл debug.log внутри папки wp-content вашего сайта, в котором будут содержаться все ошибки и уведомления об ошибках.
5. Изменение сайта
Как правило, вы можете настроить URL -адрес своего сайта в админ-разделе Настройки -> Общие . Однако бывают ситуации, когда у вас нет возможности этого сделать.
В этом случае вы можете изменить URL -адрес своего сайта через файл wp-config.php , добавив туда следующие строки:
Define ("WP_HOME", "http://www.site.ru"); define ("WP_SITEURL", "http://www.site.ru");
Не забудьте заменить site.ru своим доменным именем.
6. Переопределение прав доступа
WordPress позволяет переопределять права доступа к файлам, если ваш хостинг имеет какие-либо ограничения.
Define ("FS_CHMOD_FILE", 0644); define ("FS_CHMOD_DIR", 0755);
7. Настройка автосохранения и ревизий
WordPress имеет очень полезную функцию ревизий постов, которая позволяет отменить изменения ваших постов и страниц, возвращаясь к предыдущей версии или автосохранению.
Вы можете отключить или изменить настройки ревизий через файл конфигурации wp-config.php . Здесь можно использовать различные настройки для публикаций. Вы можете изменить, как часто WordPress будет выполнять автосохранение как ревизию, добавляя следующую строку:
Define ("AUTOSAVE_INTERVAL", 120); // в секундах
Для ограничения количества ревизий существует конструкция:
Define ("WP_POST_REVISIONS", 10); // 10 - количество ревизий записи или страницы
Также возможно полное отключение ревизий:
Define ("WP_POST_REVISIONS", false);
8. Настройка корзины WordPress
WordPress имеет довольно полезную функцию корзины. Когда пользователь отправляет пост или страницу в корзину, они по-прежнему сохраняются на сайте в течение 30 дней. После этого система автоматически удаляет их навсегда.
Вы можете изменить это поведение, указав количество дней, в течение которых вы хотите сохранить “мусор”. Все детали настройки корзины были описаны в одном из наших .
9. Добавление констант FTP/SSH в конфигурацию WordPress
По умолчанию WordPress позволяет вам обновить ядро “движка”, а также темы и плагины, на панели управления администратора. Есть несколько хостов, к которым требуется подключение по FTP или SSH каждый раз при попытке обновления или установки нового плагина.
Используя приведенные ниже инструкции, вы можете установить константы FTP или SSH .
// методы файловой системы: «direct», «ssh», «ftpext» или «ftpsockets» define ("FS_METHOD", "ftpext"); // абсолютный путь к корневой директории WordPress define ("FTP_BASE", "/path/to/wordpress/"); // абсолютный путь к каталогу «wp-content» define ("FTP_CONTENT_DIR", "/path/to/wordpress/wp-content/"); // абсолютный путь к директории "wp-plugins" define ("FTP_PLUGIN_DIR", "/path/to/wordpress/wp-content/plugins/"); // абсолютный путь к вашему открытому ключу SSH define ("FTP_PUBKEY", "/home/username/.ssh/id_rsa.pub"); // абсолютный путь к вашему закрытому ключу SSH define ("FTP_PRIVKEY", "/home/username/.ssh/id_rsa"); // имя пользователя FTP или SSH define ("FTP_USER", "username"); // пароль для имени пользователя FTP_USER define ("FTP_PASS", "password"); // имя хоста для SSH/FTP-сервера define ("FTP_HOST", "ftp.example.org:21");
10. Управление автоматическим восстановлением базы данных
WordPress поставляется со встроенной функцией автоматической оптимизации и восстановления базы данных WordPress. Однако эта функция отключена по умолчанию.
Чтобы включить эту функцию, вам нужно добавить следующую строку в файл wp-config.php :
Define ("WP_ALLOW_REPAIR", true);
После этого вы должны открыть следующую страницу на своем сайте:
Http://site.ru/wp-admin/maint/repair.php
Не забудьте заменить site.ru собственным доменным именем. Вы увидите простую страницу с параметрами восстановления или оптимизации базы данных. Чтобы получить доступ к этой странице, вам не нужно авторизоваться в системе.
11. Управление лимитом памяти PHP
Многие ошибки на WordPress-сайте возникают вследствие исчерпания ресурсов памяти для PHP -скриптов. Вы можете увеличить ограничение памяти PHP через файл wp-config.php . Для этого нужно просто вставьте следующий код:
Define ("WP_MEMORY_LIMIT", "128M");
12. Перемещение каталога wp-content
WordPress позволяет вам перемещать каталог wp-content , в котором содержатся загруженные фото и документы, установленные плагины и темы. Некоторые эксперты считают, что изменение местоположения этого каталога повысит безопасность WordPress.
Для этого нужно будет добавить следующий код в файл wp-config.php :
Define ("WP_CONTENT_DIR", $ _SERVER ["DOCUMENT_ROOT"]. "/blog/wp-content"); define ("WP_CONTENT_URL", "http://site.ru/blog/wp-content"); define ("WP_PLUGIN_DIR", $ _SERVER ["DOCUMENT_ROOT"]. "/blog/wp-content/plugins"); define ("WP_PLUGIN_URL", "http://site.ru/blog/wp-content/plugins");
Не забудьте заменить site.ru собственным доменным именем.
13. Использование собственных таблиц пользователей
По умолчанию WordPress сохраняет все пользовательские данные в таблицах wp_users и wp_usermeta . Используя приведенную ниже функцию, вы можете указать таблицу, в которой вы хотите сохранить свою пользовательскую информацию.
Define ("CUSTOM_USER_TABLE", $table_prefix."my_users "); define ("CUSTOM_USER_META_TABLE", $table_prefix."my_usermeta ");
14. Включение многопользовательской сети
Каждый сайт WordPress поставляется со встроенной функцией мультисайта, которая позволяет вам создавать несколько сайтов WordPress с использованием одной и той же установки. По умолчанию, она выключена.
Чтобы ее включить, следует добавить следующую строку в файл конфигурации WordPress:
Define ("WP_ALLOW_MULTISITE", true);
15. Защита файла wp-config.php
Еще раз отметим, что файл wp-config.php содержит действительно важные настройки WordPress-сайта. По умолчанию он находится в корневом каталоге WordPress, но вы можете переместить его. Система позволяет перемещать его куда-угодно в пределах корневой папки.
Вы также можете добавить следующий код в ваш файл .htaccess , чтобы ограничить доступ к этому файлу конфигурации. Для этого следует добавить следующие строки:
# Защита wp-config.php
Еще раз стоит повторить, что wp-config.php должен редактироваться исключительно при необходимости. Перед внесением в него каких-либо изменений следует создать полную резервную копию WordPress.
В 90% случаев полностью установить WordPress можно очень быстро, буквально за 5-10 минут, но это при условии, что у вас уже есть хостинг и домен. Более того, многие хостинги предлагают инструменты для автоматической установки WordPress. Но, когда знаешь - все легко, а начинать с чего-то надо... В этом руководстве описаны все моменты связанные с установкой. И некоторые из них будут полезны даже пользователям, у которых уже есть опыт установки WordPress.
Здесь будет рассмотрена установка WordPress на удаленный сервер. На локальный сервер все делается аналогично. Итак, поехали...
Подготовка к установке
Прежде чем начать установку, которая делается просто и быстро, вам:
Обязательно нужно:
- PHP версии 5.2.4 или выше (рекомендуется 5.6).
- MySQL версии 5.6 или выше (рекомендуется 5.6).
- 50 мегабайт пространства на сервере.
- 32 мегабайта оперативной памяти на сервере.
Последняя русская версия WordPress: https://ru.wordpress.org/latest-ru_RU.zip
- Последняя английская версия WordPress: https://wordpress.org/latest.zip
Иметь локальный или удаленный сервер, готовый к работе. У вас должен быть доступ к файлам/папкам на сервере. Обычно это shell или FTP доступ, который выдается хостинг-провайдером. Или это панель управления хостингом, которую предоставляет провайдер для управления файлами на сервере и сервером в целом;
Убедиться, что сервер подходит для WordPress. Вообще, 90% провайдеров подходят для WordPress и сильно переживать по этому поводу не стоит. WordPress требует:
Узнать эту информацию можете у хостинг-провайдера.
Нужен сам WordPress:
Нужно, но не обязательно:
- FTP-клиент - программа для загрузки файлов на сервер. Рекомендую filezilla . Впрочем, можно обойтись без программы, современные хостинг провайдеры предоставляют удобный веб-интерфейс для работы с файлами на сервере.
Нормальный текстовый редактор, чтобы изменять файлы. Рекомендую скачать Notepad++ . Он так или иначе пригодится при работе с сайтом.
Установка за 5 минут
Установка без создания wp-config.php файла и других файлов, все делает сам WordPress. Но для такой установки сервер должен разрешать создание и редактирование файлов в папках.
В любом случае, пробуйте сначала установить этим способом, если не получится, то используйте следующий способ, где файл wp-config.php нужно создавать вручную.
Этап: создание базы данных
Для WordPress нужна база данных MySQL. Базу данных можно создать разными способами, зависит от того каким сервером вы пользуетесь.
Если вы пользуетесь услугами хостниг-провайдера, то уточните у провайдера, возможно база данных уже создана для вас.
Если базу нужно создавать самостоятельно, то общий принцип действий для всех хостинг провайдеров такой:
- Все данные нужно сохранить: название базы данных, имя пользователя, пароль пользователя. Эти данные будут использоваться в файле wp-config.php при установке WordPress.
Находите где-то в меню раздел «Базы данных» или «MySQL»
Создаете в этом разделе базу данных. Для базы данных нужно указать её название, а также для базы данных указывается её пользователь. Если пользователя нет, то его нужно создать. Для пользователя указываете имя и пароль.
Чтобы посмотреть на примерах как создается база данных, ниже несколько видео уроков по этому теме:
Создание базы данных в cPanel:
Создание базы данных в ISPmanager:
Создание базы данных в DirectAdmin:
Создание базы данных в Plesk:
Если у вашего хостинг провайдера другая панель, то делается все по аналогии... В крайнем случае, если ничего непонятно, пишите в тех поддержку хостинга, создать базу данных вам там помогут или сделают это за вас.
Создание базы данных в phpMyAdmin
Если на хостинге нет панели-управления или она есть, но там нельзя создать базу данных, то на всех серверах установлен phpMyAdmin и базу данных можно создать там.
Вот подробное видео как это делать:
Работа с консолью MySQL
Если у вас есть shell доступ к веб-серверу и вы умеете пользоваться командной строкой, а ваш MySQL пользователь имеет права для создания других MySQL пользователей и баз данных, тогда используйте нижеприведенную инструкцию, чтобы создать пользователя и базу данных для WordPress.
$ mysql -u adminusername -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5340 to server version: 3.23.54 Type "help;" or "\h" for help. Type "\c" to clear the buffer. mysql> CREATE DATABASE databasename; Query OK, 1 row affected (0.00 sec) mysql> GRANT ALL PRIVILEGES ON databasename.* TO "wordpressusername"@"hostname" -> IDENTIFIED BY "password"; Query OK, 0 rows affected (0.00 sec) mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.01 sec) mysql> EXIT Bye $
Вам нужно вписать ваши значение в следующие переменные:
- adminusername чаще всего имеет значение root , в том случае, если у вас нет иного аккаунта с более высокими привилегиями.
- wordpress или blog - подходящие названия для вашей базы данных databasename .
- wordpress подхдящее название для имени пользователя wordpressusername .
- hostname чаще всего имеет значение localhost . Если вы не знаете значения данной переменной, советуем вам узнать ее у вашего системного администратора.
- password пароль - желательно, если он будет включать в себя символы, представленные в верхнем и нижнем регистре, спец. символы, цифры и буквы.
Этап: настройка файла wp-config.php
В дистрибутиве WordPress нет файла wp-config.php , а есть его пример: wp-config-sample.php . Конфиг нужно создавать на основе этого файла, т.е. нужно удалить суффикс "-sample" , открыть файл в текстовом редакторе и заменить там следующие строки:
Define("DB_NAME", "putyourdbnamehere"); // Имя базы данных define("DB_USER", "usernamehere"); // Имя пользователя MySQL define("DB_PASSWORD", "yourpasswordhere"); // ...и пароль define("DB_HOST", "localhost"); // 99% эту строку изменять не надо define("DB_CHARSET", "utf8"); // обычно не изменяется define("DB_COLLATE", ""); // обычно не изменяется
Пояснения каждого параметра:
DB_NAME Имя созданной базы данных. DB_USER Имя пользователя для WordPress. DB_PASSWORD Пароль, который вы выбрали для пользователя при создании базы данных. DB_HOST Имя хоста на котором находится база данных, почти всегда это локальный хост и тут указывается localhost . DB_CHARSET Кодировка базы данных, почти всегда остается без изменения DB_COLLATE Тип сравнения символов в указанной в DB_CHARSET кодировке. Чаще всего значение не требует изменений и остается пустым
Ключи аутентификации
Также, обязательно нужно изменить ключи аутентификации. Эти ключи используются в разных местах кода WordPress для защиты от взлома:
Define("AUTH_KEY", "впишите сюда уникальную фразу"); define("SECURE_AUTH_KEY", "впишите сюда уникальную фразу"); define("LOGGED_IN_KEY", "впишите сюда уникальную фразу"); define("NONCE_KEY", "впишите сюда уникальную фразу"); define("AUTH_SALT", "впишите сюда уникальную фразу"); define("SECURE_AUTH_SALT", "впишите сюда уникальную фразу"); define("LOGGED_IN_SALT", "впишите сюда уникальную фразу"); define("NONCE_SALT", "впишите сюда уникальную фразу");
Чтобы не сочинять ключи самому их можно быстро генерировать по следующей ссылке: https://api.wordpress.org/secret-key/1.1/salt/ .
Префикс таблиц
В принципе этот префикс можно не трогать, все будет работать. Указанный в переменной $table_prefix будет использоваться для всех создаваемых таблиц. Изменение этого префикса уникализирует название таблиц и в некоторых случаях может защитить от взлома или хотя бы создать дополнительные сложности.
$table_prefix = "wp_";
С версии 2.6 файл wp-config.php можно перемещать на одну директорию. Т.е. если файл находится в каталоге /public_html/wordpress/wp-config.php его можно переместить в каталог /public_html/wp-config.php .
Этап: размещение файлов (структура файлов)
На этом шаге вам нужно определиться в какую папку размещать файлы. При получении паролей от хостинга, в письме обычно указывается корневой каталог сайта - это та папка куда ведет ссылка вашего сайта: например, http://site.ru/ или http://site.ru/blog/ . Если вы не понимаете где находится корневой каталог сайта, то узнайте это в тех. поддержке хостинга.
Существует 3 типа размещения файлов WordPress.
1. Файлы WP в корневом каталоге или подкаталоге
Переместите файлы из установочного ZIP архива в каталог на сервере. Перемещайте как есть, т.е. копироваться будет такие файлы:
Wp-admin wp-includes wp-content index.php wp-config.php ...
Допустим за УРЛ http://site.ru/ отвечает папка на сервере sites/site.ru/public_html тогда все эти файлы нужно скопировать в папку public_html и затем перейдя по ссылке http://site.ru/ начнется установка WordPress.
Если вы хотите разместить WordPress в подпапку (допустим blog), то вам нужно создать эту папку на сервере и скопировать файлы туда, т.е. копировать будете в: sites/site.ru/public_html/blog/ . В этом случае, сайт будет находиться по ссылке http://site.ru/blog .
2. Файлы WP во вложенной папке
Этот вариант показывает как разместить WordPress в отдельном каталоге, но при этом оставить URL сайта на корневой каталог.
Wp wp-admin wp-includes wp-content wp-load.php ... остальные файлы wp-config.php index.php .htaccess
Что получится в итоге: URL сайта будет, например, http://example.com , но файлы самого WordPress при этом будут лежать во вложенной папке wp , которая находится в папке, которой соответствует наш URL. Т.е. WordPress позволяет установить файлы WordPress в подкаталог, но сайт будет работать в корневом каталоге.
Процесс перемещения WordPress в свой собственный каталог выглядит следующим образом:
Измените опции:
- Адрес WordPress (URL) - укажите URL где размещены файлы WordPress: http://example.com/wp .
- Адрес блога (URL) - укажите URL самого сайта: http://example.com .
- Готово!
Создайте новый каталог в корневом каталоге сайта. Назовем его /wp .
Переместите все файлы WordPress в новый каталог /wp .
Верните перемещенные файлы: index.php и.htaccess обратно в корневой каталог.
Откройте файл index.php (из корневого каталога) и измените в нем строку:
// заменяем такую строку require(dirname(__FILE__) . "/wp-blog-header.php"); // на require(dirname(__FILE__) . "/wp/wp-blog-header.php");
Перейдите в «Настройки» сайта. Админка теперь находится по адресу: http://example.com/wp/wp-admin/ .
3. Файлы ядра WP во вложенной папке
Для удобства можно изменить структуру файлов WordPress так, что файлы ядра (т.е. которые обновляются при обновлении WordPress) будут лежать в отдельной папке, например в папке wp , а все остальные файлы в корне сайта. Получиться такая структура файлов:
Wp wp-admin wp-includes wp-load.php ... остальные файлы... wp-config.php тут быть не должно, иначе сайт не будет работать! wp-content index.php wp-config.php .htaccess
Для такого размещения создайте папку wp и скопируйте туда все файлы/папки, кроме: wp-content , index.php и wp-config.php . Затем чтобы указать WordPress что структура изменилась, откройте файл index.php (который в корне сайт) и измените в нем путь до основного файла wp-blog-header.php (который в папке wp):
// заменяем такую строку require(dirname(__FILE__) . "/wp-blog-header.php"); // на require(dirname(__FILE__) . "/wp/wp-blog-header.php");
Также, нужно изменить пути до папки контента, потому что мы переместили движок, а папку контента оставили в корне сайта, но WordPress ожидает её рядом с папками wp-admin , wp-includes , нужно указать где именно находится папка контента. Для этого откройте файл wp-config.php и добавьте туда такие строки (добавляйте в начало файла):
// определяем директорию wp-content $scheme = ((! empty($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] !== "off") || $_SERVER["SERVER_PORT"] == 443) ? "https" : "http"; define("WP_CONTENT_DIR", __DIR__ ."/wp-content"); define("WP_CONTENT_URL", "$scheme://{$_SERVER["HTTP_HOST"]}/wp-content");
Или можно без протокола:
Define("WP_CONTENT_DIR", __DIR__ ."/wp-content"); define("WP_CONTENT_URL", "//{$_SERVER["HTTP_HOST"]}/wp-content");
Путь и URL в итоге должны смотреть на папку wp-content .
Заметка: если вы изменяете структуру на уже установленном сайте, то вам еще нужно изменить значение опции siteurl в таблице wp_options базы данных. Там нужно добить wp , т.е. меняем с http://site.ru на http://site.ru/wp .
Сделать это быстро можно в Общих настройках в админке - теперь адрес сайта будет отличаться от адреса WordPress:
Заметка: после этой смены, вы можете увидеть предупреждение («PHP Warning»), не пугайтесь в этом нет ничего страшного, оно появится один раз и дальше все будет работать как надо!
В папке для движка wp не должно быть файла wp-config.php . Если он там есть, то будет срабатывать он, а не тот который находится в корне сайта. Это вызовет ошибку и сайт работать не будет.
Этап: запуск установки WordPress
После того, как база данных создана, файлы скопированы и wp-config.php создан, нужно запустить установку WordPress. При установке будут созданы нужные таблицы в базе данных и будет создан пользователь - администратор сайта.
Чтобы начать установку нужно зайти на сайт (перейти по URL):
- Если файлы WordPress размещены в корневом каталоге сервера, то ссылка будет такая: http://site.ru/ ;
- Если файлы WordPress размещены в подкаталоге, то ссылка будет такая: http://site.ru/blog/ , где blog название подкаталога.
В обоих случаях вас должно перекинуть на страницу http://site.ru/wp-admin/install.php или http://site.ru/blog/wp-admin/install.php .
При установке вы будите вводить название сайта и ваш email. Также, при установке вы можете «попросить поисковые системы не индексировать сайт», для этого поставьте галочку напротив такого пункта.
Любую введенную информацию можно изменить в админ-панели в дальнейшем. Нельзя будет изменить только логин пользователя.
Проблемы при установке
Ошибка 1: «error database connection»
Если в процессе установки «вылезла» ошибка: «error database connection» (ошибка соединения с базой данных), то:
- Проверьте правильно ли указано имя, логи и пароль в файле wp-config.php ;
- Убедитесь, что созданный пользователь обладает правами на доступ к базе данных WordPress;
Ошибка 2: «Headers already sent»
Если при установке появляются ошибки типа: Headers already sent . Возможно, вы допустили ошибку при редактировании wp-config.php .
Как исправить?
Откройте wp-config.php в текстовом редакторе.
- Убедитесь, что файл начинается с
- Убедитесь, что последняя или предпоследняя строка не содержит?> . Если такой символ там есть - удалите его.
Файл wp-config.php представляет собой конфигурационный файл, который позволяет определять все важные параметры для WordPress. При первой установке WordPress вы загружаете стандартный файл wp-config-sample.php, который затем вам понадобится изменить и переименовать в wp-config.php. Начиная с этого момента, вы можете вносить в него любые изменения.
Заботимся о безопасности
Есть два способа защитить свой файл wp-config.php от посторонних вмешательств. С одной стороны, вы можете просто переместить файл wp-config.php за пределы папки public_html, в главный корневой каталог вашего хостинга. Таким образом, этот файл становится вне досягаемости для посетителей. С другой стороны, вы можете использовать.htaccess, чтобы оградить доступ к wp-config.php. Для этого необходимо вставить в него следующий код:
Персональные настройки
Устанавливаем свою домашнюю страницу
Вы можете перезаписать значения, установленные в General Settings, указав Site URL и Blog URL в wp-config.php. Для этого можно использовать следующие определения:
Define("WP_SITEURL", "http://example.com/"); define("WP_HOME", "http://example.com/wordpress");
Изменение интервала автосохранения
По умолчанию WordPress производит автосохранение нового текста каждые 60 секунд, но вы всегда можете изменить этот интервал с помощью следующего определения (значение задается в секундах):
Define("AUTOSAVE_INTERVAL", 240);
Настройка ревизий для записей
WordPress позволяет сохранять несколько последних копий всех записей, чтобы в том случае, если вы сделали какую-нибудь ошибку, вы могли быстро вернуться к более старой версии. Вы можете либо отключить эту опцию (что позволяет уменьшить размер базы данных), либо установить максимальное количество версий, которое должен хранить WordPress:
Define("WP_POST_REVISIONS", 3); define("WP_POST_REVISIONS", false);
Режим отладки
Если вы столкнулись с некоторыми проблемами, связанными с сайтом, или вы разрабатываете какой-либо плагин или тему, вы можете включить режим отладки, который выдаст на экран сообщения об ошибках. По умолчанию режим отладки выключен, таким образом, вы можете легко включить его при желании:
Define("WP_DEBUG", true);
Увеличиваем лимит памяти PHP .
Довольно частая проблема, с которой сталкиваются пользователи WordPress, связана с исчерпанием PHP памяти, что происходит при интенсивном выполнении задач. Вы можете установить лимит памяти для WordPress с помощью следующего определения (в нем можно менять значение):
Define("WP_MEMORY_LIMIT", "128M");
Изменение языка WordPress
Если английский не является вашим основным языком, вы можете изменить его в WordPress. Для этого необходимо использовать один из языковых кодов:
Define("WPLANG", "de_DE");
Перезапись стандартных прав доступа
Если ваш хост устанавливает слишком жесткие права доступа к файлам, или вы просто хотите изменить их в стандартном WordPress, вы можете задать их с помощью следующих определений:
Define("FS_CHMOD_DIR", (0755 & ~ umask())); define("FS_CHMOD_FILE", (0644 & ~ umask()));
Очищаем корзину
По умолчанию WordPress автоматически удаляет любые записи, помеченные как мусор, после тридцати дней, однако вы можете определить число дней, сколько запись будет валяться в коризне до ее удаления. Либо вы можете вообще отключить корзину, если установите значение 0.
Define("EMPTY_TRASH_DAYS", 60);
Автоматическое восстановление базы данных
WordPress обладает встроенной возможностью, которая позволяет производить автоматическое восстановление в том случае, если база данных была повреждена. Если вы столкнулись с проблемами со своей базой данной, вы можете установить следующее определение:
Define("WP_ALLOW_REPAIR", true);
Ограничение по редактированию и установке плагинов/тем
Если вы хотите отключить возможность устанавливать и удалять темы или плагины, вы можете использовать следующие определения. Первое из них отключит редактирование, но позволит установку и обновление тем/плагинов, а второе отключит все эти функции:
Define("DISALLOW_FILE_EDIT",true); define("DISALLOW_FILE_MODS",true);
По материалам www.doitwithwp.com.
- Перевод
Административная зона любого веб-приложения давно стала излюбленной мишенью для хакеров и её безопасность чрезвычайно заботит разработчиков. Это касается и WordPress - при сустановке нового блога система создает аккаунт администратора с уникальным случайно сгенерированным в реальном времени паролем, чем блокирует всеобщий доступ к настройкам системы, контролируя его c помощью страницы авторизации.
Эта статья сфокусирована на вопросах усиления безопасности WordPress - как административной панели, так и настроек блога, подразумевая все содержимое папки «wp-admin» , которое отображается только после авторизации . Мы сознательно выделили фразу "после авторизации " - вы должны четко осознавать, что только один простой запрос отделяет «злого хакера» и админку всего вашего блога или сайта! А последняя защищена настолько сильно, насколько мощный пароль вы выбрали.
Чтобы в разы усложнить задачу взломщиков, мы предлагаем набор операций, которые вы можете выполнить вручную. Эти решения не гарантируют 100% защиту, но с их помощью вы заметно улучшите безопасность вашего блога.
1. Переименуйте папку wordpress.
Начиная с версии 2.6, стало возможным изменять путь к папке wp-content . К сожалению это до сих пор неприменимо к папке wp-admin . Думающие о безопасности блоггеры смирились с этим и стали надеяться, что это станет возможным в будущих версиях. Пока этого не случилось, предлагаем воспользоваться следующим альтернативным решением проблемы. После распаковки архива с файлами WordPress, вы увидите папку «WordPress» - переименуйте папку (в идеале во что-то непонятное вроде " wordpress_live_Ts6K" ) и после этого настройте соответственным образом файл wp-config.php , который находится в корневой директории.Что нам даст это изменение?
- Во-первых, все файлы WordPress не будут смешаны с другими файлами в корне сайта, таким образом мы повысим ясность корневого уровня.
- Во-вторых, множество копий WordPress может быть установлено параллельно в папки с разными именами, исключая их взаимодействие, что делает это идеальным для тестирования
- Третье преимущество напрямую касается безопасности: административная зона (и весь блог в целом) больше не находится в корневой папке и для проведения каких-либо действий по взлому сначала ее нужно будет найти. Это проблемно для людей, но что касается ботов - вопрос времени.
Несколько установленных версий в root-каталоге - это возможно!
Примечание: Если системные файлы WordPress больше не в корневой директории, и имя папки инсталяции изменено в соответствии с рекомендациями, описанными выше, блог будет все равно доступен по адресу wp-config.ru . Почему? Зайдите в раздел «Общие настройки (General settings)» вашего блога и введите в поле «WordPress address (URL)» реальный адрес блога на сервере, как показано в примере:
Адрес блога должен быть красивым и ненавязчивым
Это позволит блогу отображаться по красивому виртуальному адресу.
2. Усовершенствуйте файл wp-config.php
Конфигурационный файл WordPress wp-config.php содержит в себе некоторые настройки сайта и информацию для доступа к базе данных. Также там другие настройки, касающиеся безопасности (они представлены в списке ниже). Если таких значений в этом файле нет, или же имеются только установленные по умолчанию, вам необходимо, соответственно, добавить или изменить их:- Ключи безопасности: начиная с версии 2.7, в WordPress есть четыре ключа безопасности, которые должны быть правильно установлены. WordPress спасает вас от необходимости выдумывать эти строки самому, автоматически генерируя правильные ключи с точки зрения безопасности. Вам просто нужно вставить ключи в соответствующие строки файла wp-config.php. Эти ключи являются обязательными для обеспечения безопасности вашего блога.
- Префикс таблицы заново установленного WordPress блога не должен быть стандартным «wp_» Чем больее сложным будет значение префикса, тем менее вероятна возможность несанкционированного доступа к таблицам вашей MySQL базы данных. Плохо: $table_prefix = "wp_"; . Намного лучше: $table_prefix = "wp4FZ52Y_"; Не стоит бояться забыть это значение - вам необходимо ввести его только один раз, больше оно вам не понадобится.
- Если у вас на сервере доступно SSL шифрование , рекомендуется включить его для защиты административной зоны. Это можно сделать, добавив следующую команду в файл wp-config.php: define("FORCE_SSL_ADMIN", true);
Не пренебрегайте установкой правильных ключей безопасности!
3. Переместите файл wp-config.php
Также начиная с версии 2.6, WordPress позволяет перемещать файл wp-config.php на высший уровень. По причине того, что этот файл содержит в себе намного более важную информацию, чем какой либо другой, и потому что всегда намного сложнее получить доступ к корневой папке сервера, имеет смысл хранить его не в той же директории, где и остальные файлы. WortdPress автоматически обратится к высшей папке в поиске файла wp-config.php . Любые попытки пользователей самим настроить путь бесполезны.4. Защитите файл wp-config.php
Не все ISP серверы позволят вам передавать данные на более высокие уровни, чем корневая директория. Другими словами, не у всех хватит прав для осуществления предыдущего шага. Или по другим причинам: например, если у вас несколько блогов, при определенной структуре папок у вас не получится положить в корень все файлы, так как их имена будут совпадать для каждого из блогов. В этом случае мы можем запретить доступ к файлу wp-config.php извне при помощи файла .htaccess . Вот код для этого:
# protect wpconfig.php
Очень важно убедиться, что файл .htaccess находится в той же директории что и файл wp-config.php .
5. Удалите учетную запись администратора.
Во время процесса установки WordPress создает учетную запись администратора с ником «admin» по умолчанию. С одной стороны это вполне логично, с другой - пользователь с известным ником, т.е. ID - 1, обладающий административными правами, является вполне предсказуемой мишенью для хакеров с их программами подбора паролей. Отсюда следует наш совет:- Создайте еще одного пользователя с административными правами и вашим ником.
- Завершите сеанс работы.
- Залогиньтесь под новым аккаунтом.
- Удалите учетную запись "admin ".
Примечание: В идеале желательно чтобы логин нового пользователя отличался от отображаемого имени пользователя в постах, чтобы никто не узнал ваш логин.
6. Выберите сильный пароль.
Вероятность и частота потенциальных атак прямо зависит от популярности блога. И желательно до этого момента быть уверенным, что в вашем сайте не осталось слабых звеньев в цепи безопасности.Чаще всего именно пароли являются самым слабым звеном в этой цепи. Почему? Способы выбора пароля у большинства пользователей зачастую необдуманны и беспечны. Многие проведенные исследования показали, что большинство паролей - односложные существующие слова, набранные строчными буквами, которые не сложно подобрать. В программах подбора паролей существуют даже списки самых часто используемых паролей.
В WordPress реализован интуитивно понятный индикатор стойкости набираемого пароля, который показывает цветом его уровень сложности:
7. Защитите папку «wp-admin».
Следуя пословице «две головы лучше одной», существует способ вдвое усилить защиту административной зоны. Защита регулируется файлом .htaccess , который должен находится в папке «wp-admin» вместе с файлом .htpasswd , который хранит логин и пароль пользователя. После обращения к папке, вам нужно будет ввести логин и пароль, но разница в том, что в этом случае авторизация контролируется на стороне сервера, а не силами самого WordPress.Для того чтобы просто и быстро сгенерировать файлы .htaccess и .htpasswd , воспользуйтесь этим сервисом .
8. Запретите отображение ошибок на странице авторизации.
Страница авторизации WordPress - это дверь в административную зону вашего блога, которая становится доступна после безошибочного прохождения верификации. У каждого пользователя существует бесконечное количество попыток авторизации, и каждый раз по умолчанию услужливый WordPress указывает, в чем именно была ошибка. То есть, если введенный логин окажется неверным - WordPress так и скажет. Это удобно для пользователя, но также и для хакера.Несложно догадаться, как быстро сокращается вероятность подбора комбинации логина/пароля, когда система указывает что именно введено неверно. Простая строка кода, поможет решить эту проблему, достаточно добавить её в файл functions.php вашей темы:
Add_filter("login_errors",create_function("$a", «return null;»));
Изначальный/измененный вид страницы авторизации.
9. Ограничьте количество неудачных попыток авторизации.
WordPress не ведет статистику авторизаций, как удачных, так и нет. Это очень неудобно для администратора, так как у него нет возможности увидеть были ли попытки несанкционированного доступа, чтобы принять какие-либо меры, если они участятся. Предлагаем два решения: плагиныВсе же есть еще дополнительные настройки, которые помогают веб-мастерам в работе и защите своего блога на WordPress. Давайте ниже по порядку рассмотрим несколько новых конфигураций для данного файла.
Защита wp-config.php
Самое важное и самое первое что желательно сделать для данного файла, это сначала запретить всем доступ к нему. Сделать это можно с помощью .htacces , который лежит в корне рядом с wp-config.php и добавить в него следующий код:
Очистка cookies
Внутри wp-config.php можете найти код, как в примере ниже.
Define("AUTH_KEY", "впишите сюда уникальную фразу"); define("SECURE_AUTH_KEY", "впишите сюда уникальную фразу"); define("LOGGED_IN_KEY", "впишите сюда уникальную фразу"); define("NONCE_KEY", "впишите сюда уникальную фразу"); define("AUTH_SALT", "впишите сюда уникальную фразу"); define("SECURE_AUTH_SALT", "впишите сюда уникальную фразу"); define("LOGGED_IN_SALT", "впишите сюда уникальную фразу"); define("NONCE_SALT", "впишите сюда уникальную фразу");
В этом коде надо заменить текст - впишите сюда уникальную фразу , на свой уникальный код, например его можно сгенерировать на сайте врдпресс - https://api.wordpress.org/secret-key/1.1/salt/ . При каждом обращении к данному адресу, генерируются новые коды. Выглядят примерно так -
L3-_mAVgzo$++b@)s|0Dh}Bp`+~`*,- vmC2=l `78RM!53+JsDx% Цифр должно быть не меньше 64-х. Как написано в самом файле эти ключи помогут сделать существующие файлы cookies
недействительными. Для того чтобы обезопасить от хакерских взломов. При установке можно поменять префикс таблицы базы данных. По умолчанию установлен wp_
.
$table_prefix = "wp_";
Так что при установке лучше сразу изменить, чтобы уменьшить вероятность взлома. На работающем сайте, нужно изменить префиксы и в базе данных, иначе сайт перестанет работать. Если не знаете как это делать, то лучше не трогать. Когда Вы пишете статью в админпанели, то время от времени идет сохранение и в базе записываются резервные копии записи. Чтобы изменить их количество, ограничить или увеличить. Чем больше таких резервных копий в базе, тем она больше и медленней работает. Добавьте такой код и установите нужную цифру. Define("WP_POST_REVISIONS", 3);
Если хотите полностью убрать резервные копии, то код будет таким. Define("WP_POST_REVISIONS", false);
Если Вы оставили резервное копирование, то можете установить время, частота сохранения. Для этого добавьте код и установите свое значение в секундах. Define("AUTOSAVE_INTERVAL", 120);
В WordPress, когда вы удаляете материал, комментарий и тд, он помещается в корзину. От туда уже можете удалить окончательно. Иногда в корзинах накапливается много ненужного хлама и чтобы не переживать о том, что ее нужно почистить. По умолчанию автоочищение осуществляется раз в 30 дней. Чтобы изменить, добавьте такой код, указав свое количество дней. Define("EMPTY_TRASH_DAYS", 7);
Чтобы отключить корзину установите количество дней, равно нулю. Define("EMPTY_TRASH_DAYS", 0);
Если перед Вами появляется сообщение Allowed memory size of xxx bytes exhausted
, то Вам поможет функция увеличения памяти для PHP. По умолчанию WordPress автоматически попытается увеличить PHP память до 32 Мб. Если этого будет мало, то можно добавить в ручную. DEFINE ("WP_MEMORY_LIMIT, "64M");
DEFINE ("WP_MEMORY_LIMIT, "96M");
DEFINE ("WP_MEMORY_LIMIT, "128M");
Некоторые хостеры не разрешат такое делать, поэтому нужно будет обратиться к нему за помощью. В WordPress можно вести журнал ошибок, чтобы знать почему и как возникли определенные ошибки. Для этого нужно создать файл php_error.log
и поместить его в корень сайта. После этого в файл wp-config.php добавьте код:
@ini_set("log_errors","On");
@ini_set("display_errors","Off");
@ini_set("error_log","/php_error.log");
В последней строке, если нужно измените путь к файлу. Пока все. Простенькие и не сложные дополнения, которые помогут Вам в работе с WordPress. На этом все, спасибо за внимание. 🙂Меняем префикс таблиц
Количество резервных сохранений
Интервал авто сохранений
Автоочищение корзины
Изменить количество выделяемой памяти для PHP
Журнал ошибок WordPress