Wie überprüfe ich, welche Apache-Gruppe ich für den Webserver zum Schreiben verwenden kann?

13

Ich versuche Wordpress zum Laufen zu bringen. Ich habe momentan folgende Fehlermeldung:

Could not create directory. /var/www/html/wp-content/upgrade/theme_name

beim Versuch, ein Thema hochzuladen. Dies sind die Berechtigungen, für die festgelegt wurde/var/www/html/wp-content/upgrade/

drwxrwxr-x 3 ec2-user apache 4096 Jun 21 00:30 upgrade

chmod 777 upgradelässt den Fehler verschwinden. Dies wird jedoch nicht als bewährte Methode angesehen. Ich denke jedoch, dass dies auch funktionieren sollte ... warum nicht?

Ich vermute, der Webserver ist möglicherweise nicht in den oben genannten Berechtigungen enthalten. Welche Gruppe sollte ich verwenden, damit der Webserver schreiben kann?

(Mein Setup ist Amazon EC2, Amazon Linux AMI mit httpd)

Jeff Schaller
quelle

Antworten:

16

Ich weiß nichts über Amazon EC2, aber Sie sollten in der Lage sein:

  1. Rufen Sie den Namen des Benutzers, der Apache ausführt, mit einem Befehl ab, der dem folgenden ähnelt:

    ps aux | grep apache # The username should be in the first column.
    
  2. Rufen Sie mit dem folgenden groups(1)Befehl die Gruppen ab, zu denen dieser Benutzer gehört :

    groups [USERNAME]
    
rahmu
quelle
Die erste Spalte ist Apache, und Gruppen Apache geben Apache zurück: Apache. Eine Zeile vom ersten Befehl sieht folgendermaßen aus: apache 11171 0.0 3.4 39984 21516? S 20. Juni 0:02 / usr / sbin / httpd
1
Benutzer Apache hat eindeutig die Berechtigung, in das Verzeichnis zu schreiben. Sie sagen chmod 777, dass das Problem behoben ist. Vermutlich verwenden Sie einen anderen Benutzer, um Ihre Themen hochzuladen. Ich kenne Wordpress nicht sehr gut. Nach dieser Antwort versucht Eigentum an Benutzer zu ändern www-data.
Rahmu
Vielen Dank, dass Sie sich die Zeit genommen haben, den Artikel und alles nachzuschlagen. Es war in der Tat ein anderer Benutzer, als mir klar wurde, dass Wordpress FTP verwendete, um seine Arbeit zu erledigen. Ich fand diesen Benutzer durch das, was unten vorgeschlagen wurde, heraus und fügte dann Gruppen-Apache hinzu, der durch Schritt 1 herausgefunden wurde. Das hat es gelöst.
2

Sie können versuchen, die folgenden Befehlszeilenmethoden zu verwenden, um die Namen Ihrer Apache-Gruppen zu ermitteln:

WWW_GROUP=`ps axo user,group,comm | egrep '(apache|httpd)' | grep -v ^root | cut -d\  -f 2| uniq`
echo Apache group is: $WWW_GROUP

Um den Benutzer zu ermitteln , überprüfen Sie: Wie wird der Apache-Benutzer über die Befehlszeile ermittelt?

Kenorb
quelle
1

Durch das Upgrade von chmod 777 wird der Fehler behoben.

Nun, in diesem Fall ls -ld /var/www/html/wp-content/upgrade/theme_namesollten Sie die Anmeldeinformationen des Erstellers offenlegen, die Sie für die präzise Zugriffsgewährung verwenden können.

Und es ist besser 1777(wie für /tmp), da es zumindest garantiert, dass nur der Eigentümer einer Datei die Verknüpfung aufheben kann.

Poige
quelle
1
Lass den Fehler verschwinden! Interessanter Ansatz zur Problemlösung. Dies ist keine Lösung, es ist eine Lüge.
Iharob
Wie nennt man "Lüge" - unter Berufung auf den Originaltext des Autors? :) oder Vorschlag, mindestens 1777 anstelle von 777 zu verwenden? :) oder Urheberrechte herausfinden und für "präzise Zugriffsgewährung" nutzen?
Poige
Es ist eine Lüge gegenüber dem System, weil 777es in keinem mir bekannten Kontext richtig ist.
Iharob