Відповіді:
Якщо ви редагуєте 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) Я не міг погодитися з вищезазначеною відповіддю через те, що він занадто загальний
1а) Я просто не хочу змінювати право власності на всі мої файли рекурсивно (як при використанні дробовика для вбивства комара). Тим більше, що це чудово працювало раніше.
1b) Wordpress, що має "раптовий" характер, раптом попросить вас отримати повноваження для ftp
2) Тож я почав копати глибше, використовуючи його відведення Арді Арама. Я пішов перевірити файл file.php і перевірив його право власності. Здається, що file.php залежить від власного права власності (яке було неправильно встановлено як root).
Виправити: chown www file.php
ПРИМІТКА. Замініть www на будь-який ваш дистрибутив чи налаштування (ви можете використовувати ps aux | egrep "php | http") і в першій колонці подивіться, що є його власником.
Я сподіваюся, що це допомагає комусь іншому засмучуватися з цього приводу. Я навіть не розумію, чому wordpress не "скаржиться" в першу чергу, а потім пропонує використовувати альтернативу FTP. Тепер це як "особливість", яка раптом з'являється.