Come abilito la modalità debug in PrestaShop?

Domanda pubblicata 2682 visualizzazioni

La modalità debug PrestaShop mostra errori PHP e output dettagliato delle eccezioni, utile durante la diagnosi ma non sicuro da lasciare attivo su uno shop live. Può esporre path, dettagli di configurazione, errori SQL e stack trace visibili ai clienti.

Advanced Parameters > Performance con l'interruttore Debug mode
Advanced Parameters > Performance - l'interruttore Debug mode e Disable all overrides.

Dal back office, il percorso normale è Advanced Parameters > Performance > Debug mode. Sul filesystem, la stessa impostazione è controllata da _PS_MODE_DEV_ in config/defines.inc.php:

// config/defines.inc.php
define('_PS_MODE_DEV_', true);

// switch back after debugging
define('_PS_MODE_DEV_', false);

Se devi fare debug in produzione per poco tempo, abilitalo per il minimo necessario, riproduci il problema, salva i dettagli errore e disattivalo di nuovo. Un pattern più sicuro solo per sviluppatori è mettere debug mode dietro una condizione privata, per esempio un controllo cookie temporaneo:

define('_PS_MODE_DEV_', isset($_COOKIE['debug']) && $_COOKIE['debug'] === 'secret');

Dopo aver cambiato debug mode, svuota la cache PrestaShop se il comportamento non cambia subito. Controlla anche i log server, perché i fatal error possono essere loggati lì anche quando il browser mostra solo una pagina 500 generica.

Se usi MPR Performance Revolution, esiste un pattern produzione più sicuro che modificare direttamente la define core: Employee Debug Mode scrive un piccolo file bootstrap e imposta un cookie MPRPSDEV di breve durata per dipendenti back-office loggati, così i visitatori normali restano in modalità produzione. Il cookie è HTTP-only, secure quando HTTPS è in uso, same-site Lax e scade dopo quattro ore di inattività. È comunque debugging su uno shop live, quindi usalo in modo ristretto, ma è meno rischioso che mostrare stack trace a ogni visitatore.

Non lasciare mai _PS_MODE_DEV_ attivo dopo aver riprodotto l'incidente. Cattura messaggio eccezione, stack trace e URL richiesta, poi disabilita debug mode e lavora dai log. Se l'errore appare solo durante checkout o callback pagamento, preferisci log server e log modulo invece di esporre output debug su URL pubblici di ritorno pagamento.

Questa risposta ti è stata utile?

Hai ancora domande?

Non trovi quello che cerchi? Inviaci la tua domanda e ti risponderemo.

Caricamento...
Torna su