Как я могу запретить WordPress запрашивать у меня информацию о FTP при выполнении обновлений?


Как я могу запретить WordPress запрашивать у меня информацию о FTP при выполнении обновлений?

Author: artlung, 2010-08-11

5 answers

Если вы отредактируете свой файл wp-config.php, вы можете предварительно загрузить эти настройки FTP в качестве констант, считываемых WordPress. Имейте в виду, что на общем хостинге вы должны помнить о возможных последствиях для безопасности. См. Раздел Редактирование 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);
 23
Author: artlung, 2010-08-11 20:23:25

Проверьте права собственности на файл. Когда пользователь, у которого работает apache, может писать в каталоги wordpress, тогда интегрированный процесс обновления работает без ftp. Учетные данные FTP предназначены для того, чтобы, если веб-сервер не имеет прав доступа к вашим файлам, wordpress запрашивает у вас данные вашего FTP и пытается использовать их для передачи по FTP на тот же сервер, на котором он находится, чтобы иметь возможность записывать необходимые файлы.

 12
Author: pixeline, 2011-10-19 23:59:06

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

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-данные - это пользователь Apache, и, конечно же, wordpress - это ваша папка установки WordPress.

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

 5
Author: Ardee Aram, 2017-09-01 00:55:00

При точной настройке 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 на рабочий он отключит mod_ruid2. При возврате от Worker к Prefork он не включит mod_ruid2, что приведет к проблеме, описанной в этом сообщении.

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

Надеюсь, что это помогло.

 1
Author: itmonitor, 2017-08-01 16:45:10

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

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

1b) Wordpress, имеющий "скрытую" функцию, внезапно запрашивает у вас учетные данные для ftp

2) Итак, я начал копать глубже, используя его лидерство Арди Арама. Я пошел проверить, в file.php файл и проверенный его собственность. Похоже, что file.php зависит от его собственного владения (которое было неправильно установлено в качестве корневого).

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

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

Я надеюсь, что это поможет кому-то другому не расстраиваться по этому поводу. Я даже не понимаю, почему wordpress в первую очередь не "жалуется", а затем предлагает использовать FTP альтернатива. Теперь это похоже на "функцию", которая внезапно появляется.

 -1
Author: th3penguinwhisperer, 2016-05-10 20:33:58