Che cos'è un errore 500?

L'errore 500 significa che qualcosa è andato storto sul server, ma il server non sa dire cosa. È un generico «si è rotto qualcosa» che va indagato.

Prima cosa: guarda i registri in EGPNL → Registri → Registri degli errori. Il messaggio preciso ti porterà alla causa esatta.

Cause frequenti e rimedi

1. Errori di sintassi PHP

Causa

Un punto e virgola mancante, una parentesi non chiusa o un refuso nel codice PHP.

Rimedio

Cerca nei registri il file e il numero di riga. Gli errori tipici: manca un ;, una { non chiusa, o un $ dentro una stringa.

2. Versione di PHP incompatibile

Causa

Il codice usa funzioni non disponibili nella versione attuale di PHP, oppure ormai deprecate.

Rimedio

Verifica quale versione serve. In EGPNL vai su PHP → Versione di PHP e passa a una compatibile.

3. Permessi dei file sbagliati

Causa

I file PHP hanno permessi errati: troppo restrittivi oppure 777.

Rimedio

Metti le cartelle a 755 e i file a 644. Non usare mai 777.

# Fix permissions via SSH
find /path/to/site -type d -exec chmod 755 {} \;
find /path/to/site -type f -exec chmod 644 {} \;

4. Estensioni PHP mancanti

Causa

L'applicazione ha bisogno di un'estensione PHP che non è attiva.

Rimedio

Vai su EGPNL → PHP → Estensioni PHP e attiva quella richiesta (per esempio mysqli, gd, curl).

5. Limite di memoria superato

Causa

Lo script PHP consuma più memoria di quanta ne abbia a disposizione.

Rimedio

Alza il limite in EGPNL → PHP → Impostazioni PHP, oppure aggiungi al tuo codice:

// In PHP file
ini_set('memory_limit', '256M');

// Or in php.ini
memory_limit = 256M

6. File .htaccess guasto (con Nginx)

Causa

Alcune applicazioni creano file .htaccess, ma EGPHP usa Nginx, che non li supporta.

Rimedio

Le regole .htaccess vanno convertite nel formato di Nginx. Le opzioni sono in EGPNL → Nginx.

7. Connessione al database non riuscita

Causa

Credenziali sbagliate, oppure il database non esiste.

Rimedio

Verifica le credenziali nel file di configurazione (wp-config.php per WordPress) e controlla che il database esista in EGPNL.

8. Conflitto fra plugin o temi (WordPress)

Causa

Un plugin o un tema ha un difetto, oppure entra in conflitto con un altro.

Rimedio

Rinomina la cartella dei plugin in plugins_old dal gestore dei file. Se il sito torna su, rimettile il nome originale e riattiva i plugin uno alla volta per scoprire il colpevole.

Rimedi specifici per WordPress

Attivare la modalità di diagnosi di WordPress

Modifica wp-config.php aggiungendo o cambiando:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

Poi cerca gli errori in wp-content/debug.log.

Aumentare la memoria di WordPress

// Add to wp-config.php
define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '512M');

Ripristinare i file di sistema danneggiati

  1. Scarica una copia nuova di WordPress da wordpress.org
  2. Elimina le cartelle wp-admin e wp-includes (NON wp-content)
  3. Carica le nuove wp-admin e wp-includes
  4. Sostituisci wp-config.php solo se è danneggiato
Prima il backup. Salva sempre il sito prima di toccare i file di sistema.

Leggere i registri degli errori

Per diagnosticare un errore 500 i registri sono il tuo migliore amico:

  1. Vai su EGPNLRegistri
  2. Scegli Registri degli errori
  3. Guarda le voci più recenti (le ultime stanno in fondo)
  4. Annota il percorso del file e il numero di riga

I messaggi più frequenti nei registri

  • PHP Parse error - errore di sintassi in un file PHP
  • PHP Fatal error - errore grave che interrompe l'esecuzione
  • Allowed memory size exhausted - limite di memoria raggiunto
  • Call to undefined function - manca una funzione o un'estensione

L'errore 500 resta?

  1. Copia l'errore esatto dai registri
  2. Annota quando è comparso (dopo un aggiornamento? un nuovo plugin?)
  3. Prova a ripristinare da un backup, se ne hai uno
  4. Scrivi all'assistenza con i dettagli dell'errore