Kann ich WordPress-Plugins installieren / aktualisieren, ohne FTP-Zugang zu gewähren?

564

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

Ich möchte Plugins installieren und aktualisieren, aber es scheint, dass Sie Ihr FTP-Login eingeben müssen, um die Plugins zu installieren. Gibt es eine Möglichkeit, Plugins durch manuelles Hochladen der Dateien zu installieren und zu aktualisieren, anstatt dass WordPress den gesamten Prozess abwickelt?

user77413
quelle
3
Ja, du kannst. Verwenden Sie einfach cPanel oder ein anderes Tool zum Hochladen von Dateien. Laden Sie das komprimierte Plugin hoch und extrahieren Sie es in das wp-content/plugins/wp-Dashboard. Gehen Sie zur Registerkarte Plugins und aktivieren Sie es.
WPDev
Wenn Sie ein verwenden VPS, sollten Sie dies versuchen: stackoverflow.com/a/44137965/3160597
azerafati
@WPDev Wenn Ihr Kommentar als Antwort aufgeführt wäre, würde ich ihn erneut bewerten, das war am hilfreichsten.
Tensigh

Antworten:

771

WordPress fordert Sie nur dann zur Eingabe Ihrer FTP-Verbindungsinformationen auf, wenn Sie versuchen, Plugins oder ein WordPress-Update zu installieren, wenn es nicht schreiben kann /wp-content direkt darauf geschrieben werden kann. Andernfalls kümmert sich Ihr Webserver automatisch um die Aktualisierung und Installation, wenn er Schreibzugriff auf die erforderlichen Dateien hat. Für diese Methode ist kein FTP / SFTP- oder SSH-Zugriff erforderlich, für Ihren Webserver müssen jedoch bestimmte Dateiberechtigungen eingerichtet sein.

Es werden verschiedene Methoden der Reihe nach 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-contentVerzeichnis zu schreiben . Wenn dies erfolgreich ist, wird der Besitz der Datei mit der eigenen UID verglichen. Wenn eine Übereinstimmung vorliegt, können Sie die direkte Methode zum Installieren von Plugins, Designs oder Updates verwenden.

Wenn Sie sich aus irgendeinem Grund nicht auf die automatische Überprüfung der zu verwendenden Dateisystemmethode verlassen möchten, können Sie 'FS_METHOD'in Ihrer wp-config.phpDatei entweder eine Konstante definieren, 'direct', 'ssh', 'ftpext' or 'ftpsockets'die diese Methode verwendet. Beachten Sie, dass Sie eine Fehlermeldung erhalten, wenn Sie dies auf "Direkt" setzen, Ihr Webbenutzer (der Benutzername, unter dem Ihr Webserver ausgeführt wird) jedoch nicht über die richtigen Schreibberechtigungen verfügt.

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

define('FS_METHOD', 'direct');

Hier erläuterte Berechtigungen:

Stereoscott
quelle
30
Ich musste tun: sudo chown -R www-data wp-content sowie das Erteilen von Schreibberechtigungen
mikermcneil
5
Die Verwendung von getmyuidOnline 876 ist hier wohl falsch, da sie die UID des Skriptbesitzers und nicht des Skriptausführers zurückgibt. Ich glaube es sollte sein posix_getuid.
cmbuckley
7
Was sind die Sicherheitsauswirkungen dieses Ansatzes?
Jahmic
1
Wenn Sie sehen möchten, unter welchem ​​Benutzer PHP ausgeführt wird, können Sie Folgendes verwenden: print_r(posix_getpwuid(posix_geteuid())); Sie können den Code in die wp-configDatei einfügen .
Ivan V.
3
chown -R www-data wordpress/wp-contentnicht für mich arbeiten, aber chown -R www-data wordpresstat
Martin
251

Wie bereits erwähnt, funktioniert keine der Dauerwellenkorrekturen mehr. Sie müssen die Dauerwellen entsprechend ändern UND Folgendes in Ihre wp-config.php:

define('FS_METHOD', 'direct');
nicht verbunden
quelle
11
Obwohl ich die richtigen Berechtigungen hatte, damit der Webserver in das Plugins-Verzeichnis und das wp-content-Verzeichnis schreiben konnte, wurde diese Einstellung behoben, sodass der Administrator nicht nach den FTP / SFTP-Einstellungen zum Aktualisieren der Plugins fragte. Vielen Dank. Hat perfekt funktioniert.
Sean McCleary
7
Ich musste das auch explizit tun.
Julien_c
5
Wann haben sie dies zur Voraussetzung gemacht?
Danjp
Ich musste mich auch auf diese Einstellung verlassen, auf das WP, das vom Debian-Paket unter Ubuntu 12.04 installiert wurde. Ansonsten waren die Berechtigungen in Ordnung, wp-content hat die rwx-Berechtigung für die Gruppe www-data ...
alci
2
Stellen Sie sicher, dass Folgendes nicht bereits in der Datei wp-config.php enthalten ist: define ('FS_METHOD', 'ftpext'); In diesem Fall platzieren Sie define ('FS_METHOD', 'direct'); am Ende der Datei wird nicht funktionieren. Sie müssen die Definition löschen oder auskommentieren ('FS_METHOD', 'ftpext'); Dies kann besonders wahrscheinlich sein, wenn Sie von einem anderen Server migriert haben, für den FTP erforderlich ist.
Doug
104

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

Das musste ich tun:

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

# chown -R apache wordpress/

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

# chgrp -R apache wordpress/

3) Geben Sie dem Eigentümer das volle Privileg für das Verzeichnis, wie folgt:

# chmod u+wrx wordpress/*

Und das hat den Job gemacht. Mein wp-contentOrdner hat 755übrigens Berechtigungen.

TL; DR-Version:

# chown -R apache:apache wordpress
# chmod u+wrx wordpress/*
Sufinawaz
quelle
11
Das Einstellen von WordPress als Eigentum von Apache ist genauso schlecht wie das Einstellen von 777. Das Ergebnis ist dasselbe: Jedes PHP-Skript kann jetzt Ihre WordPress-Dateien ändern. Die beste Option ist, Apache zu chown: Apache temporär, installieren Sie Ihre Updates und chown zurück zum Original ODER verwenden Sie den ssh / ftp-Trick
woens
11
Ich stimme dir nicht zu. Dies entspricht nicht ganz der Einstellung auf 777. Jeder Benutzer auf dem Computer hätte Schreibzugriff, wenn Sie die Berechtigungen auf 777 festlegen. Dies ist an sich schon ein Problem. und während Sie richtig sind, kann dieser Apache jetzt PHP-Dateien ändern, das wäre in erster Linie die Absicht (um irgendetwas zu aktualisieren oder zu installieren). Wenn es jemandem gelingt, schädliche PHP-Dateien auf dem Server abzulegen, ist dies ein völlig neues Problem, und das Chowning an verschiedene Benutzer würde wenig helfen.
Sufinawaz
2
Danke, es hat mir auch den Tag gerettet, da ich keine FTP-Berechtigungen habe, sondern nur Root-Zugriff.
Shasi Kanth
4
Dies ist der einzige, der mir geholfen hat! Vielen Dank, nach Jahren der Entwicklung von Wordpress-Sites ist dies immer noch ein klassisches Problem!
acidghost
1
Wenn Sie WordPress unter einem ungewöhnlichen Build ausführen, fügen Sie dies in eine PHP-Datei ein, um zu überprüfen, als wen Apache ausgeführt wird (Ubuntu ist beispielsweise www-data): <? Php echo exec ('whoami'); ?>
Imperativ
70
  1. Im wp-config.php hinzufügendefine('FS_METHOD', 'direct');
  2. Server die Verzeichnisse beschreibbar machen wp-content/,wp-content/plugins/ .
  3. Installieren Sie das Plugin (kopieren Sie das Plugin-Verzeichnis in das wp-content/pluginsVerzeichnis).

Arbeitete an Version 3.2.1

Lamy
quelle
4
Arbeitete auch an Version 4.0.
Meetai.com
1
Sie müssen diese Option hinzufügen, aber Sie müssen nur die Dauerwellen auf wp-content / plugins ändern
John Kloian
Dies sind explizit die Schritte, die Sie ausführen sollten, um ein Plugin zu installieren, ohne zur Eingabe von FTP-Informationen aufgefordert zu werden. Sie können die Schritte zum Härten von WordPress mit Berechtigungen ausführen und dann diese beiden Änderungen vornehmen. Sie sollten größtenteils sicher bleiben.
Bozdoz
51

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

define('FS_METHOD', 'direct');

das funktioniert bei mir ... Danke

StreetCoder
quelle
Funktioniert (und scheint erforderlich) ab Juni 2020 auch auf Version 5.4.
Ralf Hein
34

Nur eine schnelle Änderung zu wp-config.php

define('FS_METHOD','direct');

Das war's, 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 vereinfachen. Glücklicherweise gibt es eine andere Möglichkeit, um zu verhindern, dass dieser Schädling Sie zur Eingabe Ihres FTP-Benutzernamens und -Kennworts auffordert.

Fügen Sie nach den MYSQL-Anmeldeerklärungen in Ihrer Datei wp-config.php erneut Folgendes hinzu:

define("FTP_HOST", "localhost");
define("FTP_USER", "yourftpusername");
define("FTP_PASS", "yourftppassword");
Ravi Patel
quelle
22

Um die Verwendung von SSH2 für Ihre Updates und Themen-Uploads zu ermöglichen, müssen Sie Ihre SSH-Schlüssel generieren und das PHP-SSH-Modul installieren. Dann erkennt WordPress, dass SSH2 verfügbar ist, und beim Hochladen / Upgrade wird eine andere Option (SSH2) angezeigt.

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

sudo apt-get install libssh2-php

2.) Generieren Sie SSH-Schlüssel. 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 SSH2-Option, wenn Sie ein Upload / Upgrade / Plugin durchführen. WP SSH-Verbindung

4.) Zur Vereinfachung können Sie die Standardeinstellungen in Ihrem wp-config.phpeinrichten. Dadurch werden die SSH-Anmeldeinformationen im WordPress-Upload-Fenster vorab ausgefüllt.

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ährenddessen keine Passphrase einrichten ssh-kengen. dann füge es nicht hinzuwp-config.php

Dies löste mein Problem. Und das musste ich überhaupt nicht tun chown. Aber ich habe diese Methode an anderen Stellen gesehen.

Verweise:

JacquelineIO
quelle
Ich bin kein Sicherheitsexperte, und mir ist klar, dass WordPress diese Funktion enthält und dachte, es sei in Ordnung ... aber ich fühle mich nicht gut dabei ... 1. Ich habe ein SSH-Konto ohne Passphrase (jeder, der jemals das bekommt Der private Schlüssel kann sich dann jederzeit ohne Passwort remote anmelden und 2. eine Passphrase im Klartext speichern lassen (siehe 1). es erinnert mich an rsh, abhängig von der Idee, dass "niemand Zugriff auf meine lokalen Dateien haben wird", um das Netzwerkkennwort für ein System zu schützen.
Don Bright
Ich bin sicher, Sie können die Passphrase generieren und NICHT zu wp-config.php hinzufügen. Dann müssen Sie sie nur eingeben, wenn Sie zum Dialogfeld "Verbindungsinformationen" gelangen.
JacquelineIO
Es ist eine große Sicherheitslücke, auf diese Weise einen unverschlüsselten privaten Schlüssel zu verwenden. Sie können das Problem jedoch mindern, indem Sie der entsprechenden Zeile in autorisierten Schlüsseln ein "von = was auch immer" voranstellen.
Markhahn
Das ist großartig, aber es scheint eine Inkompatibilität mit php7 zu geben: core.trac.wordpress.org/ticket/35517
Supaiku
21

Normalerweise können Sie Ihr Plugin einfach in das wp-content\pluginsVerzeichnis hochladen . Wenn Sie über SFTP keinen Zugriff auf dieses Verzeichnis haben, stecken Sie möglicherweise fest.

Toby Allen
quelle
Ja, lass sie einfach in wp-content / plugins fallen.
Ceejayoz
17

Sie können es sehr einfach erhalten, indem Sie den folgenden Befehl auf der Eingabeaufforderung 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');

Wobei "Ihr_Ordnername" der Ordner ist, in dem Ihr WordPress in diesem Ordner installiert ist.

römisch
quelle
16

Führen Sie den folgenden Code im Terminal aus

sudo chown -R www-data /var/www

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

Bikram Shrestha
quelle
4
Es ist keine gute Idee, www-Daten Zugriff auf alles in Ihrem Webverzeichnis zu gewähren
WoodyDRN
Variante, die für mich funktioniert hat:sudo chown -R www-data /var/www/html
Jules Colle
15

Fügen Sie wp-config den folgenden Code 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 Aktualisierungsprobleme auftreten. Wenn Sie es ändern und es nicht hilft, ändern Sie es zurück / entfernen Sie es. In den meisten Fällen funktioniert die Einstellung auf "ftpsockets", wenn die automatisch ausgewählte Methode dies nicht tut.

(Primäre Präferenz) "direkt" zwingt es, direkte Datei-E / A-Anforderungen aus PHP heraus zu verwenden. Dies ist mit Sicherheitsproblemen auf schlecht konfigurierten Hosts behaftet. Dies wird bei Bedarf automatisch ausgewählt.

(Sekundäre Einstellung) "ssh2" erzwingt die Verwendung der SSH-PHP-Erweiterung, falls installiert

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

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

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

Rahul Balakrishna
quelle
15

Wenn Sie unter Ubuntu arbeiten , besteht eine schnelle Lösung, die für mich funktioniert hat, darin, dem Apache- Benutzer (standardmäßig www-Daten) das Eigentum zu übertragen :

cd your_wordpress_directory
sudo chown -R www-data wp-content
sudo chmod -R 755 wp-content
mikermcneil
quelle
2
Geben Sie Dateien, die diese nicht benötigen, keine Ausführungsberechtigung.
Burhan Ali
13

Wechseln Sie von php_modzu fastcgimit cgi& SuEXECaktiviert. Funktioniert bei mir.

Wenn dies nicht funktioniert, versuchen Sie wp-content, 775als root zu wechseln :

chmod -R 775 ./wp-content

Hinzufügen zu wp-config.php:

define('FS_METHOD', 'direct');

ich hoffe es klappt

Zaman
quelle
12

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

D. Lambert
quelle
Übrigens ist das Upgrade noch einfacher - Sie sehen ein Symbol, das anzeigt, dass eine neue Version verfügbar ist, und Sie klicken auf "Upgrade" und lassen es tun. Sehr schön. Sogar der WordPress-Kern wird auf diese Weise aktualisiert - ich bin von 2.7 auf 2.7.1 gegangen, ohne etwas hochzuladen.
D. Lambert
Dies gilt nur, wenn Sie die Dateiberechtigungen festgelegt haben, damit der Webserver / PHP-Benutzer darauf schreiben kann. Wenn nicht, werden Sie zur Eingabe von FTP / SFTP-Anmeldeinformationen aufgefordert. Siehe die Antwort von stereointeractive.com.
Dave Forgac
9

Wiederbelebung eines alten Threads, aber es gibt ein fantastisches neues Plugin namens SSH SFTP Updater Support , das SFTP-Funktionen hinzufügt, ohne dass Sie Ihre wp-config.phpDatei bearbeiten müssen . Außerdem basiert die SFTP-Implementierung von Wordpress auf einigen etwas undurchsichtigen PHP-Modulen, 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 unzählige Probleme damit, die SFTP-Unterstützung zum Laufen zu bringen - dieses Plugin hat alle gelöst und ist einfach fantastisch.

chrismanderson
quelle
9

Versuche dies

1) In der wp-config.phphinzufügendefine('FS_METHOD', 'direct');

2) Stellen Sie das wp-contentVerzeichnis auf 777beschreibbar ein.

3) Installieren Sie nun das Plugin.

Raj
quelle
6
Hallo Mohan, vielen Dank für die Option FS_METHOD. Dies ist in der Tat, wonach ich gesucht habe. Ich muss Folgendes sagen: Kein Verzeichnis sollte jedes 777 benötigen, es sei denn, die Umstände sind außergewöhnlich. Dies macht eine Verzeichniswelt lesbar, beschreibbar und ausführbar. Dies ist ein massives Sicherheitsrisiko. Die richtige Lösung besteht darin, herauszufinden, wer Ihr Apache-Benutzer ist (www-data, _www oder ähnlich). Dieser Benutzer benötigt Lese- und Schreibzugriff auf wp-Inhalte oder muss Eigentümer dieses Verzeichnisses ('sudo chown www-data wp-content') sein, keine Ausführungsrechte. Es tut mir leid, ein bisschen stumpf zu sein, aber 777 ist gefährlich für Webinhalte.
Ruben
8
777 Ihr Upload-Verzeichnis nicht, dies ist unsicher und sollte keine Antwort sein!
MKN Web Solutions
8

Die Antwort von stereointeractive deckt alle Optionen ab. Ich wollte nur eine alternative Art der Verwendung von FTP erwähnen. Ich vermute, dass der Grund, warum Sie den FTP-Zugriff nicht zulassen, die Sicherheit ist. Eine Möglichkeit, diese Sicherheitsbedenken auszuräumen, besteht darin, Ihren FTP-Server so auszuführen, dass er nur 127.0.0.1 überwacht

Auf diese Weise können Sie FTP in WordPress verwenden und Plugins installieren, ohne es dem Rest der Welt zugänglich zu machen. Dies kann auch auf andere beliebte Webanwendungen wie Joomla! und Drupal. Dies machen wir mit unseren BitNami-Appliances und Cloud-Servern und funktionieren recht gut.

kaysa
quelle
8

Ich empfehle auch das SSH SFTP Updater Support Plugin . Ich habe gerade auch alle meine Probleme gelöst ... insbesondere im Hinblick darauf, dass Plugins über den Administrator gelöscht werden. Installieren Sie es einfach auf die übliche Weise. Wenn Sie das nächste Mal von WordPress zur Eingabe von FTP-Details aufgefordert werden, können Sie Ihren privaten SSH-Schlüssel kopieren / einfügen oder Ihre PEM-Datei hochladen.

Das einzige Problem, das ich habe, ist, dass es sich an den Schlüssel erinnert (beide Methoden ausprobiert). Ich mag die Idee nicht, sie jedes Mal finden und eingeben zu müssen, wenn ich ein Plugin löschen muss. Aber zumindest ist es vorerst eine solide Lösung.

Mark Jeldi
quelle
1
"Es gibt zusätzliche Felder, in die Sie Ihren privaten SSH-Schlüssel kopieren / einfügen können" .... Ich bin kein Sicherheitsgenie, aber ... ist nicht der springende Punkt bei privaten SSH-Schlüsseln, den Sie niemals über ein Netzwerk senden müssen ?
Don Bright
8

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 zur Admin-Seite (/ test / wp-admin) und gehen Sie anschließend auf den Plugin-Link und überprüfen Sie den Namen des Plugins.
  3. Aktivieren Sie das Plugin, damit Sie das Plugin einfach installieren können.

andere Option

  1. Erstellen Sie die Zip-Datei für den Plugin-Code.
  2. Gehen Sie zur Admin-Seite (/ test / wp-admin) und klicken Sie anschließend auf den Plugin-Link. Klicken Sie dann auf "Neu hinzufügen", durchsuchen Sie den Plugin-Zip-Ordner und installieren Sie das Plugin. Aktivieren Sie dann die Option "Plugin aktivieren" Plugin aktivieren.
Maulik Patel
quelle
6

Es ist möglich, SFTP oder SSH zu verwenden, um Plugins in WordPress automatisch zu aktualisieren, aber Sie benötigen die Erweiterung ssh2 pecl. Wie das geht, erfahren Sie im folgenden Tutorial

Sudar
quelle
6

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

Schoffelman
quelle
6

Ich habe viele Leute gesehen, die empfohlen haben, die Berechtigung auf 777 zu setzen. Ich hatte das gleiche Problem wie vor 2 Tagen und alles, was ich getan habe, war, dies 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, FTP-Zugang Login / Passwort zu fragen.

Vorher musste ich das Plugin manuell hinzufügen, indem ich eine ZIP-Datei zum Plugin-Ordner hinzufügte, und dann zu gehen wp-admin/pluginsund es installieren.

ZainZaheer06
quelle
5

Versuchen Sie dies Überprü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" auf www-data für vollen Zugriff.

Versuchen Sie nun, das Plugin zu installieren.

Javeed Shakeel
quelle
4

Ja, du kannst es schaffen.

Sie müssen hinzufügen

define('METHOD','direct');

in deiner wpconfig. Diese Methode ist jedoch nicht vorzuziehen, da sie Sicherheitslücken aufweist.

Vielen Dank,

Riyaz
quelle
3

Methode 1: Sie können Folgendes einstellen: 1. In wp-config.php müssen Sie diese Zeilen schreiben.

define('FS_METHOD', 'direct'); 

Hinweis: Setzen Sie dies nach define ('DB_CHARSET', 'utf8mb4').

  1. Setzen Sie die Berechtigung für wp-content oder die rekursive Berechtigung 777. Sie können sie über filezilla erteilen. Schreiben Klicken Sie auf Verzeichnis> Berechtigungen> Überprüfen Sie Lesen / Schreiben und Ausführen und aktivieren Sie auch Recurse in Unterverzeichnisse

    Methode 2:

oder Sie können dies auch einstellen

define("FTP_HOST", "localhost");
define("FTP_USER", "yourftpusername");
define("FTP_PASS", "yourftppassword");
Samir Lakhani
quelle
bis Februar 2020 ist es eine klare Anweisung,Note: put this after define( 'DB_CHARSET', 'utf8mb4' ).
Osify
2

Das Einrichten einer FTP- oder sogar einer SFTP-Verbindung oder eines chmod 777 ist ein schlechter Weg, um etwas anderes als eine lokale Umgebung zu erreichen. Das Öffnen einer SFTP-Methode birgt mehr Sicherheitsrisiken, die nicht benötigt werden.

Was benötigt wird, ist eine beschreibbare Berechtigung für / wp-content / uploads & / wp-content / plugins / durch den Eigentümer dieser Verzeichnisse. (Linux ls -la zeigt Ihnen das Eigentum).

Der standardmäßige Apache-Benutzer, der ausgeführt wird, ist www-data.

Mit chmod 777 kann jeder Benutzer auf dem Computer diese Datei bearbeiten, nicht nur der Apache / PHP-Thread-Benutzer.

Wenn Sie SFTP noch nicht verwenden, wird ein weiterer Punkt eines möglichen Fehlers von einer externen Quelle eingeführt. Während Sie nur den lokalen Benutzer benötigen, der den Apache / PHP-Prozess ausführt, um das Ziel zu erreichen.

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

Jason
quelle
2

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 Besitzer des Ordners in www-data

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

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

Manuja Jayawardana
quelle
1
Für Nginx führen Sie einfach den zweiten Befehl aussudo chown -R www-data [Wordpress Folder Location]
srokatonie
@srokatonie danke für den Kommentar. Dies wird für alle nützlich sein.
Manuja Jayawardana
2

Bitte fügen Sie define('FS_METHOD','direct');in wo-config.php hinzu

Gulshan Kumar
quelle
1

Der einzige Grund, aus dem Sie in WordPress kein Plugin über das WordPress-Admin-Dashboard hochladen können, wenn Sie keine Berechtigung zum Schreiben in das Verzeichnis / wp-content erhalten haben. Denken Sie daran, dass für Ihr WordPress-Verzeichnis / wp-content die Berechtigungsstufe 0755 erforderlich ist. Es gibt verschiedene Möglichkeiten, die Berechtigungsstufe eines Ordners zu ändern.

Ändern der Dateiberechtigungen mit cPanel:

Gehen Sie zum Dateimanager, um den öffentlichen HTML-Ordner zu öffnen, in dem sich Ihre WordPress-Website befinden soll, oder öffnen Sie das Site-Stammverzeichnis, wenn sich Ihre Website in einem anderen Ordner befindet. Navigieren Sie in Ihrem WordPress-Stammverzeichnis zum Ordner wp-content. Am Ende der Zeile mit dem Ordner "wp-content" enthält das allerletzte Feld Dateiberechtigungen für diesen Ordner. Stellen Sie sicher, dass Sie die Ordnerberechtigungsstufe auf 0755 bearbeiten, und Sie sind fertig.

Ändern der Dateiberechtigungen mithilfe des SSH-Terminals:

Suchen Sie in Ihrem Terminal das Stammverzeichnis der WordPress-Site, in meinem Fall / var / www / html. Um in das WordPress-Stammverzeichnis zu wechseln, geben Sie den folgenden Befehl ein:

cd /var/www/html 

Jetzt befinden Sie sich im WordPress-Stammverzeichnis, in dem sich der erforderliche Ordner / wp-Inhalt befindet. Um die Dateiberechtigungen zu ändern, geben Sie den folgenden Befehl ein:

sudo chmod wp-content 755 

Dadurch wird die Berechtigung für die Verzeichnisdatei / wp-content in 0755 geändert.

Jetzt erhalten Sie keine Fehlermeldung mehr beim Hochladen von WordPress-Plugins über FTP.

Zulkifl Agha
quelle
0

Der beste Weg, um das Plugin mit SSH zu installieren, ist WPCLI.

Beachten Sie, dass der SSH-Zugriff für die Verwendung von WP CLI-Befehlen obligatorisch ist. Überprüfen Sie vor der Verwendung, ob die WP-CLI auf Ihrem Hosting-Server oder Computer installiert ist.

Wie zu überprüfen : wp --version [Es wird die installierte wp cli-Version angezeigt]

Wenn nicht installiert, wie es installiert wird: Stellen Sie vor der Installation von WP-CLI sicher, dass die Umgebung die Mindestanforderungen erfüllt:

UNIX-ähnliche Umgebung (OS X, Linux, FreeBSD, Cygwin); eingeschränkte Unterstützung in Windows-Umgebungen. PHP 5.4 oder höher WordPress 3.7 oder höher. Versionen, die älter als die neueste WordPress-Version sind, haben möglicherweise eine eingeschränkte Funktionalität

Wenn die oben genannten Punkte erfüllt sind, befolgen Sie bitte die folgenden Schritte: 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 ]

Jetzt kann WP CLI installiert werden.

Jetzt können Sie jedes in WordPress.org verfügbare Plugin mit den folgenden Befehlen installieren:

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

HINWEIS: wp cli kann nur das Plugin installieren, das in wordpress.org verfügbar ist

Tristup
quelle