Passa al contenuto principale

Errore interno del server 500: cause e soluzioni

· 5 minuti di lettura
Customer Care Engineer

come-risolvere-errore-interno-server-500-risoluzione-problemi-sito-web

Un Errore interno del server 500 è uno dei problemi più comuni che proprietari e amministratori di siti web incontrano. Segnala che qualcosa è andato storto sul server, ma non fornisce diagnosi precise. Questo articolo spiega cosa scatena tipicamente un errore 500 e come risolverlo.


Possibili cause di un errore 500

Un errore 500 può verificarsi per molte ragioni. Le più frequenti sono:

  1. Problemi di risorse lato server

Spesso l'errore 500 può essere causato da problemi tecnici sul server, come la mancanza di risorse (RAM, tempo CPU).

  1. Errori nel codice del sito web

Script o codice del sito web possono contenere errori che causano un crash. Ciò può essere dovuto a richieste errate, errori nei file di configurazione o problemi con l'interazione dei componenti del sito.

  1. Problemi con il file .htaccess

Il file .htaccess viene utilizzato per configurare il web server e può contenere errori che si tradurranno in un errore 500. Ad esempio, regole di reindirizzamento errate o parametri scorretti possono causare un crash.

  1. Aggiornamenti recenti

Errori possono verificarsi dopo aggiornamenti al sito web o alle applicazioni del server, dove le modifiche non sono state gestite correttamente.


Come correggere un errore 500

  1. Controlla i log del web server

Per determinare la causa di un errore 500, il primo passo è controllare i log del server. Questi log contengono tipicamente informazioni sul fallimento, che si tratti di un errore di codice, una errata configurazione o un problema a livello di server. Tuttavia, è importante capire che i log del web server (come quelli di Nginx o Apache) spesso registrano solo l'occorrenza dell'errore e il codice di risposta, non la causa principale. Ciò è particolarmente vero per Nginx, che di solito agisce da proxy e inoltra semplicemente l'errore dall'applicazione backend.

A seconda del web server utilizzato, i log possono trovarsi nelle seguenti directory:

Apache:

  • Ubuntu/Debian: /var/log/apache2/error.log

  • CentOS/AlmaLinux/Rocky Linux: /var/log/httpd/error.log

Nginx:

  • /var/log/nginx/error.log

Se il tuo server è gestito tramite un pannello di controllo come FASTPANEL, la visualizzazione dei log diventa ancora più semplice. Per fare ciò:

  • Accedi al pannello di controllo.

  • Apri la scheda del sito e individua la sezione “Log”.

  • La scheda “Log errori frontend” contiene gli errori del web server Nginx, mentre la scheda “Log errori backend” contiene gli errori di Apache.

Tieni presente che molti CMS e framework (WordPress, Laravel, Joomla, ecc.) mantengono i propri log degli errori. Questi log forniscono spesso informazioni più precise sulla causa di un errore 500. Consulta la documentazione della tua piattaforma per trovare dove sono memorizzati questi log.

I log ti forniranno molto probabilmente un'analisi dettagliata di ciò che è andato storto. Se l'errore 500 è stato innescato da una errata configurazione o da problemi di codice, puoi visualizzare i file, o persino le righe esatte, che causano il fallimento.

  1. Abilita la registrazione degli errori lato PHP

Per ottenere diagnosi più dettagliate, abilita la registrazione direttamente in PHP, particolarmente utile quando l'errore ha origine nel codice e non appare nei log del web server.

Per fare ciò, imposta i seguenti valori nel file php.ini:

display_errors = Off

log_errors = On

error_log = /var/log/php_errors.log

Qui:

  • display_errors — sopprime l'output degli errori nel browser

  • log_errors — scrive gli errori in un file di log

  • error_log — percorso del file di log (PHP deve avere i permessi di scrittura)

Posizioni tipiche di php.ini:

  • Debian/Ubuntu: /etc/php/*/apache2/php.ini o /etc/php/*/cli/php.ini

  • CentOS/AlmaLinux: /etc/php.ini

Oppure individua tramite:

php -i | grep "php.ini"

In FASTPANEL: apri la scheda del sito → “Impostazioni PHP”, cerca variabili come display_errors, modifica i loro valori e fai clic su “Salva”.

  1. Controlla il file .htaccess

Se l'errore è comparso dopo aver modificato .htaccess, ripristina il file al suo stato precedente.

Se non sei sicuro di cosa sia cambiato esattamente, rinomina temporaneamente .htaccess (ad esempio, in .htaccess.bak) – se l'errore scompare, allora il problema è in questo file.

In questo caso, prova a ripristinare il file .htaccess da un backup, se disponibile, o utilizza il file .htaccess predefinito per il tuo CMS, che puoi ottenere da qui.

  1. Verifica i permessi e la proprietà dei file

Permessi impropri possono innescare un 500. Assicurati che la root del sito e tutti i file secondari abbiano i diritti e il proprietario corretti:

ls -laR /percorso/alla/radice/del/tuo/sito

Permessi consigliati:

  • Per le directory: 755 — lettura, scrittura ed esecuzione per il proprietario; lettura ed esecuzione per tutti gli altri.

  • Per i file: 644 — lettura e scrittura per il proprietario; sola lettura per tutti gli altri.

Proprietà:

File e cartelle dovrebbero appartenere all'utente del web server (es. www-data o apache).

Se necessario, puoi regolare i permessi e la proprietà utilizzando i seguenti comandi:

  • Spostati nella directory principale del tuo sito:
cd /percorso/alla/directory/radice/del/sito
  • Imposta la corretta proprietà e i permessi:
sudo chown -R tuo_utente_sito:tuo_utente_sito . && sudo chmod 644 . -R && sudo chmod +X . -R

Sostituisci tuo_utente_sito con l'utente e il gruppo effettivi che possiedono il tuo sito.

  1. Disabilita plugin e temi.

Per siti basati su CMS come WordPress, un errore 500 spesso deriva da conflitti tra plugin o temi. Disabilita tutti i plugin e passa a un tema predefinito per vedere se questo risolve il problema.

  1. Assicurati che il server disponga di risorse libere sufficienti per i tuoi siti.
  • Verifica di avere abbastanza spazio libero su disco:
sudo df -h
  • Verifica che il server non abbia esaurito gli inode:
sudo df -ih
  • Verifica che il server abbia abbastanza RAM:
sudo free -mh
  • Verifica il carico attuale della CPU:
sudo ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head
  • In alternativa, apri il monitor dei processi con il comando:
sudo top

Se hai esaurito lo spazio su disco o gli inode, puoi identificare quali file e directory consumano più spazio seguendo le istruzioni nell'articolo pertinente qui.

Se il carico di RAM o CPU è eccessivamente elevato, le cause possono variare. Inizia la tua indagine bloccando i bot dei motori di ricerca, poiché sono frequentemente la fonte di un carico elevato.

  1. Verifica che il DBMS sia integro.

Molto spesso si tratterà di MySQL; di seguito sono riportati alcuni rapidi passaggi per verificare se i tuoi database sono a posto.

  • Conferma che il servizio MySQL sia in esecuzione:
sudo systemctl status mysql
  • Controlla il log degli errori di MySQL:
sudo grep -i error /var/log/mysql/error.log
  • Controlla tutti i database per eventuali errori:
mysqlcheck -A -c

Se vengono trovati errori, prima assicurati di avere backup dei database interessati. Se necessario, crea un dump con:

mysqldump -u [utente] -p [nome_database] > /percorso/al/file/dump.sql
  • Sostituisci [utente] con il nome utente MySQL.

  • Sostituisci [nome_database] con il nome del database che desideri esportare.

  • /percorso/al/dump.sql è il percorso dove verrà salvato il file di dump.

Successivamente, esegui la procedura di correzione degli errori con mysqlcheck:

mysqlcheck -A --auto-repair -c
  1. Contatta il tuo provider di hosting.

Se non riesci a identificare il problema, potrebbe essere utile contattare il supporto del tuo provider di hosting. Può aiutare a identificare problemi sul server che non sono visibili a livello utente. Puoi saperne di più su come scegliere il provider di hosting giusto in questo articolo.


Conclusione

L'errore 500 non è una sentenza per il tuo sito web. Con l'aiuto di strumenti diagnostici di base, puoi scoprire rapidamente la causa e risolvere il problema. Se non sei sicuro delle tue capacità, puoi sempre rivolgerti a degli specialisti. È importante ricordare che un errore 500 trovato e risolto in tempo ti aiuterà a evitare problemi più seri in futuro.