Конфигурация PHP в WordPress: от wp-config до серверных настроек

Раздел: Администрирование PHP -> Конфигурация и настройка PHP

Основные методы конфигурации WordPress через PHP

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

Как правильно редактировать wp-config.php для изменения основных настроек?

Откройте файл wp-config.php и найдите соответствующие строки. Для добавления новых констант используйте define() перед строкой require_once(ABSPATH . 'wp-settings.php');. Пример установки лимита памяти административной панели:

define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '512M');

Moodle config php (php: конфигурация moodle (config.php))

Константа WP_MEMORY_LIMIT задаёт лимит для фронт-энда, WP_MAX_MEMORY_LIMIT - для панели администратора (обычно выше).

Как настроить отладку и скрыть ошибки?

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

Phpmyadmin config inc php (php: конфигурация phpmyadmin (config.inc.php))

При WP_DEBUG_DISPLAY = false ошибки не выводятся на экран, а записываются в файл wp-content/debug.log.

Как изменить префикс таблиц базы данных?

$table_prefix = 'wp_';  // замените на уникальный префикс, например 'myprefix_'

Config config php домен (php: настройка конфигурации для домена)

Рекомендуется изменять префикс до установки WordPress, иначе придётся вручную переименовывать таблицы.

Типичные проблемы

  • Синтаксическая ошибка: пропущенная точка с запятой или кавычка - сайт перестаёт работать. Всегда проверяйте синтаксис с помощью php -l wp-config.php.
  • Константа определена после wp-settings.php: некоторые константы (например, WP_HOME) должны быть заданы до подключения ядра. Размещайте их в самом начале файла.
  • Проблемы с кэшированием: после изменения wp-config.php может потребоваться очистка кэша (плагины, серверный кэш).

Как изменить параметры PHP только для административной панели?

Если требуется увеличить лимиты на загрузку медиафайлов в админке, можно разместить файл .user.ini в директории /wp-admin/. Содержимое файла:

upload_max_filesize = 128M
post_max_size = 130M
memory_limit = 256M

Wp admin config php (php: конфигурация wordpress (wp-admin/config.php))

Эти настройки будут применяться только к запросам, проходящим через wp-admin. Однако метод работает не на всех хостингах (например, при использовании PHP-FPM через Apache mod_proxy_fcgi).

Если настройки не применяются, проверьте тип обработчика PHP. Для Apache с mod_php проще использовать .htaccess.

Как настроить PHP через .htaccess в wp-admin?

Создайте (или отредактируйте) файл /wp-admin/.htaccess со следующим содержимым:

php_value upload_max_filesize 64M
php_value post_max_size 65M
php_value memory_limit 256M

Config php host (php: настройка host в конфигурационном файле)

Для этого требуется, чтобы на сервере были разрешены директивы AllowOverride Options или AllowOverride All. Если используется mod_php, значения переопределят глобальные настройки.

Ошибка 500 Internal Server Error часто возникает, если модуль mod_php не поддерживает директиву php_value. В таком случае лучше использовать SetEnv или файл php.ini.

Как использовать WP-CLI для изменения конфигурации?

WP-CLI позволяет управлять настройками без ручного редактирования файлов. Установите WP-CLI, затем выполните:

wp config set table_prefix 'newprefix_'
wp config set WP_DEBUG true --raw
wp config set WP_MEMORY_LIMIT 256M --type=constant

Config ini php (php: настройка php.ini)

Команда wp config set автоматически добавляет или обновляет константы в wp-config.php. Флаг --raw записывает значение как есть (без кавычек для булевых).

Если WP-CLI сообщает, что не может найти файл wp-config.php, проверьте, что вы находитесь в корне WordPress или укажите путь через --path=/var/www.

Как создать отдельный конфигурационный файл для административной зоны?

В редких случаях требуется загрузить дополнительные константы только при входе в админку. Для этого создайте плагин (MU-плагин) или отредактируйте wp-config.php, используя условную проверку. Однако константы нельзя объявлять после инициализации WordPress, поэтому правильный подход - фильтр:

add_filter('admin_memory_limit', function($limit) {
    return '512M';
});

Этот код помещается в файл плагина или functions.php активной темы. Он изменяет лимит памяти только для страниц панели администратора (фильтр admin_memory_limit).

Не пытайтесь использовать define() внутри is_admin() - константа будет определена слишком поздно и не подействует. Всегда используйте хуки там, где это возможно.

Расширенные примеры конфигурации

Полный файл wp-config.php с оптимальными настройками

Пример (без данных БД) с пояснениями:

Пример
<?php
// Начальная секция - БД
define('DB_NAME', 'wordpress');
define('DB_USER', 'root');
define('DB_PASSWORD', 'password');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8mb4');
$table_prefix = 'wpx_';

// Ключи аутентификации (можно сгенерировать на https://api.wordpress.org/secret-key/1.1/salt/)
define('AUTH_KEY',         '...');
define('SECURE_AUTH_KEY',  '...');
// ... остальные 6 ключей

// Отладка (включена только для локальной разработки)
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

// Память
define('WP_MEMORY_LIMIT', '128M');          // для фронт-энда
define('WP_MAX_MEMORY_LIMIT', '256M');      // для админки (если выше)

// Относительный путь к папке wp-content
define('WP_CONTENT_DIR', dirname(__FILE__) . '/content');
define('WP_CONTENT_URL', 'https://example.com/content');

// Мультисайт (если используется)
// define('WP_ALLOW_MULTISITE', false);

// Прочие полезные константы
define('WP_AUTO_UPDATE_CORE', false);           // отключить автообновления
define('DISABLE_WP_CRON', true);                // отключить встроенный cron

// Завершение – подключение ядра
require_once(ABSPATH . 'wp-settings.php');
?>

После загрузки файла можно проверить, что все константы определены, выполнив в админке echo WP_MEMORY_LIMIT; (временно). Результат: 128M.

Настройки через .user.ini в wp-admin с проверкой

Создаётся файл /wp-admin/.user.ini с содержимым:

Пример
upload_max_filesize = 128M
post_max_size = 130M
max_execution_time = 300

Для проверки применимости настройки зайдите на любую страницу wp-admin, добавив к URL параметр ?phpinfo=1 (если разрешено). Или создайте временный PHP-файл в wp-admin с phpinfo(); и удалите после проверки. Результат (фрагмент):

upload_max_filesize = 128M (локальное значение)
post_max_size = 130M
max_execution_time = 300

Если вместо локальных значений отображаются глобальные (по умолчанию 2M), значит сервер не поддерживает .user.ini (PHP не в режиме CGI/FastCGI).

Команды WP-CLI для массовой настройки

Пример сессии WP-CLI:

Пример
$ wp config list --format=table
+------------------+------------------+----------+
| name             | value            | type     |
+------------------+------------------+----------+
| table_prefix     | wp_              | variable |
| DB_NAME          | mydb             | constant |
| DB_USER          | user             | constant |
| WP_DEBUG         | true             | constant |
+------------------+------------------+----------+

$ wp config set WP_DEBUG false --raw
Успешно: обновлена константа 'WP_DEBUG'.

$ wp config get WP_DEBUG
false

Команда wp config set умеет добавлять комментарии: --comment="Отключено для продакшена".

Использование фильтров для админ-специфичных настроек

Код MU-плагина (файл wp-content/mu-plugins/admin-config.php):

Пример
<?php
// Увеличить лимит памяти для админки через фильтр (работает независимо от wp-config)
add_filter('admin_memory_limit', function($limit) {
    return '512M';
});

// Изменить максимальный размер загружаемого файла в админке (через фильтры медиа)
add_filter('upload_size_limit', function($size) {
    return 128 * 1024 * 1024; // 128 MB в байтах
});

// Отключить автообновления только для админки
add_action('admin_init', function() {
    if ( ! current_user_can('manage_options') ) return;
    // переопределить глобальные настройки
});
?>

После активации плагина (MU-плагины подключаются автоматически) лимит памяти в админке увеличится. Проверить можно, добавив в файл временный error_log('Memory limit: ' . WP_MEMORY_LIMIT); и посмотрев лог.

Подключение внешнего конфигурационного файла из wp-config.php

Иногда удобно вынести чувствительные данные в отдельный файл, не включаемый в репозиторий. В wp-config.php добавьте:

Пример
if (file_exists(dirname(__FILE__) . '/local-config.php')) {
    require_once(dirname(__FILE__) . '/local-config.php');
} else {
    // Продакшен-настройки по умолчанию
    define('DB_NAME', 'production_db');
    // ...
}

Файл local-config.php содержит те же константы, но для локальной среды. Это позволяет легко переключать конфигурации. Результат: каждый разработчик может иметь свои настройки БД без изменения основного wp-config.php.

PHP: конфигурация WordPress (wp-admin/config.php) - comments

En
Wp admin config php (php)