Visualizzazione risultati 1 fino 5 di 5

Discussione: settaggio errori su sito online (produzione)

  1. #1
    Guest

    Thumbs down settaggio errori su sito online (produzione)

    Ciao a tutti,

    Vorrei impostare un file di log che registri gli errori PHP per il mio sito web. Leggendo il manuale ufficiale PHP e nello specifico qui: http://www.php.net/manual/en/errorfu...#ini.error-log, e varie guide online, ho visto che la priorità viene data rispettivamente in quest'ordine:

    1) alle direttive impostate tramite file php.ini - che ha la priorità massima, poi

    2) alle direttive impostate nel virtual host, cioè agendo sul file httpd.conf

    3) alle direttive impostate tramite il file .htaccess ed infine

    4) solo successivamente alle direttive impostate "runtime" tramite un file php che utilizza le funzioni error_reporting() e ini_set(). File che andrà inserito poi in tutte le pagine web che si desidera.



    Ora mi sono creato un semplice file di testo vuoto che ho chiamato error_log2 poi l'ho caricato via FTP come tutte le pagine web che creo, sul mio sito che ho qui su altervista.org, ed infine mi sono creato un file php che includo in una mia pagina online per provare, in questo modo:

    <?php
    include 'err_produ.php;
    ?>

    Con questo script vorrei memorizzare tutti gli errori, MA NON MOSTRARLI A VIDEO OVVIAMENTE, come faccio con XAMPP in locale, ovvero in fase di sviluppo, ed invece registrarli sul file di cui sopra.

    Ora accedendo al mio sito da altervista, vedo che su tale file mi viene mostrato questo errore:

    Warning: ini_set() [function.ini-set]: SAFE MODE Restriction in effect. The script whose uid is 1979513 is not allowed to access / owned by uid 0 in /membri/mio_sito/err_produ.php on line 19

    Ed infatti sul file di testo NON si registra NULLA!.

    Ecco lo script err_produ.php :

    Codice PHP:
    <?php
    /*

    Report all errors.
    The default value set in php.ini is E_ALL & ~E_NOTICE or E_ALL ^ E_NOTICE, which is exactly the same.
    This setting does not show E_NOTICE level errors.
    You may want to show them during development.

    */
    error_reporting(E_ALL);
    ini_set('display_errors', 0);
    ini_set('display_startup_errors',0);
    ini_set('log_errors', 1);
    ini_set('log_errors_max_len', 0);
    ini_set('ignore_repeated_errors', 1);
    ini_set('ignore_repeated_source', 1);
    ini_set('report_memleaks', 1);
    ini_set('track_errors', 1);
    ini_set('error_log', '/error_log2');
    ?>

    Grazie a tutti in anticipo.
    Ciao

  2. #2
    Guest

    Predefinito

    scusate ora ho settato via FTP il file di testo per il log degli errori in chmod 777 ed infatti lo script non mi da più quell'errore, ma in ogni caso se faccio uno sbaglio intenzionale sulla pagina online che ha l'include di cui sopra NON mi si registra nulla nel file di log!

    Idee?
    Ciao.

  3. #3
    Guest

    Predefinito

    Prova a scrivere così questa riga:

    ini_set('error_log', '/membri/neoutentilinux/error_log2');

  4. #4
    Guest

    Predefinito

    Ciao,

    Ho provato a fare come tu suggerisci, ma NON funziona.
    IL file di testo RIMANE sempre vuoto ed inoltre l'errore che commetto nella mia pagina online volontariamente, ovvero:

    <?php

    echo $bye;

    ?>

    Vale a dire stampo una variabile NON definita mi viene stampato a video!!!!
    Vedo infatti:

    Notice: Undefined variable: bye in /membri/neoutentilinux/terminale-lezione n.1.php on line 58

    anche se non dovrebbe affatto secondo le istruzioni che io do nel mio script php.

    Non capisco.


    Tra l'altro ho provato a settare il file err_produ.php cambiando l'istruzione ini_set('display_errors', 0); in
    ini_set('display_errors', 'off'); visto che il manuale dice che il valore di questa direttiva ora NON è più booleano bensì una stringa dalla PHP 5.2.4 in poi, ma nulla.

    Ripeto ecco il mio file modificato err_produ.php che NON funziona ancora:

    Codice PHP:
    /*

    Report all errors.
    The default value set in php.ini is E_ALL & ~E_NOTICE or E_ALL ^ E_NOTICE, which is exactly the same.
    This setting does not show E_NOTICE level errors.
    You may want to show them during development.

    */
    error_reporting(E_ALL);
    ini_set('display_errors', 'off');
    ini_set('display_startup_errors', 0);
    ini_set('log_errors', 1);
    ini_set('log_errors_max_len', 0);
    ini_set('ignore_repeated_errors', 1);
    ini_set('ignore_repeated_source', 1);
    ini_set('report_memleaks', 1);
    ini_set('track_errors', 1);
    ini_set('error_log','/membri/neoutentilinux/error_log2');
    ?>
    Non capisco davvero!

    Ciao.
    Ultima modifica di neoutentilinux : 25-08-2013 alle ore 09.44.17

  5. #5
    Guest

    Predefinito

    Nessuna idea?

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •