Sur un CentOS 7
serveur, j'obtiens l'erreur suivante lorsque je tape sudo apachectl restart
aprè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 apache
redé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 apache
commencer à utiliser correctement le contenu du fichier inclus?
La ligne en bas de httpd.conf
qui déclenche l'erreur est: IncludeOptional sites-enabled/*.conf
. Le seul .conf
fichier dans le sites-enabled
dossier 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.conf
la 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_ssl
et sudo yum install httpd mod_ssl
juste avant de déclencher cette erreur. Le tout httpd.conf
peut ê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.com
sert avec succès le contenu statique situé dans /var/www/html
, qui est DocumentRoot
défini dans httpd.conf
. Le problème semble provenir de la VirtualHost
directive dans le fichier include montré ci-dessus. Pour aider au diagnostic, j'ai inclus dans EDIT # 3 ci-dessous des liens vers tous les .conf
fichiers 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
, apache
ne redémarrera toujours pas, et les systemctl status httpd.service
ré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/hosts
fichier, 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 configtest
et 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 .conf
fichiers standard installés avec httpd
. Je n'en ai encore modifié aucun. Vous pouvez afficher chacun des .conf
fichiers sur un site de partage de fichiers en cliquant sur les liens ci-dessous:
Include conf.modules.d/*.conf
référence les fichiers suivants dans le conf.modules.d
ré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/*.conf
références les fichiers suivants dans le conf.d
ré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/*.conf
directive 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 VirtualHost
paramètres de mydomain.com.conf
?
EDIT # 4
Selon la suggestion de garethTheRed, je me suis déplacé mydomain.com.conf
vers le conf.d
répertoire, puis j'ai commencé à commenter les lignes mydomain.com.conf
une par une jusqu'à ce que je httpd
puisse redémarrer. J'ai ensuite commencé à commenter les lignes pour voir combien de lignes pouvaient rester et httpd
redémarrer. J'ai pu httpd
redémarrer, mais systemctl status httpd.service -l
continue 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 VirtualHost
syntaxe qui permet httpd
de 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 httpd
et 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.
la source
ServerName
directive? Ajoutez-le à votre question.apachectl configtest
?IncludeOptional
à la fin duhttpd.conf
fichier d' origine ? Je pense qu'il y a une installation par défaut. Le problème peut être que vous ajoutez le supplémentIncludeOptional
à la fin, ce qui forceapache
à lire deux fois le fichier de configuration inclus et, par conséquent, à l'échec.mydomain.com.conf
vers/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 auquelIncludeOptional
vous avez ajoutéhttpd.conf
. Vous pouvez ignorer leAH00558
message pour l'instant car il ne s'arrête pasapache
. Ensuite, supprimez une ligne de votreconf
fichier jusqu'à ce que vous trouviez le coupable (ou bien commencez par une ligne vide et restaurez une ligne à la fois).Réponses:
Les journaux sont à l'origine des erreurs car
apache
ils ne peuvent pas écrire à la racine de votre site Web. Même si vous deviez corriger les autorisations de fichier, vous seriez toujours bloqué par SELinux; qui permet uniquementapache
d'écrire des journaux/var/log/httpd
. La solution la plus simple serait de modifier votre site Web pour vous connecter à ce répertoire - peut-être avec un nom de fichier qui contient le nom du site Web afin de le différencier des autres journaux.Pour définir le nom d'hôte du serveur et se débarrasser de l'avertissement AH00558, utilisez simplement:
par exemple
la source
J'ai eu cette erreur lorsque j'ai oublié de définir le nom d'hôte de la machine. L'avez-vous fait?
Exécutez cette commande:
Vérifiez avec
hostname
Modifier:
Avec l'OP mis à jour, il semble que votre fichier d'hôtes ne soit pas correctement configuré. Voici à quoi ressemble la mienne;
Essayez de le régler sur quelque chose de simple comme ça. Bien sûr, remplacez toutes les informations par les vôtres.
166.66.666.66
avec votre propre IPm32.me and m32
avec votre domaine et domaine sans le TLDla source
AH00558
erreur lorsque j'utilise votre exemple de fichier hosts, avec monip
etmydomain.com mydomain
.