Как отключить запрос FTP-данных в WordPress при обновлении?

11 авг. 2010 г., 23:22:53
Просмотры: 21.7K
Голосов: 30

Как отключить запрос FTP-данных в WordPress при выполнении обновлений?

0
Все ответы на вопрос 5
1
24

Если вы отредактируете файл wp-config.php, вы можете предустановить эти FTP-настройки в виде констант, которые будет читать WordPress. Имейте в виду, что на shared-хостинге следует учитывать возможные последствия для безопасности. См. раздел Редактирование wp-config.php для получения дополнительной информации.

Ваши настройки могут отличаться, но эти работают для меня и моей хостинговой конфигурации. Я включил некоторые неиспользуемые константы с префиксами:

define('FS_METHOD', 'direct');
define('FTP_BASE', '/usr/home/username/public_html/my-site.example.com/wordpress/');
define('FTP_CONTENT_DIR', '/usr/home/username/public_html/my-site.example.com/wordpress/wp-content/');
define('FTP_PLUGIN_DIR ', '/usr/home/username/public_html/my-site.example.com/wordpress/wp-content/plugins/');
// define('FTP_PUBKEY', '/home/username/.ssh/id_rsa.pub');
// define('FTP_PRIKEY', '/home/username/.ssh/id_rsa');
define('FTP_USER', 'my-ftp-username');
define('FTP_PASS', 'my-ftp-password');
define('FTP_HOST', 'ftp.my-site.example.com');
// define('FTP_SSL', false);
11 авг. 2010 г. 23:23:25
Комментарии

Это самый простой способ, но, как отметил pixeline ниже, проверьте права доступа к файлам. Два из трёх учётных данных хранятся в базе данных, а третий записывается в файл (не могу вспомнить сходу, какой именно).

John P Bloch John P Bloch
12 авг. 2010 г. 16:17:52
2
13

Проверьте права владения файлами. Если пользователь, от имени которого работает Apache, имеет права на запись в директории WordPress, то встроенный процесс обновления будет работать без использования FTP. Учетные данные FTP требуются только в том случае, если веб-сервер не имеет необходимых прав на ваши файлы. В этом случае WordPress запросит данные FTP и попытается использовать их для подключения к тому же серверу, на котором он работает, чтобы иметь возможность записывать необходимые файлы.

11 авг. 2010 г. 23:45:53
Комментарии

Вам действительно не следует изменять владельца файлов на веб-сервер, так как это представляет потенциальный риск для безопасности.

Otto Otto
20 окт. 2011 г. 04:23:57

...если только изначально не было неправильной настройки, как в моем случае :)

pixeline pixeline
20 окт. 2011 г. 12:35:15
3

Оказывается, WordPress не только проверяет, доступны ли директории для записи, но и проверяет, принадлежат ли они пользователю Apache (или, по крайней мере, принадлежит ли временный файл, который он создает, пользователю Apache). Обратите внимание на эти строки кода в /wp-admin/includes/file.php: get_filesystem_method():

if ( $temp_handle ) {
    if ( getmyuid() == @fileowner($temp_file_name) )
        $method = 'direct';
    @fclose($temp_handle);
    @unlink($temp_file_name);
}

Таким образом, быстрое решение — выполнить следующую команду и передать права на всю установку WordPress пользователю Apache:

sudo chown -R www-data wordpress/

Где www-data — это пользователь Apache, и, конечно же, wordpress — это ваша директория с установленным WordPress.

Я более подробно описал своё решение здесь: https://ardeearam.wordpress.com/2013/02/03/solved-wordpress-asking-for-ftp-credentials-when-upgrading/

11 нояб. 2012 г. 08:49:01
Комментарии

Эта ссылка теперь не работает. Вот архивная версия: http://web.archive.org/web/20131213005955/http://rubiks.ph/solved-wordpress-asking-for-ftp-credentials-when-upgrading/

Sam Wilson Sam Wilson
18 июн. 2015 г. 11:47:11

Может кто-то объяснить детали параметра: "$allow_relaxed_file_ownership Необязательный. Разрешать ли запись для группы/всех пользователей."

Sam Wilson Sam Wilson
18 июн. 2015 г. 12:20:41

@Sam Wilson Я перенес часть записей своего блога на бесплатный аккаунт WordPress. Старый домен больше не работает.

Ardee Aram Ardee Aram
19 июн. 2015 г. 04:16:53
0

При тонкой настройке Apache 2.4 через EasyApache4 для улучшения скорости загрузки сайта на сервере Centos 7 с PHP 7, я включил mod_pagespeed. При его включении автоматически отключаются модули mod_ruid2 и mod_cgi (и включаются два других модуля). При отключении mod_pagespeed модуль mod_ruid2 не включается автоматически обратно — повторно включается только mod_cgi. Без mod_ruid2 WordPress будет запрашивать FTP-данные.

Нет необходимости жестко прописывать настройки в wp-config.php или (опасно) устанавливать права на файлы в 777. Достаточно вручную включить mod_ruid2, перезапустить Apache, и проблема с FTP/правами доступа будет решена. WordPress и плагины теперь можно обновлять как обычно, а медиафайлы — загружать в галерею WordPress. Это работает сразу же.

Я также проверил, что при смене MPM с Prefork на Worker модуль mod_ruid2 отключается. При возврате с Worker обратно на Prefork mod_ruid2 не включается автоматически, что приводит к описанной в этом посте проблеме.

В обоих случаях ключевым моментом является проверка и включение mod_ruid2.

Надеюсь, это поможет.

1 авг. 2017 г. 19:45:10
1
-1

1) Я не могу согласиться с ответом выше, потому что он слишком общий

1a) Мне просто не хочется рекурсивно менять владельца всех моих файлов (как использовать дробовик, чтобы убить комара). Тем более что раньше всё работало идеально.

1b) У WordPress есть "хитрая" особенность — внезапно запрашивать учетные данные для FTP.

2) Поэтому я начал глубже копать, следуя подсказке Ardee Aram. Я проверил файл file.php и его владельца. Оказалось, что file.php зависит от собственных прав доступа (которые были некорректно установлены на root).

Исправление: chown www file.php

ПРИМЕЧАНИЕ: Замените www на соответствующее значение для вашего дистрибутива или настроек (можно выполнить ps aux | egrep "php|http" и посмотреть владельца в первом столбце).

Надеюсь, это поможет кому-то избежать разочарования. Мне даже непонятно, почему WordPress сначала не "жалуется", а потом предлагает использовать FTP как альтернативу. Теперь это выглядит как "фича", которая внезапно появилась.

10 мая 2016 г. 23:33:58
Комментарии

Добро пожаловать на WPSE, th3penguinwhisperer. Пожалуйста, не стесняйтесь ознакомиться с экскурсией. Что касается "ответа выше" - порядок ответов может меняться в любое время в результате голосования пользователей. Будем признательны, если вы отредактируете свой пост, указав, к какому именно ответу вы обращаетесь, чтобы это было понятно. Спасибо за ваши мысли!

Tim Malone Tim Malone
11 мая 2016 г. 00:10:17