Infelizmente, o apachectl não oferece essa informação.
Sua melhor solução é simplesmente usar grep
para procurar os arquivos de configuração pela string mostrada na mensagem de erro.
Existe uma maneira de determinar o arquivo incorreto ao executar https configtest
.
Por exemplo, em vez de:
Warning: DocumentRoot [/var/www/whatever.com/webroot] does not exist
Warning: DocumentRoot [/var/www/example.com/webroot] does not exist
Eu pude ver:
Warning: DocumentRoot [/var/www/whatever.com/webroot] does not exist in /etc/httpd/conf.d/file.conf
Warning: DocumentRoot [/var/www/example.com/webroot] does not exist in /etc/httpd/conf.d/other_file.conf
Revi ajuda / man e pesquisei, mas não consegui encontrar uma opção ou comando equivalente.
Infelizmente, o apachectl não oferece essa informação.
Sua melhor solução é simplesmente usar grep
para procurar os arquivos de configuração pela string mostrada na mensagem de erro.
Só para adicionar um pouco de informação extra, o script apachectl
não faz muito por si só, invoca o binário httpd
com um sinalizador:
configtest)
$HTTPD -t
ERROR=$?
;;
Portanto, isso deve ser abordado no próprio núcleo.
Isso foi corrigido em apache-2.4
:
# systemctl status httpd
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
Active: failed (Result: exit-code) since Fri 2014-06-20 20:36:01 CEST; 1s ago
Process: 3331 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
Process: 3329 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
Main PID: 3329 (code=exited, status=1/FAILURE)
Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec"
Jun 20 20:36:01 foo.com httpd[3329]: AH00526: Syntax error on line 15 of /etc/httpd/conf.d/012-some-vhost.conf:
Jun 20 20:36:01 foo.com httpd[3329]: Invalid command 'UseCanonicalNamex', perhaps misspelled or defined by a module not included in the server configuration
Jun 20 20:36:01 foo.com systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
Jun 20 20:36:01 foo.com systemd[1]: Failed to start The Apache HTTP Server.
Jun 20 20:36:01 foo.com systemd[1]: Unit httpd.service entered failed state.
O código relevante está em server/config.c
.
Baseado no este tutorial verifique /etc/apache2/extra/httpd-vhosts.conf
. Isso funcionou na minha máquina que é o OSX 10.13 usando o Apache 2.4.
Tags apache-2.2