Ich verfolge das Ändern von Dateiberechtigungen «WordPress Codex . Wenn ich jedoch versuche, zu aktualisieren und / oder zu installieren plugin
und / oder zu theme
durchlaufen wp-admin
, verfolge ich Folgendes:
Um die angeforderte Aktion auszuführen, muss WordPress auf Ihren Webserver zugreifen. Bitte geben Sie Ihre FTP-Zugangsdaten ein, um fortzufahren. Wenn Sie sich nicht an Ihre Anmeldeinformationen erinnern, wenden Sie sich an Ihren Webhost.
von der Dateisystemebene:
# ls -ld wp-content/ wp-content/plugins/ wp-content/themes/
drwxrwxr-x. 6 root apache 4096 Jun 2 12:01 wp-content/
drwxrwxr-x. 28 root apache 4096 Jun 2 00:00 wp-content/plugins/
drwxrwxr-x. 11 root apache 4096 May 11 16:34 wp-content/themes/
#
httpd
Läuft wie folgt apache
:
$ ps auxw | grep httpd
root 20158 0.0 0.1 533080 26192 ? Ss 15:03 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20233 0.0 0.2 612608 34908 ? S 15:03 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20234 0.0 0.2 538772 46904 ? S 15:03 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20235 0.0 0.1 536832 24268 ? S 15:03 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20236 0.0 0.2 626272 35640 ? S 15:03 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20237 0.0 0.0 535296 9592 ? S 15:03 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20322 0.0 0.1 537088 26620 ? S 15:03 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20380 0.0 0.2 626060 33816 ? S 15:04 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20429 0.0 0.1 538216 29184 ? S 15:04 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20447 0.0 0.2 629380 43180 ? S 15:04 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20448 0.0 0.2 626172 35224 ? S 15:04 0:00 /usr/sbin/httpd -DFOREGROUND
alexus 24073 0.0 0.0 112652 972 pts/9 R+ 15:13 0:00 grep --color=auto httpd
$
Ich möchte in der Lage sein, die angeforderte Aktion ( install
und / oder update
) /wp-admin
ohne FTP-Anmeldeinformationen auszuführen .
Wie kann ich das machen?
plugins
themes
updates
permissions
alexus
quelle
quelle
nobody
- dies funktioniert bei mir aufgrund der Ausführunghttpd
als nichtapache
.apache.apache
oderroot.apache
würde keinen Unterschied machen, solangehttpd
läuft wieapache
, undapache
‚suid
ist ein Teil derapache
gid
‘ Gruppe s, es ist alles das Gleiche, weil meine Berechtigungen gesetztg+w
.Antworten:
Fügen Sie Folgendes zu wp-config.php hinzu:
Lassen Sie mich wissen, wie es bei Ihnen funktioniert.
quelle
Dies bedeutet, dass WordPress nur eine eingeschränkte Berechtigung zum Ändern des Ordners hat, in dem es installiert wurde.
Um dies zu beheben, müssen Sie nur die erforderlichen Berechtigungen dafür bereitstellen.
Führen Sie den folgenden Befehl in Ihrem Terminal / Putty / Commandline Prompt aus, nachdem Sie sich über SSH mit Ihrem Server verbunden haben:
Bezahlen Sie diesen Artikel für weitere Informationen.
quelle
Obwohl es völlig richtig ist, den Besitz wie
root:apache
mit den Berechtigungen 775 zu haben und httpd als auszuführenapache
, gefällt dies Wordpress nicht. Sie will den Eigentümer seinapache
, wie prowp-admin/includes/file.php
:Ihre wäre:
wp_file_owner = root
temp_file_owner = apache
Wenn $ wp_file_owner mit $ temp_file_owner identisch ist, fahren Sie fort. Ihre würden sich im elseif verfangen, das laut Kommentar kein Löschen / Erstellen, sondern nur Aktualisierungen zulässt (ich habe dies überprüft, indem ich den Code eines Plugins in Wordpress aktualisiert habe, und es hat funktioniert).
Hinweis: Ich habe den Code nicht ausführlich durchgesehen. Dies ist nur meine schnelle Interpretation. Ich hatte das gleiche Problem und nachdem ich die Benutzergruppe gewechselt hatte, sodass der httpd-Benutzer auch der Dateibesitzer ist, wurden keine FTP-Anmeldeinformationen mehr abgefragt.
quelle
www-data
für mich zu arbeiten. Lustiges WordPress!Keine direkte Antwort, muss aber wahrscheinlich gesagt werden - dies ist ein Problem, das Sie vermeiden sollten, es sei denn, Sie sprechen von einer lokalen Entwicklung. In diesem Fall können Sie die Berechtigungen einfach auf 777 setzen.
Der Grund dafür ist, dass, wenn der Webserver Ihren Code überschreiben kann, jeder darauf ausgeführte Schadcode dies ebenfalls kann. Das Risiko ist viel größer als die Bequemlichkeit, einige Sekunden zu sparen, indem die FTP-Anmeldeinformationen nicht eingegeben werden müssen.
quelle
Obwohl die Frage nicht mehr so neu ist, möchte ich meine zwei Cent auch zu diesem Thema hinzufügen.
Viele Leute haben Centos (7) auf ihrem VPS-Server und folgende Codezeilen könnten ihr Problem lösen.
Imho hat alles mit SELinux zu tun, was WordPress daran hindert, seinen Job wie gewünscht zu erledigen. Es geht zu weit, um zu erklären, was SELinux ist und was es tut. Zu Ihrer Information beginnt die Einführung mit:
Nur 3 Schritte zum Folgen:
chcon -R -t httpd_sys_content_t /var/www/html/wordpress
chcon -R -t httpd_sys_rw_content_t /var/www/html/wordpress
Ich werde nicht sagen, dass es allen hilft, aber für diejenigen, die SELinux nicht deaktiviert haben, sollte es eine Erleichterung sein.
Prost
Hinweis: Bitte passen Sie an Ihre eigenen Bedürfnisse an (dh Pfad zu WordPress)
edit: Achten Sie darauf, die Zeile zu entfernen,
define("FS_METHOD", "direct");
wenn sie verwendet wird / wurde,wp-config.php
da dies absolut kein Problem ist, wenn die obigen Codezeilen wie gewünscht ausgeführt werden.quelle
In meinem Fall habe ich das gelöst, indem ich von GIT zurück in den FTP-Modus gewechselt bin.
Keine Warnung mehr.
Vielleicht hilft das auch jemand anderem.
quelle