Могу ли я установить/обновить плагины WordPress без предоставления FTP-доступа?

Я использую WordPress на моем живом сервере, который использует SFTP с помощью SSH.

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

Ответ 1

WordPress будет запрашивать информацию о вашем FTP-подключении только при попытке установить плагины или обновление WordPress, если оно не может напрямую записываться в /wp-content. В противном случае, если ваш веб-сервер имеет доступ на запись к необходимым файлам, он автоматически позаботится об обновлениях и установке. Этот метод не требует наличия доступа к FTP/SFTP или SSH, но для этого требуется, чтобы на вашем веб-сервере были установлены определенные разрешения на доступ к файлам.

Он попробует различные методы в порядке и откажется от FTP, если Direct и SSH методы недоступны.

https://github.com/WordPress/WordPress/blob/4.2.2/wp-admin/includes/file.php#L912

WordPress попытается записать временный файл в ваш каталог /wp-content. Если это удается, оно сравнивает право собственности на файл с собственным uid, и если есть совпадение, это позволит вам использовать "прямой" метод установки плагинов, тем или обновлений.

Теперь, если по какой-то причине вы не хотите полагаться на автоматическую проверку того, какой метод файловой системы использовать, вы можете определить константу 'FS_METHOD' в вашем файле wp-config.php, который является либо 'direct', 'ssh', 'ftpext' or 'ftpsockets', и он будет использовать этот метод. Имейте в виду, что если вы установите для этого "прямой", но ваш пользователь сети (имя пользователя, под которым работает ваш веб-сервер) не имеет надлежащих прав на запись, вы получите сообщение об ошибке.

В общем, если вы не хотите (или не можете) изменять разрешения на wp-контент, чтобы ваш веб-сервер имел разрешения на запись, затем добавьте это в свой файл wp-config.php:

define('FS_METHOD', 'direct');

Разрешения, описанные здесь:

Ответ 2

Как указывалось ранее, ни одна из перманентных исправлений не работает. Вам нужно соответствующим образом изменить perms и поместить в wp-config.php следующее:

define('FS_METHOD', 'direct');

Ответ 3

Просто хотел добавить, что вы НИКОГДА не должны устанавливать разрешение wp-content или разрешение любой папки на 777.

Вот что я должен был сделать, чтобы:

1) Я установил владение папкой wordpress (рекурсивно) для пользователя apache, например, так:

# chown -R apache wordpress/

В случае Ubuntu, Mint или Debian # chown -R www-data:www-data wordpress/

2) Я изменил групповое владение папкой wordpress (рекурсивно) на группу apache, вот так:

# chgrp -R apache wordpress/

Пропустите этот шаг для Ubuntu, Mint или Debian

3) дать владельцу полную привилегию на каталог, например так:

# chmod u+wrx wordpress/*

И это сделало работу. Моя папка wp-content имеет 755 разрешений, кстати.

TL; DR версия:

# chown -R apache:apache wordpress
# chmod u+wrx wordpress/*

Ответ 4

  • В wp-config.php добавить define('FS_METHOD', 'direct');
  • Сделать сервер доступным для записи каталогами wp-content/, wp-content/plugins/.
  • Установите плагин (скопируйте каталог плагина в директорию wp-content/plugins).

Работает на версии 3.2.1

Ответ 5

откройте файл wp-config.php и добавьте следующую строку:

define('FS_METHOD', 'direct');

это работает для меня... спасибо

Ответ 6

Просто быстрое изменение wp-config.php

define('FS_METHOD','direct');

Вот оно, наслаждайтесь обновлением wordpress без ftp!

Альтернативный метод:

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

Опять же, после объявлений входа MYSQL в файле wp-config.php, добавьте следующее:

define("FTP_HOST", "localhost");
define("FTP_USER", "yourftpusername");
define("FTP_PASS", "yourftppassword");

Ответ 7

Чтобы включить использование SSH2 для ваших обновлений и загрузки тем, вы должны сгенерировать свои SSH-ключи и установить модуль PHP SSH. Затем WordPress обнаружит, что у вас есть SSH2, и вы увидите другой вариант (SSH2), отображаемый при выполнении загрузки/обновления.

1.) Убедитесь, что у вас установлен модуль PHP для debian:

sudo apt-get install libssh2-php

2.) Создайте ключи SSH, добавив кодовую фразу:

ssh-keygen
cd  ~/.ssh
cp id_rsa.pub authorized_keys

3.) Измените разрешение, чтобы WordPress мог получить доступ к этим клавишам:

cd ~
chmod 755 .ssh
chmod 644 .ssh/*

Теперь вы получите опцию SSH2 при выполнении загрузки/обновления/плагина. WP SSH Connection

4.) Для дополнительной простоты вы можете настроить значения по умолчанию в своем wp-config.php, и это предварительно заполнит учетные данные SSH в окне загрузки WordPress.

define('FTP_PUBKEY','/home/<user>/.ssh/id_rsa.pub');
define('FTP_PRIKEY','/home/<user>/.ssh/id_rsa');
define('FTP_USER','<user>');
define('FTP_PASS','passphrase');
define('FTP_HOST','domain.com');

"passphrase" является необязательным, если вы не устанавливаете кодовую фразу во время ssh-kengen; то не добавляйте его в wp-config.php

Это решило мою проблему. И мне вообще не нужно было делать chown. Но я видел этот метод в других местах.

Литература:

Ответ 8

Обычно вы можете просто загрузить свой плагин в каталог wp-content\plugins. Если у вас нет доступа к этому каталогу через SFTP, я боюсь, что вы можете застрять.

Ответ 9

Вы можете получить это очень легко, набрав следующую команду в командной строке

sudo chown -R www-data:www-data your_folder_name

или скопируйте и вставьте следующий код в файл wp-config.php.

define('FS_METHOD', 'direct');

Где "your_folder_name" - это папка, в которой установлен ваш WordPress внутри этой папки.

Ответ 11

Добавьте следующий код в wp-config

define('FS_METHOD', 'direct');

FS_METHOD вызывает метод файловой системы. Это должны быть только прямые, ssh2, ftpext или ftpsockets. Как правило, это необходимо изменить, если вы испытываете проблемы с обновлением. Если вы измените его, и это не поможет, замените его/удалите. В большинстве случаев установка его в "ftpsockets" будет работать, если автоматически выбранный метод не работает.

(первичное предпочтение) "direct" заставляет его использовать запросы на ввод-вывод Direct File из PHP, это чревато открытием проблем безопасности на плохо настроенных хостах. Это выбирается автоматически, когда это необходимо.

(Secondary Preference) "ssh2" - принудительно использовать расширение PHP SSH, если установлено

(3-е предпочтение) "ftpext" - принудительное использование расширения PHP PHP для FTP-доступа и, наконец,

(4-я преференция) "ftpsockets" использует класс сокетов PHP для доступа к FTP

Для получения дополнительной информации посетите: http://codex.wordpress.org/Editing_wp-config.php#WordPress_Upgrade_Constants

Ответ 12

Если вы находитесь на Ubuntu, быстрое решение, которое сработало для меня, - это передача права собственности на Apache пользователь (www-data по умолчанию):

cd your_wordpress_directory
sudo chown -R www-data wp-content
sudo chmod -R 755 wp-content

Ответ 13

WordPress 2.7 позволяет загружать zip файл напрямую (там есть ссылка внизу страницы плагинов) - не требуется FTP-доступ. Это новая функция в версии 2.7, и она работает только для плагинов (еще не темы).

Ответ 14

  1. перейти с php_mod на fastcgi с fastcgi cgi & SuEXEC, у меня работает

не забывай если не работаешь попробуй поменять

  1. изменить wp-контент на 775 как root

    chmod -R 775./wp-content

  2. добавить в wp-config.php

    define ('FS_METHOD', 'direct');

надеюсь это работает

Ответ 15

Возобновление старого потока, но есть новый плагин под названием SSH SFTP Updater Support, который добавляет в возможности SFTP без необходимости редактировать ваш файл wp-config.php. Кроме того, реализация Wordpress SFTP основана на некоторых несколько неясных модулях PHP, которые часто не поддерживаются серверами; этот плагин упаковывает другой плагин PHP SFTP, поэтому вам не нужно ничего настраивать на стороне Apache.

У меня возникло множество проблем, связанных с получением поддержки SFTP - этот плагин решил все из них и просто фантастичен.

Ответ 16

Попробуйте это

1) В wp-config.php add define ('FS_METHOD', 'direct');

2) Установите для каталога "wp-content" значение 777 для записи.

3) Теперь установите плагин.

Ответ 17

Ответ от stereointeractive охватывает все варианты. Просто хотел упомянуть альтернативный способ использования FTP. Я предполагаю, что причина, по которой вы не разрешаете FTP-доступ, для безопасности. Один из способов решения этих проблем безопасности - запустить ваш FTP-сервер, прослушивая только 127.0.0.1

Это позволяет использовать FTP изнутри WordPress, и вы сможете устанавливать плагины, не подвергая его остальному миру. Это также можно применить к другим популярным веб-приложениям, таким как Joomla! и Drupal. Это то, что мы делаем с нашими устройствами BitNami и облачными серверами и работает достаточно хорошо.

Ответ 18

Я также рекомендую плагин поддержки SSH SFTP Updater Support. Просто решили все мои проблемы тоже... особенно в отношении получения плагинов для удаления через администратора. Просто установите его обычным способом, и в следующий раз, когда вам будут предложены данные WordPress для FTP, вам будут добавлены дополнительные поля для копирования/вставки частного SSH-ключа или загрузки вашего файла PEM.

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

Ответ 19

Да, прямо установите плагин в WordPress.

  • Скопируйте папку плагина и вставьте в папку плагина WordPress.
  • перейдите к стороне администратора (/test/wp-admin), затем перейдите к ссылке плагина и проверьте имя плагина.
  • Активируйте плагин, чтобы легко установить плагин.

другой вариант

  • создать zip файл для кода плагина.
  • перейдите к административной стороне (/test/wp-admin), затем перейдите по ссылке плагина, а затем нажмите кнопку "Добавить новое", затем просмотрите папку zip-плагина и установите плагин, затем выйдите из опции "включить плагин", чтобы сделать активировать плагин и активировать плагин.

Ответ 20

Мы используем SFTP с SSH (как на наших серверах разработки, так и на живых серверах), и я попытался (не слишком сложно) использовать функцию загрузки WordPress. Я согласен с Тоби, загрузите плагин в каталог wp-content/plugins и затем активируйте их оттуда.

Ответ 21

Можно использовать SFTP или SSH для автоматического обновления плагинов в WordPress, но вам нужно иметь расширение ssh2 pecl. Вы можете узнать, как это сделать, используя следующий учебник

Ответ 22

Я видел много людей, рекомендующих установить разрешение на 777. У меня была такая же проблема, как и 2 дня назад, и все, что я сделал, добавили это в wp-content

define('FS_METHOD', 'direct');

и

установить разрешение для 775 для папки с плагинами

Это решило мою проблему с запросом входа/пароля для доступа к FTP.

До этого я должен был добавить плагин вручную, добавив файл .zip в папку плагина, а затем перейдите к wp-admin/plugins и должен был установить его.

Ответ 23

Попробуйте это. Проверьте правильность разрешения доступа к папке wp-content.

Отредактируйте wp-config.php и добавьте следующую строку

define('FS_METHOD', 'direct');

chmod каталог "wp-content" в www-data для полного доступа.

Теперь попробуйте установить плагин.

Ответ 24

Да, ты можешь сделать это.

Вам нужно добавить

define('METHOD','direct');

в вашем wpconfig. Но этот метод не будет предпочтительным, потому что он имеет охранные функции.

Спасибо,

Ответ 25

установка ftp, или даже SFTP-соединения, или chmod 777 - плохой путь для чего-либо, кроме локальной среды. Открытие даже метода SFTP создает больше рисков для безопасности, которые не нужны.

для этого требуется разрешение на запись /wp-content/uploads &/wp-content/plugins/владельцем этих каталогов. (linux ls -la покажет вам право собственности).

Пользователь Apache по умолчанию - www-data.

CHMOD 777 позволяет редактировать эти файлы любому пользователю машины, а не только пользователю ветки apache/php.

SFTP, если вы еще не используете его, представит другую точку возможного сбоя из внешнего источника. В то время как для выполнения задачи вам нужен доступ только локальному пользователю, выполняющему процесс apache/php.

Я не видел, чтобы кто-то высказывал эти замечания, поэтому я подумал, что предложу эту информацию, чтобы помочь с нашими постоянными проблемами безопасности WP в Интернете.

Ответ 26

Вот простой метод.

Выполните следующие команды.

Это включит ваш модуль mod_rewrite для Apache

$sudo a2enmod rewrite

Эта команда изменит владельца папки на www-data

$sudo chown -R www-data [Wordpress Folder Location]

После выполнения вышеуказанных команд вы можете устанавливать любые темы без FTP.

Ответ 27

Пожалуйста, добавьте define('FS_METHOD','direct'); в wo-config.php

Ответ 28

Единственная причина, по которой WordPress не позволяет вам загружать плагин через панель администратора WordPress, когда у вас нет разрешения на запись в каталог /wp-content. Помните, что для вашего каталога wordpress/wp-content требуется уровень разрешений 0755. Существуют различные способы изменить уровень разрешений папки.

Изменение прав доступа к файлу с помощью cPanel:

Перейдите в диспетчер файлов и откройте общедоступную папку HTML, где должен находиться ваш веб-сайт WordPress, или откройте корневой каталог сайта, если ваш веб-сайт находится в какой-то другой папке. В корневом каталоге WordPress перейдите к папке wp-content; в конце строки папки wp-content в самом последнем поле указаны права доступа к файлам для этой папки. Обязательно измените уровень разрешений папки на 0755, и все готово.

Изменение прав доступа к файлу с помощью терминала SSH:

В вашем терминале найдите корень сайта WordPress, который в моем случае был /var/www/html, чтобы перейти в корневой каталог WordPress, введите следующую команду:

cd /var/www/html 

Теперь вы находитесь в корневом каталоге WordPress, где находится необходимая папка /wp-content. Поэтому, чтобы изменить права доступа к файлу, введите следующую команду:

sudo chmod wp-content 755 

Это изменит разрешение вашего файла каталога /wp-content на 0755.

Теперь вы не получите сообщение об ошибке загрузки плагинов WordPress через FTP.

Ответ 29

Лучший способ установить плагин с использованием SSH - это WPCLI.

Обратите внимание, что доступ SSH является обязательным для использования команд WP CLI. Перед использованием проверьте, установлен ли WP CLI на вашем хост-сервере или компьютере.

Как проверить: wp --version [Он покажет установленную версию wp cli]

Если он не установлен, как его установить. Перед установкой WP-CLI убедитесь, что среда соответствует минимальным требованиям:

UNIX-подобная среда (OS X, Linux, FreeBSD, Cygwin); ограниченная поддержка в среде Windows. PHP 5.4 или более поздняя версия WordPress 3.7 или более поздняя версия. Версии, более старые, чем последняя версия WordPress, могут иметь пониженную функциональность

Если вышеуказанные пункты удовлетворены, пожалуйста, следуйте инструкциям: Ссылочный URL: WPCLI

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
[ download the wpcli phar ]

php wp-cli.phar --info [ check whether the phar file is working ]

chmod +x wp-cli.phar [ change permission ]
sudo mv wp-cli.phar /usr/local/bin/wp [ move to global folder ]
wp --info [ to check the installation ]

Теперь WP CLI готов к установке.

Теперь вы можете установить любой плагин, доступный в WordPress.org, используя следующие команды:

wp install plugin plugin-slug
wp delete plugin plugin-slug
wp deactivate plugin plugin-slug

ПРИМЕЧАНИЕ: wp cli может устанавливать только те плагины, которые доступны на wordpress.org

Ответ 30

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