Come abilitare gli errori nel php_error.log
Quando si scrive un software in php "a mano", ovvero senza usare delle applicazioni già fatte come WordPress o Joomla!, è sicuramente utile e necessario avere evidenza degli errori che l'applicazione genera, magari su un file di testo, soprattutto in produzione dove normalmente si disabilita la visualizzazione degli errori a video.
IMPORTANTE
Questa guida è applicabile solo per gli Hosting Linux acquistati entro il mese di Maggio del 2015. Se hai acquistato il nuovo Hosting Linux cPanel a partire da Giugno del 2015 in poi leggi le guide dedicate all'Hosting Linux cPanel.
Sull'Hosting Linux di Register.it in realtà gli errori sono già abilitati, ma sono generati in uno spazio non visibile dal cliente. Per avere quindi un file di testo con gli errori fruibile dal webmaster, si devono fare 3 operazioni:
- creare una directory per il file di log in uno spazio accessibile dal webmaster
- limitare l'accesso web al file dove si salvano i log
- modificare il path del file php_error.log nel php.ini
Creazione directory per i log
La directory che conterrà i log può essere creata dove l'utente preferisce, sia in uno spazio accessibile via web, sia in uno spazio privato. Ricordiamo che su Register.it la directory che contiene materiale visibile online è la
/htdocs/public. Tutto quello che è lì dentro sarà in qualche modo accessibile via web, a meno che non gli si neghi esplicitamente l'accesso. Ci sono anche alcuni hosting di molti anni fa con una configurazione un po' diversa, ma qui trattiamo il caso più generico.
Creiamo una directory per il file
php_error.log tramite FTP o File Manager, per esempio
/htdocs/public/www/tmp_log
Limitazione accesso alla directory via web
Nel file php_error.log ci possono essere informazioni importanti, anche "compromettenti" per la sicurezza del tuo sito web. Dipende da cosa viene detto all'applicazione di loggare. Quindi conviene proteggerlo da un potenziale accesso via web.
Per fare questo basta creare un file .htaccess dentro la cartella appena creata con questa sintassi
<Files php_error.log>
Order allow,deny
Deny from all
Satisfy All
</Files>
Nel caso in cui il vostro file di errore abbia un nome diverso da php_error.log, cambiate il file .htaccess di conseguenza.
Modifica della variabile error_log nel php.ini
Per modificare il file php.ini, Register.it mette a disposizione di ogni cliente hosting un php.ini editor, accessibile dal pannello di controllo dell'hosting linux sotto la voce "Gestione php.ini"
Una volta entrato nell'editor, verifica che i log siano attivati, controllando che la variabile log_errors sia impostata come sotto e non sia commentata con un ";" davanti
log_errors = On
Cerca poi la variabile error_log e modificala in funzione della directory che hai appena creato (vedi qui sotto un esempio). Anche per questa variabile, verifica che non sia commentata.
error_log = /htdocs/public/www/tmp_log/php_error.log
Dal momento in cui salvi il file, i tuoi script php inizieranno a scrivere gli errori lì dentro. Potrai accedere al file via File Manager o via FTP. In alternativa, potresti modificare il file .htaccess per consentire un accesso alla directory tramite username e password e consultare il file via web.