Ich habe ein WordPress-Blog in meinem lokalen System installiert. Wenn ich jedoch versuche, Plugins vom Administrator hinzuzufügen, wird nach dem FTP-Zugriff gefragt. Was muss ich konfigurieren, damit WordPress ohne FTP hochladen kann?
117
FS_METHOD
ist kurz fürFILESYSTEM_METHOD
. Wenn Sie festlegen, dassdirect
nur die Dateien geändert werden sollen - auch bekannt als kein FTP -, müssen Sie WordPress zwingen, die Dateien auf der Site direkt zu ändern.Wenn Sie Ubuntu verwenden.
quelle
www-data
hier sein: codex.wordpress.org/Hardening_WordPress oder hier: stackoverflow.com/questions/18352682/…"Immer wenn Sie das WordPress-Kontrollfeld verwenden, um Plugins automatisch zu installieren, zu aktualisieren oder zu löschen, muss WordPress Änderungen an Dateien im Dateisystem vornehmen.
Bevor WordPress Änderungen vornimmt, prüft es zunächst, ob es Zugriff auf die direkte Bearbeitung des Dateisystems hat.
Wenn WordPress nicht über die erforderlichen Berechtigungen verfügt, um das Dateisystem direkt zu ändern, werden Sie nach FTP-Anmeldeinformationen gefragt, damit WordPress versuchen kann, über FTP das zu tun, was es benötigt. "
Lösung: Um herauszufinden, als welcher Benutzer Ihre Apache-Instanz ausgeführt wird, erstellen Sie ein Testskript mit folgendem Inhalt:
Für mich war es Daemon und nicht www-Daten. Korrigieren Sie dann die Berechtigung durch:
quelle
<?php echo(exec("id")); ?>
die Ihnen sogar Gruppendaten über die Benutzer-ID hinaus liefert:uid=5018(web27) gid=5012(client7) groups=5012(client7),5002(sshusers)
whoami
so sehen Sie die gleichen Informationen:sudo chown -R `whoami` /path/to/your/local/www/folder
Unter OSX habe ich Folgendes verwendet und es hat funktioniert:
_www ist der Benutzer, unter dem PHP auf dem Mac ausgeführt wird.
(Möglicherweise müssen Sie auch einige Ordner ändern. Ich hatte das zuerst getan und es hat es nicht behoben. Erst als ich den Befehl chown ausgeführt habe, hat es funktioniert, daher bin ich mir nicht sicher, ob es der Befehl chown war allein oder eine Kombination aus chmod und chown.)
quelle
Ich habe den Besitz des WordPress-Ordners rekursiv in www-data geändert und Apache neu gestartet.
Es hat wie ein Zauber funktioniert!
quelle
Vom ersten Treffer bei Google :
Dies ist in den meisten gemeinsam genutzten Hosting-Umgebungen eher normal. Die Dateien werden als Benutzer gespeichert und Apache wird als Benutzer
apache
oder ausgeführthttpd
. Dies ist eine gute Sicherheitsmaßnahme, sodass Exploits und Hacks gehostete Dateien nicht ändern können. Sie können dies umgehen, indem Sie alle WP-Dateien auf 777-Sicherheit einstellen. Dies bedeutet jedoch keine Sicherheit. Ich würde daher dringend davon abraten. Verwenden Sie einfach FTP, es ist die automatisch empfohlene Problemumgehung mit gutem Grund.quelle
Wechseln Sie zuerst in Ihren Installationsordner (zum Beispiel).
Jetzt werden wir Ihr htdocs-Verzeichnis ändern:
Geben Sie Ihr Root-Passwort ein, wenn Sie dazu aufgefordert werden, und beenden Sie es mit einem chmod-Aufruf:
quelle
Ich habe eine lokale Installation von WordPress unter Ubuntu 14.04 durchgeführt, indem ich die hier beschriebenen Schritte befolgt und einfach ausgeführt habe:
löste mein Problem mit dem Herunterladen von Plugins. Der einzige Grund, warum ich diesen Beitrag hier verlasse, ist, dass dies eines der ersten Ergebnisse war, als ich mein Problem googelte, und es mich zur Lösung meines Problems führte.
Hoffe, dieser hilft jedem!
quelle
Wir hatten das gleiche Problem als Teil eines größeren Problems. Die vorgeschlagene Lösung von
verbirgt dieses Fenster, aber dann hatten wir immer noch Probleme beim Laden von Themen und Upgrades usw. Es hängt mit Berechtigungen zusammen. In unserem Fall haben wir das Problem jedoch behoben, indem wir vom PHP-OS-Anbieter mod_php zur sichereren PHP-OS-Anbieter-FastCGI-Anwendung gewechselt sind .
quelle
Wenn Wordpress während der Installation eines Plugins nach Ihrem Hostnamen oder Ihren FTP-Details fragt. Befolgen Sie dann diese Schritte:
Melden Sie sich bei Ihrem Server an und navigieren Sie zu / var / www / html / wordpress / . Öffnen Sie wp-config.php und fügen Sie diese Zeile nach define ('DB_COLLATE') hinzu.
Wenn die Fehlermeldung "Verzeichnis konnte nicht erstellt werden" angezeigt wird. Geben Sie Ihrem WordPress-Verzeichnis Schreibberechtigungen in rekursiver Form
HINWEIS. Widerrufen Sie diese Berechtigungen aus Sicherheitsgründen, sobald Sie ein Plugin als installiert haben
quelle
Der einfachste Weg, um dieses Problem zu lösen, besteht darin, die folgenden FTP-Informationen zu Ihrem hinzuzufügen
wp-config.php
FTP_BASE ist der vollständige Pfad zum Ordner "base" (ABSPATH) der WordPress-Installation. FTP_CONTENT_DIR ist der vollständige Pfad zum Ordner wp-content der WordPress-Installation. FTP_PLUGIN_DIR ist der vollständige Pfad zum Plugins-Ordner der WordPress-Installation.
quelle
Wie von Niels erwähnt, geschieht dies, weil der Benutzer des Serverprozesses nicht in den Wordpress-Ordner schreiben kann.
Aber hier ist die Sache, die viele Artikel nicht erklären. Es ist der Besitzer des PHP-Prozesses, nicht des Nginx-Prozesses. Wenn Sie versuchen, den Nginx-Besitzer zu ändern, wird dies nicht gelöst.
Versuchen Sie,
ps aux
das Problem zu beheben , um festzustellen , welcher Benutzer den php-fpm-Prozess besitzt. Überprüfen Sie dann, ob der Benutzer derselbe Benutzer wie der Eigentümer des WordPress-Ordners ist oder zumindest darauf schreiben kann. Wenn der Benutzer nicht darauf schreiben kann, müssen Sie die Berechtigungen und / oder den Besitz des Ordners ändern. oder ordnen Sie die beiden Benutzer (Serverbesitzer und WordPress-Ordnerbesitzer) einer gemeinsamen Gruppe zu, die in den Ordner schreiben kann. oder ändern Sie die Eigenschaft "user" von php.ini in einen Benutzer, der in den Ordner schreiben kann.quelle
Es gibt viele ähnliche Antworten auf diese Frage, aber keine davon berührt die Grundursache vollständig. Sebastian Schmids Kommentar zum ursprünglichen Beitrag berührt ihn, aber nicht vollständig. Hier ist meine Einstellung vom 06.11.2018:
Ursache
Wenn Sie versuchen, ein Plugin über die WordPress-Administrationsoberfläche hochzuladen, ruft WordPress eine Funktion namens "get_filesystem_method ()" auf (ref: /wp-admin/includes/file.php:1549 ). Diese Routine versucht, eine Datei an den betreffenden Speicherort (in diesem Fall das Plugin-Verzeichnis) zu schreiben. Es kann hier natürlich sofort fehlschlagen, wenn die Dateiberechtigungen nicht richtig eingerichtet sind, damit der WordPress-Benutzer (denken Sie an die Benutzeridentität, die das PHP ausführt) die Datei an den betreffenden Speicherort schreiben kann.
Wenn die Datei erstellt werden kann, erkennt diese Funktion den Dateieigentümer der temporären Datei zusammen mit dem Dateieigentümer der aktuellen Datei der Funktion (Ref: /wp-admin/includes/file.php:1572 ) und vergleicht die beiden. Wenn sie dann übereinstimmen, heißt es in WordPress: "WordPress erstellt Dateien als derselbe Eigentümer wie die WordPress-Dateien. Dies bedeutet, dass es sicher ist, neue Dateien über PHP zu ändern und zu erstellen", und Ihr Plugin wird erfolgreich ohne die Eingabeaufforderung für FTP-Anmeldeinformationen hochgeladen. Wenn sie nicht übereinstimmen, erhalten Sie die Eingabeaufforderung FTP-Anmeldeinformationen.
Korrekturen
Stellen Sie sicher, dass die Identität, die Ihren PHP-Prozess ausführt, der Dateieigentümer für Folgendes ist:
a) Alle WordPress-Anwendungsdateien oder ...
b) Zumindest die Datei /wp-admin/includes/file.php
Letzte Kommentare
Ich bin nicht besonders daran interessiert, Dateieigentum speziell auf die Datei file.php anzuwenden, um dieses Problem zu umgehen (es fühlt sich gelinde gesagt ein bisschen hackig an!). An diesem Punkt scheint es mir, dass die WordPress-Codebasis dazu neigt, dass wir den PHP-Prozess unter demselben Benutzerprinzip ausführen wie der Dateibesitzer für die WordPress-Anwendungsdateien. Ich würde einige Kommentare der Community dazu begrüßen.
quelle
Ich hatte das gleiche Problem! Ich habe den folgenden Code in die Datei wp-config.php (in einer beliebigen Zeile) eingefügt und er funktioniert jetzt!
quelle