Auf einem CentOS 7Server erhalte ich die folgende Fehlermeldung, wenn ich sudo apachectl restartnach dem Hinzufügen einer Include-Datei am Ende von Folgendes tippe httpd.conf:
Job for httpd.service failed. See 'systemctl status httpd.service' and 'journalctl -xn' for details.
Wenn ich dann tippe sudo systemctl status httpd.service -l, ist das Ergebnis:
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
Active: failed (Result: exit-code) since Tue 2014-12-23 20:10:37 EST; 2min 15s ago
Process: 2101 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
Process: 2099 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
Main PID: 2099 (code=exited, status=1/FAILURE)
Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec"
Dec 23 20:10:37 ip-address httpd[2099]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::e23f:49ff:feb7:2a21. Set the 'ServerName' directive globally to suppress this message
Dec 23 20:10:37 ip-address systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
Dec 23 20:10:37 ip-address systemd[1]: Failed to start The Apache HTTP Server.
Dec 23 20:10:37 ip-address systemd[1]: Unit httpd.service entered failed state.
Ich kann apacheneu starten, wenn ich die include-Direktive auskommentiere , und ich kann den Fehler erneut erstellen, indem ich die include-Direktive auskommentiere . Wie kann ich apacheanfangen, den Inhalt der Include-Datei richtig zu verwenden?
Die Linie am unteren Ende , httpd.confdie ausgelöst wird der Fehler ist: IncludeOptional sites-enabled/*.conf. Die einzige .confDatei im sites-enabledOrdner ist mydomain.com.conf, die den folgenden Inhalt hat:
<VirtualHost *:80>
ServerName www.mydomain.com
ServerAlias mydomain.com
DocumentRoot /var/www/mydomain.com/public_html
ErrorLog /var/www/mydomain.com/error.log
CustomLog /var/www/mydomain.com/requests.log combined
</VirtualHost>
Das httpd.confist dasselbe wie das, was vorinstalliert ist, mit httpdAusnahme der obigen Einzeilen-Include-Direktive. Ich weiß es, weil ich es getan habe sudo yum remove httpd mod_sslund sudo yum install httpd mod_sslgenau bevor ich diesen Fehler ausgelöst habe. Das Ganze httpd.confkann auf einer Filesharing-Site gelesen werden, indem Sie auf diesen Link klicken .
Ich bin auf dieses Problem gestoßen, als ich die Schritte in diesem Tutorial explizit ausgeführt habe .
Wenn ich die Include-Datei http/mydomain.comauskommentiere /var/www/html, wird der in DocumentRootdefinierte statische Inhalt erfolgreich bereitgestellt httpd.conf. Das Problem scheint von der VirtualHostAnweisung in der oben gezeigten Include-Datei zu herrühren. Um die Diagnose zu erleichtern, habe ich in EDIT # 3 unten Links zu allen .confDateien eingefügt, die in den drei include-Anweisungen in enthalten sind httpd.conf.
EDIT # 1
Wenn ich versuche, m32s Rat zu ändern /etc/hostname, um zu definieren mydomain.com, wird apacheimmer noch nicht neu gestartet , und die systemctl status httpd.serviceErgebnisse im Folgenden:
[sudo_user_account@server-ip-address ~]$ sudo systemctl status httpd.service -l
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
Active: failed (Result: exit-code) since Tue 2014-12-23 14:25:35 EST; 20s ago
Process: 31993 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
Process: 31991 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
Main PID: 31991 (code=exited, status=1/FAILURE)
Status: "Total requests: 1; Current requests/sec: 0; Current traffic: 0 B/sec"
Dec 23 14:25:35 hostname systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
Dec 23 14:25:35 hostname systemd[1]: Failed to start The Apache HTTP Server.
Dec 23 14:25:35 hostname systemd[1]: Unit httpd.service entered failed state.
EDIT # 2
Ich habe auch den Rat von eyoung100 versucht, den Inhalt meiner /etc/hostsDatei wie in der folgenden Abbildung definiert zu ändern. Es wird jedoch immer noch derselbe Fehler angezeigt, der in EDIT # 1 oben definiert wurde.
EDIT # 3
Auf Wunsch von DerekC lief ich sudo apachectl configtestund bekam:
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::e23f:49ff:feb7:2a21. Set the 'ServerName' directive globally to suppress this message
Syntax OK
Außerdem habe ich gemäß dem Vorschlag von GarethTheRed die include-Direktiven in httpd.conf untersucht . Es gibt drei include-Direktiven in httpd.conf . Ich habe die drei unten zusammen mit allen Dateien aufgelistet, die sich in den Ordnern der einzelnen Direktiven befinden. Dies sind alle Standarddateien .conf, die mit installiert werden httpd. Ich habe noch keine davon geändert. Sie können jede der .confDateien auf einer Filesharing-Site anzeigen, indem Sie auf die folgenden Links klicken:
Include conf.modules.d/*.confverweist auf die folgenden Dateien im conf.modules.dVerzeichnis:
00-base.conf
00-dav.conf
00-lua.conf
00-mpm.conf
00-proxy.conf
00-ssl.conf
00-systemd.conf
01-cgi.conf
IncludeOptional conf.d/*.confverweist auf die folgenden Dateien im conf.dVerzeichnis:
autoindex.conf
ssl.conf
userdir.conf
welcome.conf
Es gibt auch eine README-Datei, die ich hier auslasse.
Darüber hinaus wurden die IncludeOptional sites-enabled/*.confRichtlinie und ihr Inhalt im OP oben ausführlich beschrieben.
Entspricht eine dieser Include-Dateien einem Konflikt mit den VirtualHostEinstellungen in mydomain.com.conf?
EDIT # 4
Gemäß dem Vorschlag von garethTheRed bin ich in mydomain.com.confdas conf.dVerzeichnis gewechselt und habe dann angefangen, Zeilen mydomain.com.confnacheinander zu kommentieren, httpdbis der Neustart möglich war. Ich fing dann an, Zeilen nicht zu kommentieren, um zu sehen, wie viele Zeilen noch übrig sind und httpdnoch neu gestartet werden müssen . Ich konnte httpdneu starten, habe aber systemctl status httpd.service -lweiterhin die gleiche Warnung ausgegeben:
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::e23f:49ff:feb7:2a21. Set the 'ServerName' directive globally to suppress this message
Die VirtualHostSyntax, mit httpdder gestartet werden kann (obwohl die obige Warnung weiterhin generiert wird), lautet wie folgt:
<VirtualHost *:80>
ServerName www.mydomain.com
ServerAlias mydomain.com
DocumentRoot /var/www/mydomain.com/public_html
</VirtualHost>
Beachten Sie, dass ich die folgenden Zeilen weglassen musste, deren Vorhandensein die Warnung in eine vollständige Unfähigkeit zum Starten von http eskaliert:
# ErrorLog /var/www/mydomain.com/error.log
# CustomLog /var/www/mydomain.com/requests.log combined
Außerdem lief ich sudo journalctl -xelu httpdund das Terminal antwortete, indem ich Folgendes viele Male wiederholte:
--
-- Unit httpd.service has finished shutting down.
Dec 24 17:48:43 server-ip-address systemd[1]: Stopped The Apache HTTP Server.
-- Subject: Unit httpd.service has finished shutting down
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit httpd.service has finished shutting down.
Dec 24 17:48:48 server-ip-address systemd[1]: Starting The Apache HTTP Server...
-- Subject: Unit httpd.service has begun with start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit httpd.service has begun starting up.
Dec 24 17:48:48 server-ip-address httpd[10364]: AH00558: httpd: Could not reliably d
Dec 24 17:48:48 server-ip-address systemd[1]: Started The Apache HTTP Server.
-- Subject: Unit httpd.service has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit httpd.service has finished starting up.
--
-- The start-up result is done.
lines 887-909/909 (END)
Hinweis: Die obigen Ergebnisse bleiben gleich, unabhängig davon, ob ich die Hostdatei von eyoung100 oder die Hostdatei von m32 verwende. Damit diese Frage beantwortet wird, sollte ich in der Lage sein, Protokolldateien zu erstellen und auch die Warnung des Servernamens zu vermeiden. Ansonsten befürchte ich, dass nachfolgende Schritte zur Konfiguration von httpd zu anhaltenden Fehlern führen könnten.
apachectl configtest?
IncludeOptionalam Ende der Originaldatei eine httpd.conf? Ich glaube, es gibt eine Standardinstallation. Das Problem kann sein, dass Sie das Extra IncludeOptionalam Ende hinzufügen, wodurch apachedie enthaltene Konfigurationsdatei zweimal gelesen werden muss und folglich ein Fehler auftritt.
mydomain.com.confauf /etc/httpd/conf.d(wo sich alle anderen befinden) verschieben und löschen /etc/httpd/sites-enabled(das ist eine Debian / Ubuntu-Sache) und das, was IncludeOptionalSie hinzugefügt haben httpd.conf. Sie können die AH00558Nachricht vorerst ignorieren, da sie nicht aufhört apache. Entfernen Sie als Nächstes eine Zeile aus Ihrer confDatei, bis Sie den Täter gefunden haben (oder beginnen Sie mit einer leeren Zeile und stellen Sie jeweils eine Zeile wieder her).
ServerNameDirektive hinzufügen ? Fügen Sie es Ihrer Frage hinzu.