it-swarm.com.de

Kann ich WordPress-Plugins ohne FTP-Zugriff installieren/aktualisieren?

Ich verwende WordPress auf meinem Live-Server, der nur SFTP verwendet, und zwar mit einer SSH - Taste. 

Ich möchte Plugins installieren und aktualisieren, aber anscheinend müssen Sie Ihr FTP-Login eingeben, um die Plugins zu installieren. Gibt es eine Möglichkeit, Plugins zu installieren und zu aktualisieren, indem Sie die Dateien manuell hochladen, anstatt dass WordPress den gesamten Prozess übernimmt? 

506
user77413

WordPress fragt Sie nur nach Ihren FTP-Verbindungsinformationen, wenn Sie versuchen, Plugins oder ein WordPress-Update zu installieren, wenn es nicht direkt in /wp-content geschrieben werden kann. Andernfalls, wenn Ihr Webserver Schreibzugriff auf die erforderlichen Dateien hat, übernimmt er automatisch die Aktualisierungen und die Installation. Für diese Methode ist kein FTP/SFTP- oder SSH-Zugriff erforderlich, jedoch müssen für Ihren Webserver bestimmte Dateiberechtigungen eingerichtet sein.

Es werden verschiedene Methoden in der angegebenen Reihenfolge ausprobiert und auf FTP zurückgegriffen, wenn Direct- und SSH-Methoden nicht verfügbar sind.

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

WordPress versucht, eine temporäre Datei in Ihr /wp-content-Verzeichnis zu schreiben. Wenn dies gelingt, vergleicht es den Besitz der Datei mit der eigenen Benutzer-ID. Wenn eine Übereinstimmung besteht, können Sie Plugins, Designs oder Updates mit der direkten Methode installieren.

Wenn Sie sich aus irgendeinem Grund nicht auf die automatische Prüfung der zu verwendenden Dateisystemmethode verlassen möchten, können Sie in Ihrer 'FS_METHOD'-Datei eine Konstante wp-config.php definieren. Dies ist entweder 'direct', 'ssh', 'ftpext' or 'ftpsockets' und diese Methode wird verwendet. Beachten Sie, dass Sie eine Fehlermeldung erhalten, wenn Sie "direct" einstellen, aber Ihr Webbenutzer (der Benutzername, unter dem Ihr Webserver ausgeführt wird) nicht über die erforderlichen Schreibberechtigungen verfügt.

Wenn Sie also nicht die Berechtigungen für wp-content ändern möchten (oder können), damit Ihr Webserver über Schreibberechtigungen verfügt, fügen Sie dies der Datei wp-config.php hinzu:

define('FS_METHOD', 'direct');

Berechtigungen, die hier erklärt werden: 

709
stereoscott

Wie bereits erwähnt, funktionieren keine der Perm-Fixes mehr. Sie müssen die Dauerwellen entsprechend ändern UND Folgendes in Ihren wp-config.php einfügen:

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

Ich wollte nur hinzufügen, dass Sie NIEMALS die wp-content-Berechtigung oder Berechtigung eines Ordners auf 777 setzen dürfen. 

Das musste ich tun um:

1) Ich lege den Besitz des Wordpress-Ordners (rekursiv) für den Apache-Benutzer fest:

# chown -R Apache wordpress/

Bei Ubuntu, Mint oder Debian # chown -R www-data:www-data wordpress/

2) Ich habe den Besitz der Gruppe des WordPress-Ordners (rekursiv) in die Apache-Gruppe geändert, wie folgt:

# chgrp -R Apache wordpress/

Überspringen Sie diesen Schritt für Ubuntu, Mint oder Debian

3) Geben Sie dem Besitzer das volle Privileg, wie folgt:

# chmod u+wrx wordpress/*

Und das hat den Job gemacht. Mein wp-content-Ordner hat 755-Berechtigungen, übrigens.

TL; DR-Version:

# chown -R Apache:apache wordpress
# chmod u+wrx wordpress/*
95
sufinawaz
  1. In wp-config.php add define('FS_METHOD', 'direct');
  2. Machen Sie die Verzeichnisse wp-content/, wp-content/plugins/ für den Server beschreibbar.
  3. Installieren Sie das Plugin (kopieren Sie das Plugin-Verzeichnis in das Verzeichnis wp-content/plugins).

Arbeitete an Version 3.2.1

68
Lamy

öffne die wp-config.php Datei und füge die folgende Zeile hinzu:

define('FS_METHOD', 'direct');

das funktioniert für mich ... Danke

49
StreetCoder

Nur eine kurze Änderung in wp-config.php

define('FS_METHOD','direct');

Das ist es, genießen Sie Ihre Wordpress-Updates ohne FTP !

Alternative Methode:

Es gibt Hosts, die verhindern, dass diese Methode funktioniert um die Aktualisierung von WordPress zu erleichtern. Zum Glück gibt es einen anderen Weg zu Halten Sie diesen Schädling davon ab, Sie zur Eingabe Ihres FTP-Benutzernamens und Kennworts aufzufordern.

Nach den MYSQL-Login-Deklarationen in Ihrer Datei wp-config.php wird Folgendes hinzufügen:

define("FTP_Host", "localhost");
define("FTP_USER", "yourftpusername");
define("FTP_PASS", "yourftppassword");
33
ravi patel

Um die Verwendung von SSH2 für Aktualisierungen und das Hochladen von Designs zu ermöglichen, müssen Sie Ihre SSH-Schlüssel generieren und das SSH-Modul PHP installieren. Dann erkennt WordPress, dass Sie über SSH2 verfügen, und beim Hochladen/Aktualisieren wird eine andere Option (SSH2) angezeigt.

1.) Stellen Sie sicher, dass das für Debian installierte Modul PHP installiert ist:

Sudo apt-get install libssh2-php

2.) SSH-Schlüssel generieren, das Hinzufügen einer Passphrase ist optional:

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

3.) Ändern Sie die Berechtigung, damit WordPress auf diese Schlüssel zugreifen kann:

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

Jetzt erhalten Sie die Option SSH2, wenn Sie ein Upload/Upgrade/Plugin durchführen.WP SSH Connection

4.) Zur Vereinfachung können Sie die Standardwerte in Ihrem wp-config.php festlegen. Dadurch werden die SSH-Anmeldeinformationen im WordPress-Upload-Fenster vorbelegt.

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');

Die Passphrase ist optional, wenn Sie während ssh-kengen keine Passphrase einrichten. dann füge es nicht in wp-config.php hinzu

Das hat mein Problem gelöst. Und ich musste die chown gar nicht machen. Aber ich habe gesehen, dass diese Methode an anderen Stellen referenziert wurde.

Verweise:

21
JacquelineIO

Normalerweise können Sie Ihr Plugin einfach in das Verzeichnis wp-content\plugins hochladen. Wenn Sie über SFTP keinen Zugriff auf dieses Verzeichnis haben, kann es sein, dass Sie festgefahren sind.

18
Toby Allen

Sie können es sehr einfach erhalten, indem Sie den folgenden Befehl auf Prompt eingeben

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

oder kopieren Sie den folgenden Code und fügen Sie ihn in Ihre Datei wp-config.php ein. 

define('FS_METHOD', 'direct');

Dabei ist "your_folder_name" der Ordner, in dem WordPress in diesem Ordner installiert ist.

16
Roman

Fügen Sie den folgenden Code zu wp-config hinzu

define('FS_METHOD', 'direct');

FS_METHOD erzwingt die Dateisystemmethode. Es sollte nur direkt, ssh2, ftpext oder ftpsockets sein. Im Allgemeinen sollten Sie dies nur ändern, wenn Probleme bei der Aktualisierung auftreten. Wenn Sie es ändern und es nicht hilft, ändern Sie es zurück oder entfernen Sie es. In den meisten Fällen funktioniert die Einstellung auf 'ftpsockets', wenn die automatisch gewählte Methode nicht funktioniert.

(Primary Preference) "direct" erzwingt die Verwendung von Direct File-E/A-Anforderungen in PHP. Dies ist mit dem Öffnen von Sicherheitsproblemen auf schlecht konfigurierten Hosts verbunden.

(Secondary Preference) "ssh2" erzwingt die Verwendung der Erweiterung SSH PHP, falls installiert

(3rd Preference) "ftpext" erzwingt die Verwendung der FTP-Erweiterung PHP für den FTP-Zugriff und schließlich

(4th Preference) "ftpsockets" verwendet die Sockets-Klasse PHP für den FTP-Zugriff

Weitere Informationen finden Sie unter: http://codex.wordpress.org/Editing_wp-config.php#WordPress_Upgrade_Constants

15

Führen Sie den folgenden Code im Terminal aus

Sudo chown -R www-data /var/www

Weitere Informationen finden Sie unter Wordpress auf Ubuntu installiert Plugins ohne FTP-Zugriff

15
Bikram Shrestha

Wenn Sie sich auf Ubuntu befinden, ist eine schnelle Lösung, die für mich funktioniert hat, dem Apache -Eigentümer (www-data standardmäßig) das Eigentum.

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

Mit WordPress 2.7 können Sie eine ZIP-Datei direkt hochladen (es gibt einen Link am unteren Rand der Plugins-Seite) - kein FTP-Zugriff erforderlich. Dies ist eine neue Funktion in 2.7 und funktioniert nur für Plugins (noch keine Themen).

11
D. Lambert

Versuche dies

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

2) Legen Sie das Verzeichnis "wp-content" auf 777 fest.

3) Installieren Sie nun das Plugin.

9
Raj

Einen alten Thread auferstehen lassen, aber es gibt ein fantastisches neues Plugin namens SSH SFTP Updater Support , das SFTP-Funktionen hinzufügt, ohne die wp-config.php-Datei bearbeiten zu müssen. Außerdem setzt die SFTP-Implementierung von Wordpress auf etwas undeutliche PHP - Module, die auf Servern häufig nicht aktiviert sind. Dieses Plugin enthält ein anderes PHP SFTP-Plugin, sodass Sie auf der Apache-Seite nichts konfigurieren müssen. 

Ich hatte eine Menge Probleme, den SFTP-Support zum Laufen zu bringen - dieses Plugin hat alle gelöst und ist einfach fantastisch.

9
chrismanderson

Ja, installieren Sie das Plugin direkt in WordPress.

  1. Kopieren Sie den Plugin-Ordner und fügen Sie ihn in den WordPress-Plugin-Ordner ein.
  2. gehen Sie auf die Admin-Seite (/ test/wp-admin) und wechseln Sie dann zum Plugin-Link, und überprüfen Sie den Namen des Plugins.
  3. Aktivieren Sie das Plugin, und installieren Sie das Plugin einfach.

andere Option

  1. erstellen Sie die Zip-Datei für den Plugin-Code.
  2. gehe zur Admin-Seite (/ test/wp-admin) und dann zum Plugin-Link. Klicke dann auf den Add-Eintrag. Durchsuchen Sie den Zip-Ordner des Plugins und installieren Sie das Plugin Plugin aktivieren.
8
Maulik patel

Die Antwort von stereointeractive umfasst alle Optionen. Ich wollte nur eine alternative Art der Verwendung von FTP erwähnen. Ich vermute, dass der Grund, aus dem Sie keinen FTP-Zugriff zulassen, aus Sicherheitsgründen besteht. Eine Möglichkeit, diese Sicherheitsbedenken auszuräumen, besteht darin, Ihren FTP-Server nur auf 127.0.0.1 zu überwachen 

Dadurch können Sie FTP in WordPress verwenden und Plugins installieren, ohne es dem Rest der Welt zugänglich zu machen. Dies kann auch für andere gängige Webanwendungen wie Joomla! und Drupal. Dies ist, was wir mit unseren BitNami-Appliances und Cloud-Servern tun und funktioniert sehr gut.

8
kaysa

Ich empfehle auch das SSH SFTP Updater Support Plugin . Ich habe auch alle meine Probleme gelöst ... vor allem in Bezug auf Plugins zum Löschen durch den Admin. Installieren Sie es einfach wie gewohnt. Wenn Sie das nächste Mal von WordPress nach FTP-Details gefragt werden, stehen Ihnen zusätzliche Felder zum Kopieren/Einfügen Ihres privaten SSH-Schlüssels oder Hochladen Ihrer PEM-Datei zur Verfügung.

Das einzige Problem, das ich habe, ist, sich an den Schlüssel zu erinnern (versucht beide Methoden). Ich mag es nicht, jedes Mal, wenn ich ein Plugin löschen muss, es zu finden und einzugeben. Aber zumindest ist es jetzt eine feste Lösung.

8
Mark Jeldi
  1. Ändern Sie von php_mod zu fastcgi mit cgi & SuEXEC 

vergiss nicht, wenn du nicht arbeitest, versuche es zu ändern

  1. wp-content als root auf 775 ändern 

    chmod -R 775 ./wp-content

  2. füge wp-config.php hinzu

    define ('FS_METHOD', 'direkt');

ich hoffe es klappt 

8
Zaman

Wir verwenden SFTP mit SSH (auf unseren Entwicklungs- und Live-Servern), und ich habe (nicht zu hart) versucht, die WordPress-Upload-Funktion zu verwenden. Ich stimme Toby zu, lade deine Plugins in das wp-content/plugins Verzeichnis hoch und aktiviere sie von dort aus.

6
Schoffelman

Es ist möglich, SFTP oder SSH zum automatischen Aktualisieren von Plugins in WordPress zu verwenden. Sie müssen jedoch die Erweiterung ssh2 pecl verwenden. Wie das geht, erfahren Sie im folgenden Tutorial

6
Sudar

Ich habe eine Menge Leute gesehen, die empfohlen haben, 777 die Erlaubnis zu erteilen. Ich hatte das gleiche Problem wie vor zwei Tagen und alles, was ich tat, war, dieses zu wp-content hinzuzufügen

define('FS_METHOD', 'direct');

und 

setzen Sie die Berechtigung für den Plugin-Ordner auf 775

Dies löste mein Problem, den Login/Passwort für den FTP-Zugang anzufordern.

Vorher musste ich das Plugin manuell hinzufügen, indem ich die .Zip-Datei zum Plugin-Ordner hinzufügte und dann zu wp-admin/plugins ging und es installierte.

5
ZainZaheer

Probieren Sie dies aus Prüfen Sie, ob die richtige Berechtigung für den Ordner wp-content erteilt wurde.

Bearbeiten Sie die Datei wp-config.php und fügen Sie die folgende Zeile hinzu 

define('FS_METHOD', 'direct');

chmod das Verzeichnis "wp-content" mit www-data für vollen Zugriff.

Versuchen Sie nun das Plugin zu installieren.

3
Javeed Shakeel

ein FTP oder sogar eine SFTP-Verbindung oder ein chmod 777 einzurichten, ist eine schlechte Wahl für eine andere Umgebung als eine lokale Umgebung. Das Öffnen einer SFTP-Methode führt zu mehr Sicherheitsrisiken, die nicht benötigt werden.

was benötigt wird, ist eine schreibbare Berechtigung für/wp-content/uploads &/wp-content/plugins/durch den Eigentümer dieser Verzeichnisse. (linux ls -la zeigt den Besitz an).

Der standardmäßig ausgeführte Apache-Benutzer ist www-data.

mit chmod 777 kann jeder Benutzer auf dem Computer diese Datei bearbeiten, nicht nur den Benutzer des Apache/php-Threads.

Wenn Sie SFTP nicht bereits verwenden, wird ein weiterer Punkt des möglichen Ausfalls von einer externen Quelle eingeführt. Sie benötigen lediglich den lokalen Benutzer, der den Apache/php-Prozess ausführt, um das Ziel zu erreichen.

Ich habe niemanden gesehen, der diese Punkte macht, also dachte ich, ich würde diese Informationen anbieten, um bei unseren ständigen WP Sicherheitsproblemen online zu helfen.

2
Jason

Bitte füge define('FS_METHOD','direct'); in die wo-config.php ein

1
Gulshan kumar

Hier ist eine einfache Methode.

Führen Sie die folgenden Befehle aus.

Dadurch wird Ihr mod_rewrite-Modul für Apache aktiviert

$Sudo a2enmod rewrite

Dieser Befehl ändert den Eigentümer des Ordners in www-data

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

Nachdem Sie die obigen Befehle ausgeführt haben, können Sie alle Designs ohne FTP installieren.

1

Ja, du kannst es schaffen.

Sie müssen hinzufügen

define('METHOD','direct');

in deiner wp config. Diese Methode wird jedoch nicht bevorzugt, da sie Sicherheitsverletzungen aufweist.

Vielen Dank,

0
Riyaz

Der beste Weg, Plugins mit SSH zu installieren, ist WPCLI. 

Beachten Sie, dass der SSH-Zugriff zwingend erforderlich ist, um WP CLI-Befehle verwenden zu können. Überprüfen Sie vor der Verwendung, ob die CLI WP auf Ihrem Hosting-Server oder Ihrer Maschine installiert ist. 

Wie zu prüfen: wp --version [Zeigt die installierte wp cli-Version an]

Falls nicht installiert, wie installiert man es: Vergewissern Sie sich vor der Installation von WP-CLI, dass die Umgebung die Mindestanforderungen erfüllt:

UNIX-ähnliche Umgebung (OS X, Linux, FreeBSD, Cygwin); eingeschränkte Unterstützung in der Windows-Umgebung . PHP 5.4 oder höher WordPress 3.7 oder höher. Versionen, die älter als die neueste WordPress-Version sind, können die Funktionalität beeinträchtigen

Wenn die obigen Punkte erfüllt sind, führen Sie die folgenden Schritte aus: Referenz-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 ]

Nun ist die CLI WP zur Installation bereit. 

Jetzt können Sie jedes Plugin installieren, das in WordPress.org verfügbar ist, indem Sie die folgenden Befehle verwenden: 

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

HINWEIS: Mit wp cli können nur die Plugins installiert werden, die in wordpress.org verfügbar sind 

0
Tristup