Як я можу зупинити WordPress від того, щоб спонукати мене вводити інформацію про FTP під час оновлень?


29

Як я можу зупинити WordPress від того, щоб спонукати мене вводити інформацію про FTP під час оновлень?

Відповіді:


23

Якщо ви редагуєте 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);

Це найпростіший спосіб, але як пікселін говорить нижче, перевірте дозволи файлів. Два з трьох облікових даних зберігаються в базі даних, але третій записується у файл (я не можу пригадати, який він у верхній частині голови).
Джон П Блох

12

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


1
Ви дійсно не повинні змінювати право власності на файл на власність веб-сервера, оскільки це потенційний ризик безпеки.
Отто

... хіба що він був погано налаштований, як це було у моєму випадку :)
пікселін

5

Здається, 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/


Ця посилання зараз мертва. Ось архів: web.archive.org/web/20131213005955/http://rubiks.ph/…
Сем Вілсон

Чи хтось може пояснити подробиці: "$ enable_relaxed_file_ownership Необов’язково. Чи дозволяти групу / світ для запису".
Сем Вілсон

@Sam Wilson Зараз я перемістив деякі записи мого блогу до безкоштовного акаунта WordPress. Старий домен мертвий.
Арді Арам

1

Під час тонкої настройки 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) Я не міг погодитися з вищезазначеною відповіддю через те, що він занадто загальний

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

1b) Wordpress, що має "раптовий" характер, раптом попросить вас отримати повноваження для ftp

2) Тож я почав копати глибше, використовуючи його відведення Арді Арама. Я пішов перевірити файл file.php і перевірив його право власності. Здається, що file.php залежить від власного права власності (яке було неправильно встановлено як root).

Виправити: chown www file.php

ПРИМІТКА. Замініть www на будь-який ваш дистрибутив чи налаштування (ви можете використовувати ps aux | egrep "php | http") і в першій колонці подивіться, що є його власником.

Я сподіваюся, що це допомагає комусь іншому засмучуватися з цього приводу. Я навіть не розумію, чому wordpress не "скаржиться" в першу чергу, а потім пропонує використовувати альтернативу FTP. Тепер це як "особливість", яка раптом з'являється.


Ласкаво просимо до WPSE, th3penguinwhisperer. Будь ласка, не соромтеся взяти тур . Знову "відповідь вище", відповіді можуть змінювати порядок у будь-який час в результаті голосування людей. Ми хотіли б, щоб ви відредагували свою публікацію, щоб вказати, на чию відповідь ви посилаєтесь, щоб було зрозуміло. Дякуємо, що додали свої думки!
Тім Малоун
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.