Quando si configura Apache su Windows o Linux può capitare di imbattersi in messaggi di errore apparentemente oscuri, ma tanto gravi da da impedire l'avvio/riavvio del servizio. Vediamo dunque come diagnosticare e risolvere i principali problemi che si possono incontrare all'avvio di Apache HTTP Server, di modo da rendere nuovamente operativo il nostro server web.
» Leggi anche: Installare e configurare un server web: La Grande Guida ad Apache, MySQL, PHP su Windows e Linux
nota: la trattazione è incentrata su Apache per Windows, ma i messaggi di errore e le tecniche di risoluzione sono sostanzialmente le stesse anche lavorando con Apache per Linux.
Apache Service Monitor: The requested operation has failed!
Se stiamo gestendo il servizio di Apache tramite il tool grafico Apache Service Monitor, viene mostrata la descrizione generica The requested operation has failed!
un po' in tutte le circostanze di errore
Fortunatamente, un messaggio nettamente più utile a diagnosticare il problema è disponibile aprendo il Visualizzatori eventi:
» Leggi: Conosciamo e impariamo a utilizzare il Visualizzatore eventi di Windows
In particolare: portiamoci sotto al ramo Registri di Windows\Applicazione
, ordiniamo la colonna Data e ora
in modo decrescente e noteremo delle voci la cui Origine
è Apache Service
. Ispezionandole, troveremo una descrizione più precisa del problema (v. seguito per la tecniche di risoluzione)
Errore Apache: AH00526: Syntax error on line
Al momento di installare o avviare/riavviare il servizio di Apache tramite linea di comando potrebbe comparire l'errore AH00526: Syntax error on line
, seguito da un numero e dal percorso di un file di configurazione
Questo messaggio di Apache sta a significare che il file di configurazione indicato contiene un errore di sintassi alla linea specificata. Il servizio fornisce, alla riga successiva, un ulteriore chiarimento che potrebbe aiutare a rintracciare il problema.
Soluzione - In linea generale, basta aprire il file di configurazione problematico e ispezionarne il contenuto alla linea indicata (purtroppo, Blocco note di Windows non mostra i numeri di linea, quindi: o contate "con la mente" oppure lo sostituite con Notepad++). Probabilmente, troverete un tag non debitamente chiuso, un errore di battitura o qualcosa di analogo
Notate però che lo stesso codice indica anche un errore "logico": ad esempio, potremmo aver erroneamente abilitato la protezione con username e password (AuthType Basic
) all'esterno del tag <Directory>
, invece che all'interno. In questo caso, la seconda linea del messaggio di errore diviene ancora più importante, poiché recita qualcosa di simile a AuthType not allowed here
.
Errore Apache: AH00072: make_sock: could not bind to address 0.0.0.0:80
Un altro errore che si può presetnare avviando il servizio di Apache è AH00072: make_sock: could not bind to address 0.0.0.0:80
Questo problema si manifesta quando è già in esecuzione un programma che sta rimanendo in attesa di connessioni sulla porta 80
impiegata da Aapche.
» Leggi anche: Porta 80 aperta! cosa significa? Guida riepilogativa ai principali numeri di porta TCP per la comunicazione in rete
Soluzione - In questo caso dobbiamo andare a caccia di quale software stia occupando la porta 80.
Sotto Linux, il comando da impartire via terminale è:
netstat -tulpn | grep :80
In ambiente Windows, possiamo impiegare l'ottima utility CurrPorts:
» Leggi: Tenere sotto controllo quali processi si collegano a Internet
In particolare, ordiniamo la colonna Local
in modo decrescente e dovremmo trovare il nome del "colpevole" che occupa indebitamente la porta 80
Come si vede nello screenshot, Skype è uno dei software "famosi" per causare l'errore AH00072: make_sock: could not bind to address 0.0.0.0:80
di Apache. Possiamo dunque decidere di chiudere Skype quando dobbiamo utilizzare Apache oppure, all'interno di Skype, cliccare Strumenti->Opzioni->Avanzate->Connessione
e disattivare Usa le porte 80 e 443 per le connessioni in ingresso aggiuntive
Errore Apache: AH00558: httpd.exe: Could not reliably determine the server's fully qualified domain name
Il messaggio AH00558: httpd.exe: Could not reliably determine the server's fully qualified domain name
mostrato all'avvio di Apache non è un errore bloccante: se lo ignorate, il servizio funzionerà comunque. In quali casi possa costituire un problema non mi è chiaro, ma, se proprio vi infastidisce, possiamo farlo sparire facilmente.
Soluzione - aprire il file di configurazione "generale" di Apache, ovvero httpd.conf
. Scorrendo verso il basso, troveremo la sezione dedicata al parametro ServerName
. È valorizzato di default a:
#ServerName www.example.com:80
Per i nostri scopi, limitiamoci a rimuovere il carattere #
presente ad inizio riga
Salvare, chiudere, riavviare Apache ed ecco sparito l'avviso.
Errore Apache: AH00112: Warning: DocumentRoot does not exist
Un altro messaggio che si vede spesso durante il riavvio di Apache è AH00112: Warning: DocumentRoot [C:/.../...] does not exist
. Anche in questo caso, siamo in una condizione che non preclude il corretto avvio del servizio, ma che potrebbe impedire al sito web di funzionare correttamente. Apache ci sta infatti segnalando che non è possibile aprire una delle cartelle configurate come DocumentRoot
, ovvero il percorso dal quale attingere i file che costituiscono il sito web.
Soluzione - non c'è molto da fare se non assicurarsi che la cartella indicata nel messaggio esista realmente e, in ambiente Linux, abbia gli opportuni permessi di accesso in lettura per l'utente che esegue il processo di Apache.
Errore Apache per Windows: L'esecuzione del codice non può proseguire perché VCRUNTIME140.dll non è stato trovato
Eseguendo Apache in ambiente Windows, il messaggio di errore L'esecuzione del codice non può proseguire perché VCRUNTIME140.dll non è stato trovato
viene visualizzato se non è stato installato un pre-requisito, ovvero le librerie Microsoft Visual C++.
Soluzione - Per risolvere questo errore: