La visualizzazione degli errori nella vostra pagina si effettua attraverso tre possibili soluzioni. Tramite la modifica
- delle impostazioni nel vostro server apache nel php.ini
- delle impostazioni nel vostro server apache nell’httpd.conf
- di runtinme attraverso le funzioni native php
Facciamo una piccola precisazione negli hosting condivisi non sempre è possibile, per motivi di sicurezza. Nelle soluzioni VPS o Server dedicato dovete agire nel seguente modo.
Andate sul vostro http.conf e soccrete fino a quando non trovate la riga
: # ErrorLog
e inserite la riga
ErrorLog /var/log/apache/error.log
con error.log per semplicità ma ne potete mettere un nome qualunque di vostro interesse.
Nel caso vogliate sapete anche chi accede (si logga ) al vostro sito vi basterà introdurre
/var/log/apache/access.log
sotto la riga CustumLog.
Php.ini e error.log
Se invece volete operare tramite il file di configurazione del php.ini , aprite il file php.ini e localizzate il
log_errors e/o error_log facendo i seguenti settaggi
log_errors = On error_log = /path/to/error.log
Configurazione Apache e error.log
Facciamo una precisazione. Modificando il vostro php.ini avrete una modifica globale mentre se volete fare una modifica locale del vostro virtual host dovrete fare
<virtualhost *:80> ... php_value log_errors on php_value error_log /path/to/error.log ... </virtualhost>
Sostituite /path/to/error.log con la directory di dove volete che sia.
.htaccess e error.log
Scendiamo di un gradino adesso vediamo nel caso vogliate mettere il vostro error.log, dentro una direttory del vostro virtual host, in questo caso dovete creare il vostro .htaccess con
php_value log_errors on php_value error_log /path/to/error.log
e salvarlo nella directory di vostro interesse e settando il path. In questo caso Apache non deve essere riavviato.
PHP Script e error log
Oppure potete decidere di creare tale file attraverso gli script PHP in questo caso con il codice
ini_set("log_errors", "On"); ini_set("error_log", "/path/to/error.log");
Per una trattazione piu’ completa in questo caso le direttive che potete usare sono le seguenti
error_reporting: stabilisce il livello degli errori da rilevare; la sua impostazione potrà avvenire ricorrendo a delle costanti o a dei numeri interi compresi fra 0 e 2147483647 ; display_errors: stabilisce se gli errori rilevati devono essere stampati a video può assumere valori boleani (on/off oppure 0/1); display_startup_errors: stabilisce se mostrare errori che si verificano nella fase di startup del php e può assumere valori boleani; log_errors: consente di impostare il file su cui salvare i log degli errori rilevati (in base all'impostazione di error_reporting); il parametro sarà il percorso a tale file; log_errors_max_len: consente di impostare la massima lunghezza in byte al file di log; di default è 1024 e impostandolo a 0 non si avranno limiti alla sua dimensione; ignore_repeated_errors: consente di non rilevare errori duplicati che si riscontrano nello stesso file e alla stessa linea; può assumere valori on e off, oppure 0 e 1. ignore_repeated_source: consente di non rilevare errori duplicati nello stesso file (anche se disposti su più linee); può assumere valori on e off, oppure 0 e1; docref_root: in caso di errori riferibili a specifiche funzioni, verrà fornito un link alla documentazione ufficiale; tale parametro accetta delle strighe che andranno a formattare il link (ad esempio 'http://php.net/'); track_errors: può assumere valori on e off oppure 0 e 1 e consente di ottenere la variabile $php_errormsg che sarà una stringa contenete l'errore;
WordPress e error.log
Oggi con i CMS in continua espansione e quindi se state lavorando con Worpdress vi potrà capitare di riccorrere al file di error log. Andate in wp-config.php che trovate nella directory radice di doce avete installato il vostro CMS e per prima cosa impostate a true il debug , nel seguente modo
define('WP_DEBUG', true); // enable debugging mode
e dopo aggiungete le seguenti righe di codice
// log php errors @ini_set('log_errors','On'); // enable or disable php error logging (use 'On' or 'Off') @ini_set('display_errors','Off'); // enable or disable public display of errors (use 'On' or 'Off') @ini_set('error_log','/home/path/logs/php-errors.log'); // path to server-writable log file