Site icon Noir Solutions

La gestione degli errori in runtime php, php.ini e .htaccess

error log in php, apache e httpdconfQuando si deve programmare in un qualsiasi linguaggio una delle cose sicuramente piu’ importanti nella fase di sviluppo di un ‘applicazione è il debug ed in particolare la visualizzazione degli errori. Questo ultimo aspetto è fondamentale quando operate con i bridge ossia fra collegamenti fra diverse piattaforme come facebook e una pagina web per esempio.

La visualizzazione degli errori nella vostra pagina si effettua attraverso tre possibili soluzioni. Tramite la modifica

 

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
Exit mobile version