Em um CentOS 7servidor, recebo o seguinte erro ao digitar sudo apachectl restartapós adicionar um arquivo de inclusão na parte inferior de httpd.conf:
Job for httpd.service failed. See 'systemctl status httpd.service' and 'journalctl -xn' for details.
Quando digito sudo systemctl status httpd.service -l, o resultado é:
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.
Posso apachereiniciar se comentar a diretiva de inclusão e posso recriar o erro novamente, sem comentar a diretiva de inclusão. Como posso começar apachea usar corretamente o conteúdo do arquivo de inclusão?
A linha na parte inferior do httpd.confque desencadeia o erro é: IncludeOptional sites-enabled/*.conf. O único .confarquivo na sites-enabledpasta é mydomain.com.conf, que possui o seguinte conteúdo:
<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>
O httpd.confé o mesmo que o que vem pré-instalado com httpd, exceto para a linha incluem directiva acima. Eu sei porque eu fiz sudo yum remove httpd mod_ssle sudo yum install httpd mod_ssllogo antes de desencadear este erro. A íntegra httpd.confpode ser lida em um site de compartilhamento de arquivos clicando neste link .
Encontrei esse problema ao seguir explicitamente as etapas deste tutorial .
Quando eu comento o arquivo de inclusão, http/mydomain.comexibe com êxito o conteúdo estático localizado em /var/www/html, que é o DocumentRootdefinido em httpd.conf. O problema parece estar vindo da VirtualHostdiretiva no arquivo de inclusão mostrado acima. Para ajudar no diagnóstico, incluí na EDIT # 3 abaixo os links para todos os .confarquivos contidos nas três que incluem diretivas httpd.conf.
EDIT # 1
Quando tento o conselho do m32 para alterar a /etc/hostnamedefinição mydomain.com, apacheainda não será reiniciado e os systemctl status httpd.serviceresultados serão os seguintes:
[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
Eu também tentei o conselho do eyoung100 para alterar o conteúdo do meu /etc/hostsarquivo, conforme definido na imagem a seguir, mas ainda recebo o mesmo erro definido na EDIT # 1 acima.
EDIT # 3
Por solicitação da DerekC, eu corri sudo apachectl configteste obtive:
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
Além disso, por sugestão de GarethTheRed, examinei as diretivas de inclusão no httpd.conf . Existem três diretivas de inclusão no httpd.conf . Listei os três abaixo, juntamente com todos os arquivos localizados na pasta de cada diretiva. Estes são todos os .confarquivos padrão instalados com httpd. Ainda não modifiquei nenhum deles. Você pode visualizar cada um dos .confarquivos em um site de compartilhamento de arquivos clicando nos links abaixo:
Include conf.modules.d/*.confreferencia os seguintes arquivos no conf.modules.ddiretório:
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/*.confreferências os seguintes arquivos no conf.ddiretório:
autoindex.conf
ssl.conf
userdir.conf
welcome.conf
Há também um arquivo README que estou omitindo aqui.
Além disso, a IncludeOptional sites-enabled/*.confdiretiva e seu conteúdo foram descritos detalhadamente no PO acima.
Algum destes arquivos inclui conflitos com as VirtualHostconfigurações mydomain.com.conf?
EDIT # 4
Por sugestão do garethTheRed, mudei mydomain.com.confpara o conf.ddiretório e comecei a comentar as linhas mydomain.com.confuma a uma até httpdconseguir reiniciar. Comecei a não comentar as linhas para ver quantas linhas poderiam permanecer e httpdainda reiniciar. Consegui httpdreiniciar, mas systemctl status httpd.service -lcontinua a produzir o mesmo aviso:
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
A VirtualHostsintaxe que permite httpdiniciar (embora continue gerando o aviso acima) é a seguinte:
<VirtualHost *:80>
ServerName www.mydomain.com
ServerAlias mydomain.com
DocumentRoot /var/www/mydomain.com/public_html
</VirtualHost>
Observe que tive que omitir as seguintes linhas, cuja presença transforma o aviso em uma completa incapacidade de iniciar o http:
# ErrorLog /var/www/mydomain.com/error.log
# CustomLog /var/www/mydomain.com/requests.log combined
Além disso, corri sudo journalctl -xelu httpde o terminal respondeu repetindo as seguintes vezes:
--
-- 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)
Nota: Os resultados acima permanecem os mesmos, independentemente de eu usar o arquivo hosts do eyoung100 ou o arquivo host do m32. Para que esta pergunta seja respondida, acho que devo conseguir criar arquivos de log e também evitar o aviso do nome do servidor. Caso contrário, receio que as etapas subsequentes da configuração do httpd sejam propensas a erros persistentes.
apachectl configtest?
IncludeOptionalno final do httpd.confarquivo original ? Eu acredito que existe em uma instalação padrão. O problema pode ser que você está adicionando o extra IncludeOptionalno final, o que força apachea ler o arquivo de configuração incluído duas vezes e, consequentemente, faz com que ele falhe.
mydomain.com.confpara /etc/httpd/conf.d(onde estão todos os outros) e excluir /etc/httpd/sites-enabled(isso é uma coisa do Debian / Ubuntu) e o que IncludeOptionalvocê adicionou httpd.conf. Você pode ignorar a AH00558mensagem por enquanto, pois ela não para apache. Em seguida, remova uma linha do seu confarquivo até encontrar o culpado (ou, alternativamente, comece com uma vazia e restaure uma linha de cada vez).
ServerNamediretiva? Adicione à sua pergunta.