Sur un CentOS 7serveur, j'obtiens l'erreur suivante lorsque je tape sudo apachectl restartaprès avoir ajouté un fichier include au bas de httpd.conf:
Job for httpd.service failed. See 'systemctl status httpd.service' and 'journalctl -xn' for details.
Lorsque je tape alors sudo systemctl status httpd.service -l, le résultat est:
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.
Je peux apacheredémarrer si je commente la directive include et je peux recréer l'erreur à nouveau en ne commentant pas la directive include. Comment puis-je apachecommencer à utiliser correctement le contenu du fichier inclus?
La ligne en bas de httpd.confqui déclenche l'erreur est: IncludeOptional sites-enabled/*.conf. Le seul .conffichier dans le sites-enableddossier est mydomain.com.conf, qui a le contenu suivant:
<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>
C'est httpd.confla même chose que ce qui est pré-installé httpd, à l'exception de la directive d'inclusion d'une ligne ci-dessus. Je le sais car je l'ai fait sudo yum remove httpd mod_sslet sudo yum install httpd mod_ssljuste avant de déclencher cette erreur. Le tout httpd.confpeut être lu sur un site de partage de fichiers en cliquant sur ce lien .
J'ai rencontré ce problème en suivant explicitement les étapes de ce didacticiel .
Lorsque je commente le fichier inclus, http/mydomain.comsert avec succès le contenu statique situé dans /var/www/html, qui est DocumentRootdéfini dans httpd.conf. Le problème semble provenir de la VirtualHostdirective dans le fichier include montré ci-dessus. Pour aider au diagnostic, j'ai inclus dans EDIT # 3 ci-dessous des liens vers tous les .conffichiers contenus dans les trois directives d'inclusion de httpd.conf.
EDIT # 1
Quand j'essaye le conseil de m32 pour changer le /etc/hostnameà définir mydomain.com, apachene redémarrera toujours pas, et les systemctl status httpd.servicerésultats dans ce qui suit:
[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
J'ai également essayé le conseil de eyoung100 pour changer le contenu de mon /etc/hostsfichier, tel que défini dans l'image suivante, mais j'obtiens toujours la même erreur définie dans EDIT # 1 ci-dessus.
EDIT # 3
À la demande de DerekC, j'ai couru sudo apachectl configtestet obtenu:
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
En outre, selon la suggestion de GarethTheRed, j'ai examiné les directives d'inclusion dans httpd.conf . Il existe trois directives include dans httpd.conf . J'ai énuméré les trois ci-dessous, ainsi que tous les fichiers situés dans le dossier de chaque directive. Ce sont tous les .conffichiers standard installés avec httpd. Je n'en ai encore modifié aucun. Vous pouvez afficher chacun des .conffichiers sur un site de partage de fichiers en cliquant sur les liens ci-dessous:
Include conf.modules.d/*.confréférence les fichiers suivants dans le conf.modules.drépertoire:
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/*.confréférences les fichiers suivants dans le conf.drépertoire:
autoindex.conf
ssl.conf
userdir.conf
welcome.conf
Il y a aussi un fichier README que je suis ici. omets
De plus, la IncludeOptional sites-enabled/*.confdirective et son contenu ont été décrits en détail dans le PO ci-dessus.
Certains de ces fichiers incluent-ils des conflits avec les VirtualHostparamètres de mydomain.com.conf?
EDIT # 4
Selon la suggestion de garethTheRed, je me suis déplacé mydomain.com.confvers le conf.drépertoire, puis j'ai commencé à commenter les lignes mydomain.com.confune par une jusqu'à ce que je httpdpuisse redémarrer. J'ai ensuite commencé à commenter les lignes pour voir combien de lignes pouvaient rester et httpdredémarrer. J'ai pu httpdredémarrer, mais systemctl status httpd.service -lcontinue de produire le même avertissement:
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
La VirtualHostsyntaxe qui permet httpdde démarrer (tout en continuant à générer l'avertissement ci-dessus) est la suivante:
<VirtualHost *:80>
ServerName www.mydomain.com
ServerAlias mydomain.com
DocumentRoot /var/www/mydomain.com/public_html
</VirtualHost>
Notez que j'ai dû omettre les lignes suivantes, dont la présence fait grimper l'avertissement en une incapacité complète à démarrer http:
# ErrorLog /var/www/mydomain.com/error.log
# CustomLog /var/www/mydomain.com/requests.log combined
De plus, j'ai couru sudo journalctl -xelu httpdet le terminal a répondu en répétant plusieurs fois ce qui suit:
--
-- 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)
Remarque: Les résultats ci-dessus restent les mêmes, que j'utilise le fichier d'hôtes de eyoung100 ou le fichier d'hôtes de m32. Pour répondre à cette question, je pense que je devrais pouvoir créer des fichiers journaux et également éviter l'avertissement de nom de serveur. Sinon, je crains que les étapes suivantes de configuration de httpd ne soient sujettes à des erreurs persistantes.
apachectl configtest?
IncludeOptionalà la fin du httpd.conffichier d' origine ? Je pense qu'il y a une installation par défaut. Le problème peut être que vous ajoutez le supplément IncludeOptionalà la fin, ce qui force apacheà lire deux fois le fichier de configuration inclus et, par conséquent, à l'échec.
mydomain.com.confvers /etc/httpd/conf.d(où se trouvent tous les autres) et supprimer /etc/httpd/sites-enabled(c'est une chose Debian / Ubuntu) et le fichier auquel IncludeOptionalvous avez ajouté httpd.conf. Vous pouvez ignorer le AH00558message pour l'instant car il ne s'arrête pas apache. Ensuite, supprimez une ligne de votre conffichier jusqu'à ce que vous trouviez le coupable (ou bien commencez par une ligne vide et restaurez une ligne à la fois).
ServerNamedirective? Ajoutez-le à votre question.