Quando ci si trova davanti una pagina bianca o un generico errore 500, diventa essenziale avere una traccia dell'errore generato. A questo proposito ci vengono in aiuto i log di Apache, che vanno però prima rintracciati.
Un errore generico registrato nel web server (errore 500) ha in realtà una causa ben precisa. Il problema è che l'output inviato al browser -una semplice pagina testuale stile web 1.0- è sempre lo stesso, per cui per uno sviluppatore non è semplice trovare il problema.
Gli errori vengono memorizzati da Apache dentro un file di log, la cui posizione dipende però dal sistema in cui ci troviamo:
su macchine RHEL / Red Hat / CentOS / Fedora Linux il file si chiama di solito "error_log" e si trova dentro /var/log/httpd/;
su macchine Debian / Ubuntu Linux il file si chiama "error.log" dentro /var/log/apache2;
su machine FreeBSD dovremmo trovare il file error.log dentro /var/log/httpd.
Se vogliamo evitare di procedere per tentativi, possiamo aprire la shell del server e digitare questo comando
locate error.log
che ci fornirà l'elenco di tutti i files 'error.log' sulla nostra macchina. La ricerca funziona come una "%like%" , per cui restituisce anche risultati come "mws_error.log.2019-11-27".
Nel caso ci arrivassero troppi risultati, possiamo risolvere digitando
grep ErrorLog /usr/local/etc/apache22/httpd.conf
oppure
grep ErrorLog /etc/apache2/apache2.conf
oppure
grep ErrorLog /etc/httpd/conf/httpd.conf
Uno dei tre comandi (anche questo dipende dalla macchina che abbiamo davanti) restituisce la porzione del file di configurazione di Apache in cui è configurato il nome del file di log.
Tenete presente che il percorso potrebbe essere assoluto:
/var/log/apache2/error.log
oppure relativo:
logs/error.log
(senza lo "/" iniziale). In questo caso, significa che il percorso va considerato dalla cartella in cui ci troviamo. Se ad esempio abbiamo trovato il nostro apache2.conf, siamo nella cartella /etc/apache2 e quindi i log saranno dentro /etc/apache2/logs/error.log.