Ответы:
Если вы редактируете свой 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);
Проверьте свое право собственности на файл. Когда пользователь, который работает с Apache, может писать в каталоги WordPress, тогда интегрированный процесс обновления все работает без ftp. Учетные данные FTP предназначены для тех случаев, когда веб-сервер не имеет необходимых прав доступа к вашим файлам, тогда WordPress запрашивает ваши данные FTP и пытается использовать их для FTP обратно на тот же сервер, на котором он может записать файлы это нужно.
Кажется, что 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/
При тонкой настройке 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) Я не мог согласиться с ответом выше, потому что он слишком общий
1a) Я просто не хочу рекурсивно менять владельца всех моих файлов (как при использовании дробовика, чтобы убить комара). Тем более, что это прекрасно работает раньше.
1b) WordPress, обладающий «подлым» свойством, внезапно попросит у вас учетные данные для ftp
2) Поэтому я начал копать глубже, используя его лидерство Арди Арама. Я проверил файл file.php и проверил его принадлежность. Похоже, файл file.php зависит от его собственного владельца (который был неправильно установлен как root).
Исправление: chown www file.php
ПРИМЕЧАНИЕ. Замените www на то, каким является ваш дистрибутив или настройки (вы можете использовать ps aux | egrep "php | http" и посмотреть, кто является его владельцем в первом столбце.
Я надеюсь, что это поможет кому-то еще расстроиться из-за этого. Я даже не понимаю, почему WordPress не «жалуется» в первую очередь, а затем предлагает использовать альтернативу FTP. Теперь это как «особенность», которая внезапно вводится.