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.
/ 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.
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.
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.
sudo apache2
? Versuchen Sie esapache2ctl
stattdessen. Siehe diese Antwort: askubuntu.com/a/147065/56343Antworten:
Um dieses Problem zu beheben, müssen Sie die Änderungen an zwei separaten Dateien vornehmen.
Bearbeiten Sie zunächst
/etc/apache2/apache2.conf
diese Zeilen und fügen Sie sie hinzu:Zweitens bearbeiten
/etc/apache2/envvars
und diese Zeilen hinzufügen:quelle
/etc/apache2/envvars
!User www-data
ist das Update, das für mich funktioniert hat.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:
/ 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/envvars
werden 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.
quelle
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 restart
und Apache2 neu starten lassen.quelle
Ein vorübergehender Fix (den ich verwendet habe) war das Bearbeiten der Datei in
/etc/apache2/apache2.conf
. Suchen Sie danach:und ändern Sie es zu diesem:
Aus irgendeinem Grund sucht apache2 nicht nach
envvars
den entsprechenden Umgebungsvariablen. Die eigentliche Antwort darauf, warum dies geschieht, besteht darin, herauszufinden, warumenvvars
nicht konsultiert wird.quelle
/etc/init.d/apache2
soll diese Variable laden. Sie können das Conffile manuell aus einer Deb-Datei extrahieren und ersetzen./etc/apach2/apache2.conf
sagen 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.apt-get download apache2.2-common
unddpkg -x apache2.2-common*.deb fs
, um Dateien in ein Verzeichnis mit dem Namen zu extrahierenfs
. Sie können es dann selbst überprüfen. (Dies ist zumindest bei Oneiric und Precise der Fall)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 restart
wie erwähnt verwendet werden.quelle
Ich habe den gleichen Fehler beim Versuch,
apache2 -M
auch zu laufen .Am Ende habe ich nur die envars-Datei wie folgt beschafft:
Dadurch wurde die Umgebungsvariable ordnungsgemäß festgelegt, da apache2 außerhalb des Standard-Init-Skripts ausgeführt wurde.
quelle
Als ich lief,
apache2 -M
bekam ich den gleichen Fehler. Diese Lösung gefunden:Ich habe keine Ahnung, warum dies behoben wurde, aber es tat es.
quelle
manuell bearbeiten
/etc/group
und dort hinzufügen,www-data
dann Apache startenwww-data:x:1012:www-data
am 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
quelle
Ich hatte das vernünftige Problem und überprüfte
apache2ctl status
und es sagte, dass ich konfigurierenwww-browser
oder anpassen mussteapache_lynx
Meine Shell sagte mir, ich solle lynx installieren, also tat ich es und das löste es für mich.
quelle