Файл wp-config.php – самый важный файл при установке WordPress. Он является основным конфигурационным файлом Вашего сайта, управляет ключевыми аспектами функциональных возможностей WordPress и предоставляет WordPress’у данные для решения ответственных задач, типа коннекта с базой данных.
Без файла wp-config.php WordPress просто не будет работать. Поэтому, всякий раз, когда Вы устанавливаете WordPress, одна из первых задач, которые необходимо выполнить, это подготовить Ваш файл wp-config.php.
В общем, все довольно просто – достаточно указать Ваши параметры базы данных MySQL, и готово. Другие параметры настройки, доступные в файле wp-config.php, будут работать по умолчанию. Но есть некоторые вещи, которые Вы можете сделать, чтобы настроить функциональные возможности, повысить безопасность и улучшить работу Вашего сайта.
Если мы посмотрим на те файлы, которые входят в состав дистрибуции WordPress, то файла wp-config.php мы там не найдем. Зато есть файл wp-config-sample.php. Именно этот файл и надо взять за основу, добавить в него необходимые параметры, и сохранить в главном каталоге установки WordPress под именем wp-config.php.
В качестве следующего шага можно обезопасить этот файл от возможности несанкционированного доступа к нему на сайте. Для этого в файл .htaccess, который расположен на сервере в том же каталоге, куда устанавливается WordPress, надо добавить следующие строчки:
Order Allow,Deny
Deny from all
Убедитесь, что права доступа к обоим этим файлам – chmod 640. Это запрещает доступ к ним по внешним запросам, при этом выдается код 403-Forbidden.
Основные настройки
Вначале следует указать параметры базы MySQL, которую Вы создали для своего сайта.
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'database_name_here');
/** MySQL database username */
define('DB_USER', 'username_here');
/** MySQL database password */
define('DB_PASSWORD', 'password_here');
/** MySQL hostname */
define('DB_HOST', 'localhost');
Тут все ясно – просто указываете имя базы данных (при этом не забудьте о том, что на Вашем сервере к имени, которое Вы выбрали, впереди добавляется префикс, совпадающий с Вашим именем аккаунта на хостинге), а также имя пользователя (помним о префиксе впереди!), и пароль для данного пользователя.
Например, если имя Вашего аккаунта – simple, а имя базы данных, которое Вы задали при создании – wpbase, то в качестве имени базы данных необходимо указывать simple_wpbase.
Все эти параметры указываются в нешифрованном виде, как есть. Поэтому так важно предохранить данный файл от несанкционированного доступа извне.
В качестве имени хоста (hostname) обычно указывается localhost, так что тут менять ничего не надо. На некоторых хостах, тем не менее, могут использоваться другие значения. Так что, если этот вариант работать не будет, Вам нужно будет связаться с хостером и узнать о действующих у него правилах.
Далее идут две строчки с настройками кодировки.
/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');
/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');
Как правило, таблица utf-8 в наилучшей степени подходит в качестве кодовой таблицы WordPress, так как она мультиязычна. В любом случае, не меняйте эти строки без особой необходимости.
Более специфическими параметрами являются так называемые уникальные ключи аутентификации
/**#@+
* Authentication Unique Keys and Salts.
*
* Change these to different unique phrases!
* You can generate these using the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}
* You can change these at any point in time to invalidate all existing
cookies. This will force all users to have to log in again.
*
* @since 2.6.0
*/
define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
define('AUTH_SALT', 'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT', 'put your unique phrase here');
define('NONCE_SALT', 'put your unique phrase here');
/**#@-*/
Эти ключи влияют на файлы cookies, которые записываются на компьютеры посетителей сайта. Считается, что каждое значение должно быть уникальным и достаточно большим по размерам. Однако, Вам нет надобности ломать голову о том, какие значения выбрать. Достаточно воспользоваться сервисом, адрес которого указан здесь же, а именно https://api.wordpress.org/secret-key/1.1/salt/
Обратившись по данному адресу, Вы получите восемь строчек с уникальными ключами. Вы можете просто скопировать их и заменить исходные строки в файле wp-config.php.
Далее идет параметр, позволяющий задать префикс к таблицам базы данных.
/**
* WordPress Database Table prefix.
*
* You can have multiple installations in one database if you give each a unique
* prefix. Only numbers, letters, and underscores please!
*/
$table_prefix = 'wp_';
По умолчанию, этот префикс – “wp_”. Можно его не менять. Но если Вас беспокоят вопросы обеспечения безопасности, то лучше его изменить. Потому что все хакерские боты и скрипты обычно настроены на стандартные умолчания. Установив свое значение, Вы затрудните задачу хакеров. Чем более случайным и уникальным будет значение, тем лучше. Можно использовать для этого какой-нибудь сервис генерации паролей, например тот, что имеется на хостах с CPanel, или любой другой. И тогда вместо “wp_“ Вы получите что-то вроде “cDEo3jDf_”.
Наконец, строка языковой настройки.
/**
* WordPress Localized Language, defaults to English.
*
* Change this to localize WordPress. A corresponding MO file for the chosen
* language must be installed to wp-content/languages. For example, install
* de.mo to wp-content/languages and set WPLANG to 'de' to enable German
* language support.
*/
define ('WPLANG', '');
Многие считают, что для того, чтобы WordPress говорил по-русски, нужна специальная локализованная дистрибуция. Конечно, специальная дистрибуция не помешает. Но можно обойтись и без нее. Достаточно в настройках для языка задать значение ‘ru’.
Дополнительные настройки
1) Ревизии записей
Последние версии WordPress поддерживают систему ревизий, которая позволяет пользователям сохранять различные версии их постов на блоге и даже возвращаться к ранее сохраненным версиям в случае необходимости. Независимо от того, нравится Вам такая возможность, или нет, вот несколько параметров конфигурации, которые могут оказаться для Вас полезными.
// Limit the number of saved revisions
define('WP_POST_REVISIONS', 3); // any integer, but don't go crazy
// Disable the post-revisioning feature
define('WP_POST_REVISIONS', false); // kill the bloat
Первое из этих определений позволяет ограничить количество ревизий заданным числом. Второе вообще отменяет ревизии для Вашего сайта.
2) Интервал автосохранения
По умолчанию WordPress сохраняет Вашу работу каждые 60 секунд. Но с помощью соответствующего параметра в wp-config.php это можно изменить. Например, так:
define('AUTOSAVE_INTERVAL', 180); // in seconds
Здесь число – это интервал автосохранения в секундах.
3) Корзина
Начиная с версии WordPress 2.9, все удаленные записи, будь то посты или комментарии, попадают в так называемую «корзину», которая по умолчанию освобождается каждые 30 дней. Но можно задать и другой интервал, например, недельный:
define('EMPTY_TRASH_DAYS', 7); // empty weekly
Если в качестве параметра поставить цифру 0, то все записи будут удаляться сразу же, без попадания в корзину.
4) Блокировка внешних запросов
Если Вы не хотите, чтобы в админпанели выдавались сообщения WordPress о новых плагинах, ссылках на Ваш блог, и другая подобная информация, чтобы сайт не принимал пингбэки и трекбэки, то для этого можно использовать параметр
define('WP_HTTP_BLOCK_EXTERNAL', true);
При этом все запросы с Вашего сайта вовне блокируются.
Если Вы все же хотите, чтобы можно было посылать запросы к некоторым URL, то эти адреса следует указывать в параметрах, например:
define('WP_ACCESSIBLE_HOSTS', 'rpc.pingomatic.com');
5) Адрес WordPress и адрес сайта
Эти параметры можно указывать в настройках админпанели. Но можно и в файле wp-config.php.
define('WP_HOME', 'http:// bizsoftlab.ru '); // no trailing slash
define('WP_SITEURL', 'http://bizsoftlab.ru'); // no trailing slash
Однако после этого Вы не сможете изменять их в админпанели.
6) Отладка WordPress
Этот режим позволяет выводить предупреждающие сообщения при работе системы WordPress.
define('WP_DEBUG', true); // debugging mode: 'true' = enable; 'false' = disable
По идее, он должен использоваться при разработке новых плагинов и тем WordPress. Однако разработчики редко пользуются этой возможностью. В результате, если Вы включите данный режим, то будете удивлены обилием различных предупреждающих и ошибочных сообщений даже от самых популярных плагинов.
Но сообщения об ошибках можно перенаправить в отдельный файл, чтобы затем анализировать его на досуге.
@ini_set('log_errors','On');
@ini_set('display_errors','Off');
@ini_set('error_log','/home/path/domain/logs/php_error.log');
Для файла ошибок надо задать соответствующие права доступа, чтобы он был доступен для записи.
Анализ файла ошибок позволит вовремя отслеживать проблемы с Вашим сайтом, если они возникнут.
7) Увеличение памяти PHP
Если Вы получаете сообщение об ошибке “Allowed memory size of xxx bytes exhausted”, то это означает, что для работы PHP на сервере не хватает памяти. В этом случае размер памяти можно увеличить:
define('WP_MEMORY_LIMIT', '64M');
По умолчанию значение равно 32М, поэтому есть смысл задавать только то, что больше, например, 64М, 96М, 128М.
Правда, не все хосты позволяют это делать. Поэтому при необходимости Вам, возможно, придется договариваться со своим хостером.
Есть и другие параметры, которые можно задавать в файле wp-config.php. Все они приведены в Codex’е разработчиков WordPress. Но даже этих вполне достаточно, чтобы можно было значительно расширить возможности настройки Вашего сайта.