644 Stimmen

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

Ich nutze WordPress auf meinem Live-Server, der nur SFTP mit einem SSH Schlüssel verwendet.

Ich möchte Plugins installieren und aktualisieren, aber anscheinend muss man für die Installation der Plugins seine FTP-Anmeldeinformationen eingeben. Gibt es eine Möglichkeit, Plugins manuell hochzuladen und zu aktualisieren, anstatt dass WordPress den gesamten Prozess verwaltet?

3 Stimmen

Ja, das können Sie. Verwenden Sie einfach cPanel oder ein beliebiges anderes Datei-Upload-Tool; laden Sie das gezippte Plugin hoch und entpacken es in wp-content/plugins/, dann gehen Sie im wp-Dashboard zum Registerkarte Plugins und aktivieren es.

0 Stimmen

Wenn Sie einen VPS verwenden, sollten Sie dies ausprobieren: stackoverflow.com/a/44137965/3160597

0 Stimmen

@WPDev Wenn Ihr Kommentar als Antwort aufgeführt wäre, würde ich ihn erneut hochvoten, das war am hilfreichsten.

837voto

stereoscott Punkte 13171

WordPress wird Sie nur nach Ihren FTP-Verbindungsinformationen fragen, wenn Sie versuchen, Plugins oder ein WordPress-Update zu installieren, wenn es nicht direkt nach /wp-content schreiben kann. Andernfalls, wenn Ihr Webserver Schreibzugriff auf die erforderlichen Dateien hat, übernimmt er die Updates und Installation automatisch. Diese Methode erfordert nicht, dass Sie über FTP/SFTP- oder SSH-Zugriff verfügen, sondern erfordert, dass bestimmte Dateiberechtigungen auf Ihrem Webserver eingerichtet sind.

Es wird verschiedene Methoden nacheinander ausprobieren und auf FTP zurückgreifen, wenn die direkten und SSH-Methoden nicht verfügbar sind.

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

WordPress wird versuchen, eine temporäre Datei in Ihr /wp-content-Verzeichnis zu schreiben. Wenn dies gelingt, vergleicht es das Eigentum der Datei mit seiner eigenen Benutzer-ID, und wenn Übereinstimmung besteht, können Sie die Methode "direkt" zum Installieren von Plugins, Themen oder Updates verwenden.

Wenn Sie aus irgendeinem Grund nicht auf die automatische Überprüfung zurückgreifen möchten, welche Dateisystemmethode verwendet werden soll, können Sie eine Konstante 'FS_METHOD' in Ihrer Datei wp-config.php definieren, die entweder 'direct', 'ssh', 'ftpext' oder 'ftpsockets' ist, und es wird diese Methode verwenden. Beachten Sie, dass wenn Sie dies auf 'direct' setzen, aber Ihr Webbenutzer (der Benutzername, unter dem Ihr Webserver läuft) nicht über die erforderlichen Schreibberechtigungen verfügt, Sie einen Fehler erhalten.

Zusammenfassend, wenn Sie die Berechtigungen für wp-content nicht ändern möchten (oder können), damit Ihr Webserver Schreibberechtigungen hat, fügen Sie dies zu Ihrer wp-config.php-Datei hinzu:

define('FS_METHOD', 'direct');

Berechtigungen hier erklärt:

41 Stimmen

Ich musste Folgendes tun: sudo chown -R www-data wp-content und Schreibrechte gewähren

5 Stimmen

Die Verwendung von getmyuid in Zeile 876 ist hier möglicherweise falsch, da es die UID des Skriptbesitzers zurückgibt, nicht des Skriptausführers. Ich glaube, es sollte posix_getuid sein.

0 Stimmen

Dies war genau mein Problem. Nachdem ich die Berechtigungen mit CHOWN korrigiert hatte, war alles erledigt. Vielen Dank für die Hilfe!

283voto

unc0nnected Punkte 2944

Wie bereits erwähnt, funktionieren keine der dauerhaften Fixes mehr. Sie müssen die Berechtigungen entsprechend ändern UND folgendes in Ihre wp-config.php einfügen:

define('FS_METHOD', 'direct');

14 Stimmen

Obwohl ich die richtigen Berechtigungen hatte, damit der Webserver in das Plugins-Verzeichnis und das wp-content-Verzeichnis schreiben konnte, hat diese Einstellung es so behoben, dass der Admin nicht mehr nach den FTP/SFTP-Einstellungen zum Aktualisieren von Plugins fragte. Vielen Dank. Hat perfekt funktioniert.

9 Stimmen

Ich musste das auch ausdrücklich tun.

5 Stimmen

Wann haben sie dies zur Voraussetzung gemacht?

118voto

sufinawaz Punkte 3485

Ich wollte nur hinzufügen, dass Sie NIEMALS die Berechtigung für den wp-inhalt Ordner oder die Berechtigung für einen Ordner auf 777 setzen dürfen.

Dies ist was ich tun musste:

1) Ich habe den Besitz des Wordpress-Ordners (rekursiv) auf den Apache-Benutzer gesetzt, wie folgt:

# chown -R apache wordpress/

2) Ich habe den Gruppenbesitz des Wordpress-Ordners (rekursiv) auf die Apache-Gruppe geändert, wie folgt:

# chgrp -R apache wordpress/

3) Den Besitzer volle Berechtigung für das Verzeichnis geben, wie folgt:

# chmod u+wrx wordpress/*

Und das hat funktioniert. Mein wp-inhalt Ordner hat übrigens Berechtigungen von 755.

Zusammengefasste Version:

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

11 Stimmen

Das Einrichten von WordPress als im Besitz von Apache ist genauso schlimm wie die Einstellung von 777. Das Ergebnis ist dasselbe: Jedes PHP-Skript kann nun Ihre WordPress-Dateien ändern. Die beste Option ist, vorübergehend auf apache:apache zu ändern, Ihre Updates zu installieren und dann zurückzukehren, ODER den SSH/FTP-Trick zu verwenden.

14 Stimmen

Ich widerspreche. Es ist nicht ganz dasselbe wie das Einstellen auf 777. Jeder Benutzer auf der Maschine hätte Schreibzugriff, wenn Sie die Berechtigungen auf 777 setzen. Das ist an sich ein Problem. Und obwohl Sie richtig liegen, dass Apache jetzt PHP-Dateien ändern kann, wäre das ja auch der Zweck (um etwas zu aktualisieren oder zu installieren). Wenn es jemandem gelingt, bösartige PHP-Dateien auf den Server zu laden, handelt es sich um ein ganz neues Problem, und das Ändern von "chown" zu verschiedenen Benutzern würde nur wenig helfen.

2 Stimmen

Danke, das hat auch meinen Tag gerettet, da ich keine FTP-Rechte habe, sondern nur Root-Zugriff.

69voto

Yasen Punkte 3280
  1. In wp-config.php füge define('FS_METHOD', 'direct'); hinzu
  2. Mache den Server beschreibbar für die Verzeichnisse wp-content/, wp-content/plugins/.
  3. Installiere das Plugin (kopiere das Plugin-Verzeichnis in das wp-content/plugins Verzeichnis).

Getestet mit Version 3.2.1

4 Stimmen

Habe auch an Version 4.0 gearbeitet.

1 Stimmen

Du musst diese Option hinzufügen, aber du musst nur die Berechtigungen in wp-content/plugins ändern.

0 Stimmen

Dies sind ausdrücklich die Schritte, die Sie befolgen sollten, um ein Plugin zu installieren, ohne nach FTP-Informationen gefragt zu werden. Sie können die Schritte zur Absicherung von WordPress mit Berechtigungen durchführen und dann diese 2 Änderungen vornehmen, und Sie sollten größtenteils sicher bleiben.

52voto

StreetCoder Punkte 9491

Öffnen Sie die Datei wp-config.php und fügen Sie die folgende Zeile hinzu:

define('FS_METHOD', 'direct');

Dies funktioniert für mich ... Danke

0 Stimmen

Auch Version 5.4 zum Stand Juni 2020 funktioniert (und scheint erforderlich zu sein).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X