Ошибка при подключении к FTP/SFTP через wp-admin: причины и решения
WordPress запрашивает FTP-данные при попытке обновить плагин, тему или ядро? Эта проблема знакома многим владельцам сайтов. В этой статье мы разберём, почему WordPress требует FTP/SFTP-доступ, и как решить эту проблему раз и навсегда.
Почему WordPress просит FTP/SFTP?
WordPress использует FTP/SFTP для установки обновлений и плагинов, когда у веб-сервера недостаточно прав на запись в файловую систему. Когда PHP работает от имени пользователя www-data или аналогичного, а файлы сайта принадлежат другому пользователю (например, alexander), WordPress не может напрямую записывать файлы и запрашивает FTP-доступ как обходной путь.
Короткий ответ: Проблема в несовпадении владельца/группы файлов и пользователя, от которого работает PHP-FPM. Решается либо выравниванием прав, либо добавлением констант FS_METHOD и FTP_* в wp-config.php.
Решение 1: Настроить константы в wp-config.php (самый простой)
Добавьте следующие строки в файл wp-config.php перед строкой /* That's all, stop editing! Happy blogging. */:
define('FS_METHOD', 'direct');
define('FTP_BASE', '/var/www/example.com/public_html');
define('FTP_CONTENT_DIR', '/var/www/example.com/public_html/wp-content');
define('FTP_PLUGINS_DIR', '/var/www/example.com/public_html/wp-content/plugins');
define('FTP_THEMES_DIR', '/var/www/example.com/public_html/wp-content/themes');
Константа FS_METHOD со значением 'direct' заставляет WordPress использовать прямой доступ к файловой системе вместо FTP. Остальные константы указывают WordPress, где находятся директории сайта.
Однако этот метод сработает только если у пользователя веб-сервера есть права на запись в эти папки.
Решение 2: Исправить права доступа (правильный подход)
Это наиболее правильное и долговременное решение — настроить корректные права на файлы:
# Перейти в корень сайта
cd /var/www/example.com
# Владельцем всех файлов ставим текущего пользователя
sudo chown -R www-data:www-data .
# Директории — 755, файлы — 644
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
# wp-content должен быть доступен для записи веб-серверу
sudo chmod -R 775 wp-content
Если PHP-FPM работает от другого пользователя (проверьте через <?php echo exec('whoami'); ?>), используйте его вместо www-data.
Решение 3: Проверить, что PHP-FPM работает от правильного пользователя
Часто проблема кроется в конфигурации пула PHP-FPM:
# Редактируем конфигурацию пула
sudo nano /etc/php/8.x/fpm/pool.d/www.conf
Найдите и исправьте параметры:
user = www-data
group = www-data
listen.owner = www-data
listen.group = www-data
Затем перезапустите PHP-FPM:
sudo systemctl restart php8.x-fpm
Теперь PHP работает от www-data, что совпадает с владельцем файлов сайта.
Решение 4: Настроить реальные FTP/SFTP-доступ
Если вы всё же хотите использовать FTP (например, для безопасности), укажите реальные данные подключения:
define('FTP_HOST', 'localhost');
define('FTP_USER', 'ftp_user');
define('FTP_PASS', 'ftp_password');
define('FTP_SSL', true); // для FTPS
Как проверить, что проблема решена
Перейдите в админ-панель WordPress: Панель управления → Обновления. Попробуйте обновить любой плагин. Если FTP-форма больше не появляется — всё работает.
Также можно создать PHP-файл с тестом:
<?php
$file = __DIR__ . '/test-wp-write.txt';
if (file_put_contents($file, 'OK')) {
echo 'Запись возможна!';
unlink($file);
} else {
echo 'Ошибка записи — проверьте права на папку wp-content';
}
Загрузите его в корень сайта и откройте в браузере.
Почему эта проблема возникает на новых серверах
На VPS и выделенных серверах вы часто настраиваете всё вручную. Когда вы копируете файлы через rsync или Git от своего пользователя, а PHP-FPM работает от www-data, возникает конфликт прав. На дешёвых shared-хостингах этой проблемы обычно нет — там всё настроено провайдером.
Заключение
Ошибка «Connection Information» с запросом FTP/SFTP при обновлении WordPress — это не баг, а защитный механизм. WordPress честно сообщает: «я не могу записать файлы». Лучшее решение — настроить единого владельца для всех файлов (веб-сервер) и корректные права 755/644. После этого установите define('FS_METHOD', 'direct') в wp-config.php — и FTP-форма больше вас не побеспокоит.
Автор: Александр Самарин
Дата публикации: 5 июня 2026
Рубрика: Техничка WordPress
