Apache kann nicht neu gestartet werden, Fehler: apache2: Ungültiger Benutzername $ {APACHE_RUN_USER}

7

Ich erhalte diesen Fehler beim Versuch, Apache neu zu starten. Weiß jemand, wie man das behebt? Vielen Dank,

Strahl
quelle
1
Welchen Befehl haben Sie versucht, Apache neu zu starten?
Sagarchalisierung
Sind Sie mit sudo apache2? Versuchen Sie es apache2ctlstattdessen. Siehe diese Antwort: askubuntu.com/a/147065/56343
XåpplI'-I0llwlg'I -
1
Führen Sie eine Quellumgebung aus und führen Sie dann Ihren Befehl aus.

Antworten:

9

Um dieses Problem zu beheben, müssen Sie die Änderungen an zwei separaten Dateien vornehmen.

Bearbeiten Sie zunächst /etc/apache2/apache2.confdiese Zeilen und fügen Sie sie hinzu:

User www-data
Group www-data

Zweitens bearbeiten /etc/apache2/envvarsund diese Zeilen hinzufügen:

export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
venkat
quelle
3
Der erste Block kann wahrscheinlich weiterhin auf die Umgebungsvariablen verweisen. Der entscheidende Schritt ist, sie zu definieren /etc/apache2/envvars!
Ingo Karkat
Tatsächlich wurden meine Umgebungsvariablen (Ubuntu 12 VPS, über die ich nicht viel Kontrolle habe) korrekt eingerichtet und nicht referenziert. Das User www-dataist das Update, das für mich funktioniert hat.
Daniel Chapman
5

Dadurch werden Ihre apache2 ENV-Variablen für die aktuelle Sitzung festgelegt und Sie können die apache2-Binärdatei verwenden, ohne Ihre Konfiguration zu ändern:

source /etc/apache2/envvars

/ etc / apache2 / envvars

Ist einfach ein Skript, das einige Umgebungsvariablen festlegt. Wenn Sie apachectl verwenden, wird dies verarbeitet, bevor apache2 selbst gestartet wird. Wenn Sie apache2 vom Terminal aus aufrufen möchten, benötigen Sie auch diese Variablen.

Beim Aufrufen source /etc/apache2/envvarswerden also die Variablen eingerichtet, die es Apache2 ermöglichen, außerhalb von Apachectl zu arbeiten.

Sie können diese möglicherweise auf verschiedene andere Arten einrichten. Rufen Sie beispielsweise Envvars auf, wenn Sie sich anmelden.

Henry
quelle
/ etc / apache2 / envvars legt einfach einige Umgebungsvariablen fest. Wenn Sie apachectl verwenden, wird dies verarbeitet, bevor apache2 selbst gestartet wird. Wenn Sie apache2 vom Terminal aus aufrufen möchten, benötigen Sie auch diese Variablen. Wenn Sie also source / etc / apache2 / envvars aufrufen, werden die Variablen eingerichtet, mit denen apache2 außerhalb von apachectl arbeiten kann.
Henry
3

In meinem Fall verschwand der Fehler durch einen Neustart des Computers (ich hatte gerade Apache2 installiert) und ich konnte den Befehl ausgeben sudo /etc/init.d/apache2 restartund Apache2 neu starten lassen.

Anthony Honstain
quelle
2

Ein vorübergehender Fix (den ich verwendet habe) war das Bearbeiten der Datei in /etc/apache2/apache2.conf. Suchen Sie danach:

User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}

und ändern Sie es zu diesem:

User www-data
Group www-data

Aus irgendeinem Grund sucht apache2 nicht nach envvarsden entsprechenden Umgebungsvariablen. Die eigentliche Antwort darauf, warum dies geschieht, besteht darin, herauszufinden, warum envvarsnicht konsultiert wird.

Avery Chan
quelle
Wahrscheinlich ein Upgrade, das die Konfiguration nicht beeinflusst hat. /etc/init.d/apache2soll diese Variable laden. Sie können das Conffile manuell aus einer Deb-Datei extrahieren und ersetzen.
Lekensteyn
"Ja wirklich?" Was /etc/apach2/apache2.confsagen Sie zu Zeile 144? Ich frage mich, was es für Benutzer und Gruppe hat. Das erscheint mir bizarr, weil envvars es und sein direkt neben apache2.conf definiert.
Avery Chan
Verwenden Sie apt-get download apache2.2-commonund dpkg -x apache2.2-common*.deb fs, um Dateien in ein Verzeichnis mit dem Namen zu extrahieren fs. Sie können es dann selbst überprüfen. (Dies ist zumindest bei Oneiric und Precise der Fall)
Lekensteyn
Das hat bei mir funktioniert
Testo Testini
1

Ich habe das bekommen, als ich es versucht habe sudo /usr/sbin/apache2 -k restart.
Eigentlich war apache2 in / usr / sbin ein Link zur gemeinsam genutzten Bibliothek '/ lib / apache2 / mpm-worker / apache2'. Sollte
stattdessen sudo /etc/init.d/apache2 restartwie erwähnt verwendet werden.

Vijay C.
quelle
1

Ich habe den gleichen Fehler beim Versuch, apache2 -Mauch zu laufen .

Am Ende habe ich nur die envars-Datei wie folgt beschafft:

. /etc/apache2/envvars

Dadurch wurde die Umgebungsvariable ordnungsgemäß festgelegt, da apache2 außerhalb des Standard-Init-Skripts ausgeführt wurde.

Shoey
quelle
0

Als ich lief, apache2 -Mbekam ich den gleichen Fehler. Diese Lösung gefunden:

groupadd sshusers

Ich habe keine Ahnung, warum dies behoben wurde, aber es tat es.

Jackie Lowery
quelle
0

manuell bearbeiten /etc/groupund dort hinzufügen, www-datadann Apache starten

www-data:x:1012:www-dataam Ende der Datei hinzufügen und speichern Strg-X Ja {Eingabe} (1011 war die letzte Nummer in meiner Gruppendatei)

Starten Sie Apache sudo service apache2 start

es hat in meinem Fall funktioniert

Gior
quelle
0

Ich hatte das vernünftige Problem und überprüfte apache2ctl statusund es sagte, dass ich konfigurieren www-browseroder anpassen mussteapache_lynx

Meine Shell sagte mir, ich solle lynx installieren, also tat ich es und das löste es für mich.

sudo apt-get install lynx
Asep.Ridwan
quelle