WordPress запрашивает мои учетные данные FTP для установки плагинов

Я установил блог WordPress в своей локальной системе. Но когда я пытаюсь добавить плагины от администратора, он запрашивает доступ по FTP. Что мне нужно настроить, чтобы WordPress мог загружать без FTP?

Ответ 1

Попробуйте добавить код в wp-config.php:

define('FS_METHOD', 'direct');

Ответ 2

Если вы используете Ubuntu.

sudo chown -R www-data:www-data PATH_TO_YOUR_WORDPRESS_FOLDER

Ответ 3

"Всякий раз, когда вы используете панель управления WordPress для автоматической установки, обновления или удаления плагинов, WordPress должен вносить изменения в файлы в файловой системе.

Прежде чем вносить какие-либо изменения, WordPress сначала проверяет, имеет ли он доступ к прямой обработке файловой системы.

Если WordPress не имеет необходимых прав для непосредственного изменения файловой системы, вам будут предложены учетные данные FTP, чтобы WordPress мог попытаться выполнить все, что нужно, с помощью FTP.

Решение: Чтобы узнать, какой пользователь использует ваш экземпляр apache, создайте тест script со следующим содержимым:

<?php echo(exec("whoami")); ?>

Для меня это был демон, а не www-data. Затем исправьте разрешение:

sudo chown -R daemon /path/to/your/local/www/folder

Ответ 4

В OSX я использовал следующее, и он работал:

sudo chown -R _www:_www {path to wordpress folder}

_www - пользователь, которому PHP работает под Mac.

(Возможно, вам также понадобится chmod для некоторых папок. Я сделал это первым, и он не исправил его. Только когда я сделал команду chown, это сработало, поэтому я не уверен, команда chown или комбинация chmod и chown.)

Ответ 5

Я изменил права собственности на папку wordpress на www-данные рекурсивно и перезапустил apache.

sudo chown -R www-data:www-data <folderpath>

Он работал как шарм!

Ответ 6

С первого удара в Google:

WordPress запрашивает ваши учетные данные FTP, когда он не может получить доступ к файлам непосредственно. Обычно это вызвано тем, что PHP работает как пользователь apache (mod_php или CGI), а не пользователь, который владеет вашими файлами WordPress.

Это довольно нормально в большинстве общедоступных хостинговых сред - файлы хранятся как пользователь, а Apache работает как пользователь apache или httpd. Это на самом деле хорошая защита безопасности, поэтому эксплойты и хаки не могут изменять размещенные файлы. Вы можете обойти это, установив все файлы WP на безопасность 777, но это означает нет, поэтому я бы очень советовал вам. Просто используйте FTP, это автоматически посоветовал обходное решение с полным основанием.

Ответ 7

Сначала перейдите в папку установки (например)

cd /Applications/XAMPP/xamppfiles/

Теперь нужно было изменить каталог htdocs:

sudo chown -R daemon htdocs

Введите пароль root при появлении запроса, затем завершите его вызовом chmod:

sudo chmod -R g+w htdocs

Ответ 8

У нас была та же проблема, что и в случае большей проблемы. Предлагаемое решение

define('FS_METHOD', 'direct');

скрывает это окно, но тогда у нас все еще были проблемы с загрузкой тем и обновлений и т.д. Это связано с разрешениями, однако в нашем случае мы исправили проблему, перейдя от поставщика PHP mod_php к более безопасному поставщик PHP-приложений FastCGI.

Ответ 9

Я сделал локальную установку WordPress на Ubuntu 14.04, выполнив шаги, описанные здесь и просто запустив:

sudo chown -R www-data:www-data {path_to_your_project_directory}

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

Надеюсь, что этот помогает всем!

Ответ 10

Самый простой способ решить эту проблему - добавить в свой wp-config.php

следующую информацию о FTP:
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/');

FTP_BASE - это полный путь к папке "base" (ABSPATH) установки WordPress FTP_CONTENT_DIR - это полный путь к папке wp-содержимого установки WordPress. FTP_PLUGIN_DIR - это полный путь к папке плагинов установки WordPress.

Ответ 11

Как упоминалось в Niels, это происходит потому, что пользователь процесса сервера не может писать в папку Wordpress.

Но вот что много статей не объясняет. Это владелец процесса php, а не процесс nginx. Если вы попытаетесь изменить владельца nginx, он не решит этого.

Чтобы решить эту проблему, попробуйте запустить ps aux, чтобы узнать, кому принадлежит процесс php-fpm. Затем проверьте, что пользователь является тем же пользователем, что и владелец папки wordpress, или может, по крайней мере, написать ему. Если пользователь не может писать на него, вам нужно будет изменить разрешения и/или право собственности на папку; или поместить двух пользователей (владельца сервера и владельца папки Wordpress) в общую группу, которая может писать в папку; или изменить свойство пользователя "php.ini" пользователю, который может писать в папку.

Ответ 12

На этот вопрос есть много похожих ответов, но ни один из них не затрагивает основную причину. Комментарий Себастьяна Шмида к оригинальному сообщению затрагивает его, но не полностью. Вот мое взятие по состоянию на 2018-11-06:

Первопричина

Когда вы пытаетесь загрузить плагин через интерфейс администратора WordPress, WordPress вызовет функцию с именем "get_filesystem_method()" (ref: /wp-admin/includes/file.php:1549). Эта подпрограмма попытается записать файл в указанное место (в данном случае каталог плагина). Конечно, он может сразу потерпеть неудачу, если права доступа к файлу не настроены правильно, чтобы позволить пользователю WordPress (например, личность пользователя, выполняющего php) записать файл в указанное место.

Если файл может быть создан, то эта функция затем определяет владельца временного файла вместе с владельцем текущего файла функции (ref: /wp-admin/includes/file.php:1572) и сравнивает их. Если они совпадают, то, по словам WordPress, "WordPress создает файлы с тем же владельцем, что и файлы WordPress, это означает, что безопасно изменять и создавать новые файлы с помощью PHP", и ваш плагин успешно загружен без запроса "Учетные данные FTP". Если они не совпадают, вы получаете приглашение FTP Credentials.

Исправления

  1. Убедитесь, что каталог плагина доступен для записи под именем вашего php-процесса.
  2. Убедитесь, что удостоверение, которое запускает ваш php-процесс, является владельцем файла для:

    а) Все файлы приложений WordPress, или...
    б) По крайней мере, файл /wp-admin/includes/file.php

Заключительные комментарии

Я не слишком заинтересован в том, чтобы специально применять владение файлом к файлу file.php, чтобы обойти эту проблему (по меньшей мере, это кажется хаком!). На данный момент мне кажется, что база кода WordPress склоняется к тому, чтобы мы выполняли процесс PHP под тем же принципалом пользователя, что и владелец файла для файлов приложения WordPress. Я бы приветствовал некоторые комментарии сообщества по этому вопросу.

Ответ 13

Я столкнулся с той же проблемой! Я добавил код ниже в файле wp-config.php (в любой строке), и теперь он работает!

define('FS_METHOD', 'direct');

Ответ 14

Если во время установки плагина Wordpress запрашивает ваше имя хоста или данные FTP. Затем выполните следующие действия:

Войдите на свой сервер и перейдите в /var/www/html/wordpress/. Откройте wp-config.php и добавьте эту строку после определения (‘DB_COLLATE)

define('FS_METHOD', 'direct');

Если вы получили сообщение об ошибке "Не удалось создать каталог". Дайте разрешения на запись в ваш каталог WordPress в рекурсивном виде

chmod -R go+w wordpress

Примечание. В целях безопасности отмените эти разрешения после установки плагина как.

chmod -R go-w wordpress