it-swarm.com.ru

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

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

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

506
user77413

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', и он будет использовать этот метод. Имейте в виду, что если вы установите для этого параметра значение «direct», но ваш веб-пользователь (имя пользователя, под которым работает ваш веб-сервер) не имеет надлежащих разрешений на запись, вы получите сообщение об ошибке.

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

define('FS_METHOD', 'direct');

Разрешения объяснены здесь: 

709
stereoscott

Как уже говорилось, ни одно из пермских исправлений больше не работает. Вам необходимо соответствующим образом изменить ПЕРЕДАЧИ и указать в wp-config.php следующее:

define('FS_METHOD', 'direct');
232
unc0nnected

Просто хотел добавить, что вы НИКОГДА не должны устанавливать разрешение 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/*
95
sufinawaz
  1. В wp-config.php добавить define('FS_METHOD', 'direct');
  2. Сделайте сервер доступным для записи в каталогах wp-content/, wp-content/plugins/.
  3. Установите плагин (скопируйте каталог плагина в каталог wp-content/plugins).

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

68
Lamy

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

define('FS_METHOD', 'direct');

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

44
StreetCoder

Просто быстрое изменение на 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");
33
ravi patel

Чтобы включить использование 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');

«Фраза-пароль» является необязательной, если вы не настроили фразу-пароль во время ssh-kengen; тогда не добавляйте его в wp-config.php

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

Рекомендации:

21
JacquelineIO

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

18
Toby Allen

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

Sudo chown -R www-data:www-data your_folder_name

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

define('FS_METHOD', 'direct');

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

16
Roman

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

define('FS_METHOD', 'direct');

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

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

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

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

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

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

15
Rahul Balakrishna

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

Sudo chown -R www-data /var/www

Для получения дополнительной информации посетите Wordpress на Ubuntu установить плагины без доступа по FTP

15
Bikram Shrestha

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

cd your_wordpress_directory
Sudo chown -R www-data wp-content
Sudo chmod -R 755 wp-content
13
mikermcneil

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

11
D. Lambert

Попробуй это

1) В wp-config.php добавить определение ('FS_METHOD', 'direct');

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

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

9
Raj

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

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

9
chrismanderson

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

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

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

  1. создайте Zip-файл для кода плагина.
  2. перейдите на сторону администратора (/ test/wp-admin), затем перейдите по ссылке на плагин, затем нажмите на добавление нового, затем просмотрите папку плагина Zip и установите плагин, затем выберите опцию активировать плагин, так что активируйте плагин и активировать плагин.
8
Maulik patel

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

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

8
kaysa

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

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

8
Mark Jeldi
  1. изменить с php_mod на fastcgi с включенными cgi & SuEXEC , работает для меня 

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

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

    chmod -R 775 ./wp-content

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

    define ('FS_METHOD', 'direct');

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

8
Zaman

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

6
Schoffelman

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

6
Sudar

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

define('FS_METHOD', 'direct');

а также 

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

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

Перед этим мне пришлось добавить плагин вручную, добавив файл .Zip в папку плагинов, а затем перейти к wp-admin/plugins и установить его.

5
ZainZaheer

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

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

define('FS_METHOD', 'direct');

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

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

3
Javeed Shakeel

установка 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 проблемами безопасности в Интернете.

2
Jason

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

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

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

$Sudo a2enmod rewrite

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

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

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

1
Manuja Jayawardana

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

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

define('METHOD','direct');

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

Спасибо,

0
Riyaz

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

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

Как проверить: 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 

0
Tristup