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?
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:
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');
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/*
wp-config.php
add define('FS_METHOD', 'direct');
wp-content/
, wp-content/plugins/
für den Server beschreibbar.wp-content/plugins
).Arbeitete an Version 3.2.1
öffne die wp-config.php
Datei und füge die folgende Zeile hinzu:
define('FS_METHOD', 'direct');
das funktioniert für mich ... Danke
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");
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.
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:
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.
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.
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
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
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).
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.
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.
Ja, installieren Sie das Plugin direkt in WordPress.
andere Option
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.
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.
php_mod
zu fastcgi
mit cgi
& SuEXEC
vergiss nicht, wenn du nicht arbeitest, versuche es zu ändern
wp-content als root auf 775 ändern
chmod -R 775 ./wp-content
füge wp-config.php hinzu
define ('FS_METHOD', 'direkt');
ich hoffe es klappt
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.
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
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.
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.
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.
Bitte füge define('FS_METHOD','direct');
in die wo-config.php ein
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.
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,
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