Редактируем файл wp-config. Установка 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 в текстовом редакторе.
- Убедитесь, что файл начинается с
- Убедитесь, что последняя или предпоследняя строка не содержит?> . Если такой символ там есть - удалите его.
Все же есть еще дополнительные настройки, которые помогают веб-мастерам в работе и защите своего блога на 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. На этом все, спасибо за внимание. 🙂 Административная зона любого веб-приложения давно стала излюбленной мишенью для хакеров и её безопасность чрезвычайно заботит разработчиков. Это касается и WordPress - при сустановке нового блога система создает аккаунт администратора с уникальным случайно сгенерированным в реальном времени паролем, чем блокирует всеобщий доступ к настройкам системы, контролируя его c помощью страницы авторизации. Эта статья сфокусирована на вопросах усиления безопасности WordPress - как административной панели, так и настроек блога, подразумевая все содержимое папки «wp-admin»
, которое отображается только после авторизации
. Мы сознательно выделили фразу "после авторизации
" - вы должны четко осознавать, что только один простой запрос отделяет «злого хакера» и админку всего вашего блога или сайта! А последняя защищена настолько сильно, насколько мощный пароль вы выбрали. Чтобы в разы усложнить задачу взломщиков, мы предлагаем набор операций, которые вы можете выполнить вручную. Эти решения не гарантируют 100% защиту, но с их помощью вы заметно улучшите безопасность вашего блога. Примечание:
Если системные файлы WordPress больше не в корневой директории, и имя папки инсталяции изменено в соответствии с рекомендациями, описанными выше, блог будет все равно доступен по адресу wp-config.ru
. Почему? Зайдите в раздел «Общие настройки (General settings)» вашего блога и введите в поле «WordPress address (URL)» реальный адрес блога на сервере, как показано в примере: Адрес блога должен быть красивым и ненавязчивым
Это позволит блогу отображаться по красивому виртуальному адресу. Не пренебрегайте установкой правильных ключей безопасности!
# protect wpconfig.php Очень важно убедиться, что файл .htaccess
находится в той же директории что и файл wp-config.php
. Примечание:
В идеале желательно чтобы логин нового пользователя отличался от отображаемого имени пользователя в постах, чтобы никто не узнал ваш логин. Чаще всего именно пароли являются самым слабым звеном в этой цепи. Почему? Способы выбора пароля у большинства пользователей зачастую необдуманны и беспечны. Многие проведенные исследования показали, что большинство паролей - односложные существующие слова, набранные строчными буквами, которые не сложно подобрать. В программах подбора паролей существуют даже списки самых часто используемых паролей. В WordPress реализован интуитивно понятный индикатор стойкости набираемого пароля, который показывает цветом его уровень сложности: Для того чтобы просто и быстро сгенерировать файлы .htaccess
и .htpasswd
, воспользуйтесь этим сервисом
. Несложно догадаться, как быстро сокращается вероятность подбора комбинации логина/пароля, когда система указывает что именно введено неверно. Простая строка кода, поможет решить эту проблему, достаточно добавить её в файл functions.php
вашей темы: Add_filter("login_errors",create_function("$a", «return null;»)); ВНИМАНИЕ:
Прочтите перед редактированием этой страницы. Пожалуйста, не указывайте в данной статье параметры своего собственного сайта, поскольку при этом вы сообщите пароль от своей базы данных всему миру, но сайт не запустите. Спасибо.
Одним из шагов при установке WordPress является внесение в файл wp-config.php параметров, необходимых для доступа к базе данных MySQL. Этот файл, wp-config.php , не содержится в скачиваемой копии WordPress; вам потребуется его создать. В качестве примера можно использовать файл wp-config-sample.php . Ниже представлены расширенные настройки и примеры. Для изменения файла wp-config.php вам потребуется следующая информация: Если WordPress установлен вашим хостинг-провайдером, узнайте эту информацию в службе поддержки. Если у вас свой собственный или хостинг, вы получите эту информацию в результате . Важно:
никогда
не используйте текстовые редакторы вроде Microsoft Word для изменения файлов WordPress! Найдите в корневом каталоге WordPress файл и откройте его в . ЗАМЕЧАНИЕ:
It won"t change the Database value though, and the url will revert to the old database value if this line is removed from wp-config. to change the siteurl value in the database. If WordPress is installed into a directory called "wordpress" for the domain example.com, define WP_SITEURL like this: Define("WP_SITEURL", "http://example.com/wordpress");
Dynamically set WP_SITEURL based on $_SERVER["HTTP_HOST"] Define("WP_SITEURL", "http://" . $_SERVER["HTTP_HOST"] . "/path/to/wordpressp");
ЗАМЕЧАНИЕ:
A safer alternative for some installations would be to use the server-generated SERVER_NAME instead of the php/user-generated HTTP_HOST which is created dynamically by php based on the value of the HTTP HOST Header in the request, thus possibly allowing for file inclusion vulnerabilities. SERVER_NAME is set by the server configuration and is static. Dynamically set WP_SITEURL based on $_SERVER["SERVER_NAME"] Define("WP_SITEURL", "http://" . $_SERVER["SERVER_NAME"] . "/path/to/wordpressp");
WP_HOME
is another wp-config.php option added in WordPress . Similar to WP_SITEURL, WP_HOME overrides the value for
home but does not change it permanently.
home
is the address you want people to type in their browser to reach your WordPress blog. It should include the http:// part and should not have a slash "/
" at the end. Define("WP_HOME", "http://example.com/wordpress");
В WordPress версии 2.5, установка WP_DEBUG в true также поднимает уровень сообщений об ошибках на E_ALL и активирует предупреждения, когда устаревшие функции или файлы используются; в противном случае, WordPress устанавливает уровень сообщений об ошибках в E_ALL ^ E_NOTICE ^ E_USER_NOTICE . Чтобы результатам заканчиваться более быстрой административной областью, все файлы Javascript являются присоединёнными в один URL. Если Javascript не в состоянии работать в вашей административной области, вы можете попробовать отключить эту функцию: Define("CONCATENATE_SCRIPTS", false);
Because wp-config.php is loaded for every page view not loaded from a cache file, it is an excellent location to set php ini settings that control your php installation. This is useful if you don"t have access to a php.ini file, or if you just want to change some settings on the fly. Here is an example that turns php error_logging on and logs them to a specific file. If WP_DEBUG is defined to true, the errors will also be saved to this file. Just place this above any require_once
or include
commands.
@ini_set("log_errors","On");
@ini_set("display_errors","Off");
@ini_set("error_log","/home/example.com/logs/php_error.log");
/* That"s all, stop editing! Happy blogging. */
Another example of logging errors, as suggested by Mike Little on the wp-hackers email list :
/**
* This will log all errors notices and warnings to a file called debug.log in
* wp-content (if Apache does not have write permission, you may need to create
* the file first and set the appropriate permissions (i.e. use 666))
*/
define("WP_DEBUG", true);
define("WP_DEBUG_LOG", true);
define("WP_DEBUG_DISPLAY", false);
@ini_set("display_errors",0);
You should define as few of the below constants
needed to correct your update issues. The most common causes of needing to define these are: The following are valid constants for WordPress updates: To enable SSH2 as an upgrade option you will need to install the pecl SSH2 extension. To install this library you will need to issue a command similar to the following or talk to your web hosting provider to get this installed: Pecl install ssh2
After installing the pecl ssh2 extension you will need to modify your php configuration to automatically load this extension. pecl is provided by the pear package in most linux distributions. To install pecl in Redhat/Fedora/CentOS: Yum -y install php-pear
To install pecl in Debian/Ubuntu: Apt-get install php-pear
It is recommended to use a private key that is not pass-phrase protected. There have been numerous reports that pass phrase protected private keys do not work properly. If you decide to try a pass phrase protected private key you will need to enter the pass phrase for the private key as FTP_PASS, or entering it in the "Password" field in the presented credential field when installing updates. If you"re still not clear on how to use SSH for upgrading or installing WordPress/plugins, read through this tutorial . Use this, for example, if scheduled posts are not getting published. According to Otto"s forum explanation , "this alternate method uses a redirection approach, which makes the users browser get a redirect when the cron needs to run, so that they come back to the site immediately while cron continues to run in the connection they just dropped. This method is a bit iffy sometimes, which is why it"s not the default." Define("ALTERNATE_WP_CRON", true);
Here are additional constants that can be defined, but probably shouldn"t be. The Cookie definitions are particularly useful if you have an unusual domain setup. Define("COOKIEPATH", preg_replace("|https?://[^/]+|i", "", get_option("home") . "/"));
define("SITECOOKIEPATH", preg_replace("|https?://[^/]+|i", "", get_option("siteurl") . "/"));
define("ADMIN_COOKIE_PATH", SITECOOKIEPATH . "wp-admin");
define("PLUGINS_COOKIE_PATH", preg_replace("|https?://[^/]+|i", "", WP_PLUGIN_URL));
define("TEMPLATEPATH", get_template_directory());
define("STYLESHEETPATH", get_stylesheet_directory());
define("DISABLE_WP_CRON", true);
От автора:
в общем-то, WordPress – относительно простая в установке система, которую можно развернуть в короткие сроки. Однако вы можете непреднамеренно оставить уязвимости для хакеров. В файле «wp-config.php» хранятся ключевые настройки вашего сайта на WP, и очень важно как можно сильнее защитить этот файл от посторонних лиц. В этом видео из курса WordPress Secure Setup Guide вы узнаете, как максимально обезопасить файл wp-config.php. Если открыть wp-config.php, можно заметить, что там хранится достаточно важная информация. Во-первых, в нем содержится вся вводимая вами информация во время установки, которая дает доступ к базе данных. Здесь можно найти название базы данных, имя пользователя, пароль – все, что необходимо для входа в базу данных. Как вы понимаете, крайне важно защитить этот файл, потому что если кто-то сможет прочитать его, то он получит доступ к базе данных и сможет вытворять там все, что душе угодно. Эти ключи нужны для защиты вашего сайта. Еще ниже записан префикс таблиц, который также защищает ваш сайт. Существует несколько шагов, которые необходимо выполнить, чтобы обезопасить этот файл. Первым делом мы сгенерируем новые секретные ключи. Для этого можно зайти на secret key generator от WP. Вам нужно перейти по этой ссылке и обновить страницу, перед вами будут абсолютно новые ключи. Их можно скопировать в wp-config.php и заменить старые. Теперь мы переместим наш файл. По умолчанию он находится в корневой папке сайта. Если ваш сайт хранится на основном домене, папка будет называться «public HTML» или как-то по-другому, все зависит от того, как вы писали сайт. WP позволяет переместить файл конфигураций на один уровень выше, чтобы он не хранился в публичной папке. Если вы работаете офлайн, можете просто перетащить файл мышкой. Если же сайт уже работает в сети, можете воспользоваться инструментом перемещения в файловом менеджере. Выберите файл wp-config.php, нажмите переместить и выберите новую папку. Если с первого раза не получилось, можете поговорить с хостинг-провайдером и узнать у него, позволяют ли настройки сервера перемещать файл на уровень выше. Осталось сделать еще один шаг для защиты wp-config.php. Нам нужно создать файл htaccess в той же папке, где находится файл конфигураций, чтобы запретить всем доступ в wp-config.php. Создайте файл htaccess в той же папке, где лежит файл wp-config. Просто так создать файл без расширения не получится, поэтому можно схитрить. Если вы на Mac, создайте текстовый файл с именем htaccess.txt. Затем переименуйте файл, удалив расширение и поставив точку перед названием так, чтобы получилось.htaccess. Мы еще не закончили, теперь необходимо кликнуть правой кнопкой мыши на файле в Finder’е, выбрать Get Info и обрезать расширение.txt в поле Name & Extension. Теперь откройте файл в редакторе и скопируйте в него следующий код: Этот код запретит доступ к файлу wp-config.php. Если вы на Windows, лучше всего вбить код в файл, когда у него еще расширение.txt, а затем переименовать его и удалить части с расширением. На Windows этого достаточно, теперь загрузите файл.htaccess в нужную папку. Как закончите, загрузите этот файл в ту же папку, где хранится файл конфигураций и все!Меняем префикс таблиц
Количество резервных сохранений
Интервал авто сохранений
Автоочищение корзины
Изменить количество выделяемой памяти для PHP
Журнал ошибок WordPress
1. Переименуйте папку wordpress.
Начиная с версии 2.6, стало возможным изменять путь к папке wp-content
. К сожалению это до сих пор неприменимо к папке wp-admin
. Думающие о безопасности блоггеры смирились с этим и стали надеяться, что это станет возможным в будущих версиях. Пока этого не случилось, предлагаем воспользоваться следующим альтернативным решением проблемы. После распаковки архива с файлами WordPress, вы увидите папку «WordPress» - переименуйте папку (в идеале во что-то непонятное вроде "
wordpress_live_Ts6K"
) и после этого настройте соответственным образом файл wp-config.php
, который находится в корневой директории.
Что нам даст это изменение?
Несколько установленных версий в root-каталоге - это возможно!
2. Усовершенствуйте файл wp-config.php
Конфигурационный файл WordPress wp-config.php
содержит в себе некоторые настройки сайта и информацию для доступа к базе данных. Также там другие настройки, касающиеся безопасности (они представлены в списке ниже). Если таких значений в этом файле нет, или же имеются только установленные по умолчанию, вам необходимо, соответственно, добавить или изменить их:
Также вы можете регулировать другие системные настройки в конфигурационном файле. Четкий и исчерпывающий список доступных настроек доступен на странице Кодекса
3. Переместите файл wp-config.php
Также начиная с версии 2.6, WordPress позволяет перемещать файл wp-config.php
на высший уровень. По причине того, что этот файл содержит в себе намного более важную информацию, чем какой либо другой, и потому что всегда намного сложнее получить доступ к корневой папке сервера, имеет смысл хранить его не в той же директории, где и остальные файлы. WortdPress автоматически обратится к высшей папке в поиске файла wp-config.php
. Любые попытки пользователей самим настроить путь бесполезны.4. Защитите файл wp-config.php
Не все ISP серверы позволят вам передавать данные на более высокие уровни, чем корневая директория. Другими словами, не у всех хватит прав для осуществления предыдущего шага. Или по другим причинам: например, если у вас несколько блогов, при определенной структуре папок у вас не получится положить в корень все файлы, так как их имена будут совпадать для каждого из блогов. В этом случае мы можем запретить доступ к файлу wp-config.php
извне при помощи файла .htaccess
. Вот код для этого:
5. Удалите учетную запись администратора.
Во время процесса установки WordPress создает учетную запись администратора с ником «admin» по умолчанию. С одной стороны это вполне логично, с другой - пользователь с известным ником, т.е. ID - 1, обладающий административными правами, является вполне предсказуемой мишенью для хакеров с их программами подбора паролей. Отсюда следует наш совет:
Если у вас не новый блог и под учетной записью admin
вы уже публиковали посты или комментарии, то из предложенных вариантов в момент удаления, выберите пункт «Связать все записи и ссылки с:» и выберите имя нового пользователя:6. Выберите сильный пароль.
Вероятность и частота потенциальных атак прямо зависит от популярности блога. И желательно до этого момента быть уверенным, что в вашем сайте не осталось слабых звеньев в цепи безопасности.7. Защитите папку «wp-admin».
Следуя пословице «две головы лучше одной», существует способ вдвое усилить защиту административной зоны. Защита регулируется файлом .htaccess
, который должен находится в папке «wp-admin»
вместе с файлом .htpasswd
, который хранит логин и пароль пользователя. После обращения к папке, вам нужно будет ввести логин и пароль, но разница в том, что в этом случае авторизация контролируется на стороне сервера, а не силами самого WordPress.8. Запретите отображение ошибок на странице авторизации.
Страница авторизации WordPress - это дверь в административную зону вашего блога, которая становится доступна после безошибочного прохождения верификации. У каждого пользователя существует бесконечное количество попыток авторизации, и каждый раз по умолчанию услужливый WordPress указывает, в чем именно была ошибка. То есть, если введенный логин окажется неверным - WordPress так и скажет. Это удобно для пользователя, но также и для хакера.
Изначальный/измененный вид страницы авторизации.
9. Ограничьте количество неудачных попыток авторизации.
WordPress не ведет статистику авторизаций, как удачных, так и нет. Это очень неудобно для администратора, так как у него нет возможности увидеть были ли попытки несанкционированного доступа, чтобы принять какие-либо меры, если они участятся. Предлагаем два решения: плагины
Настройка базы данных
Исходный wp-config-sample.php
Адрес блога (URL)
Отключить Javascript присоединение
Настройка лога ошибок
Увеличение памяти для PHP
define("FS_CHMOD_DIR", (0755 & ~ umask()));
define("FS_CHMOD_FILE", (0644 & ~ umask()));
Константы для обновления WordPress
define("FS_METHOD", "ftpext");
define("FTP_BASE", "/path/to/wordpress/");
define("FTP_CONTENT_DIR", "/path/to/wordpress/wp-content/");
define("FTP_PLUGIN_DIR ", "/path/to/wordpress/wp-content/plugins/");
define("FTP_PUBKEY", "/home/username/.ssh/id_rsa.pub");
define("FTP_PRIKEY", "/home/username/.ssh/id_rsa");
define("FTP_USER", "username");
define("FTP_PASS", "password");
define("FTP_HOST", "ftp.example.org");
define("FTP_SSL", false);
Включение SSH Обновление доступа
Альтернатива Cron
Дополнительно задаваемые константы
Что хранится в файле wp-config.php
Как защитить wp-config.php
1. Генерируем новые секретные ключи
2. Перемещаем wp-config.php
3. Запрещаем доступ к wp-config.php