Я установил блог 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
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
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.
Исправления
- Убедитесь, что каталог плагина доступен для записи под именем вашего php-процесса.
-
Убедитесь, что удостоверение, которое запускает ваш 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