Chiunque gestisca un sito web, soprattutto un E-Commerce basato su Magento 2, si sarà imbattuto almeno una volta nell’errore 500, noto anche come Internal Server Error. Questo tipo di errore si verifica quando qualcosa va storto nel server al momento dell’elaborazione di una richiesta da parte del browser, impedendo così la corretta visualizzazione della pagina desiderata.
Quando un utente accede a un sito web, il suo browser comunica con il server sul quale il sito è ospitato. Il server riceve la richiesta, la elabora e restituisce le informazioni richieste, come il contenuto di una pagina. In condizioni normali, questo processo avviene senza intoppi e viene restituito un codice di stato HTTP 200, che segnala che tutto ha funzionato correttamente. Tuttavia, quando si verifica un errore 500, il server segnala che si è verificato un problema interno che gli impedisce di completare la richiesta.
Le differenze tra codici 4XX e 5XX
È importante distinguere tra diverse famiglie di errori. Gli errori con codice 4XX, come il 404, sono solitamente legati a problemi lato client, come una pagina non trovata. Gli errori 5XX, invece, indicano malfunzionamenti lato server, ed è proprio in questa categoria che rientra l’errore 500.
Perché è importante risolvere subito un errore 500
Trovare una pagina vuota o con un messaggio d’errore non è mai una buona esperienza per un utente. In un sito E-Commerce, questo tipo di problema può tradursi immediatamente in una perdita economica: un cliente potenziale che si trova davanti a una schermata d’errore molto probabilmente abbandonerà il sito e andrà ad acquistare altrove.
Ma non si tratta solo di perdere una singola vendita. L’errore 500, se persistente, può anche avere un impatto negativo sul posizionamento del sito nei motori di ricerca. Google, infatti, se rileva che un sito è irraggiungibile per un certo periodo di tempo, può interpretarlo come un segnale di scarsa affidabilità e penalizzarlo nel ranking. Se il problema è solo temporaneo e di breve durata, generalmente non succede nulla di grave. Ma se il sito resta offline per ore, è fondamentale intervenire con tempestività per evitare ripercussioni a lungo termine.
Le cause più comuni dell’errore 500 in Magento 2
L’errore 500 è generico e non fornisce molte indicazioni specifiche sulla causa del problema, rendendolo spesso difficile da diagnosticare. Le ragioni possono essere molteplici. A volte si tratta di malfunzionamenti temporanei del server; altre volte il problema è legato a una configurazione errata o a risorse insufficienti sul piano di hosting. Altri fattori scatenanti possono includere:
- Hosting inadatto o con risorse insufficienti.
- Incompatibilità tra plugin e temi.
- Errori di configurazione nei file di sistema, come .htaccess.
- Errori nei permessi dei file o delle cartelle.
- Moduli PHP mancanti o non supportati.
- Limiti di memoria PHP troppo bassi.
- Problemi con il database.
La buona notizia è che esistono diversi passaggi, sia semplici che avanzati, per identificare e risolvere questo problema.
Come risolvere l’errore 500 in Magento 2: guida pratica
La prima cosa da fare per evitare problemi simili è scegliere un buon provider di hosting, specializzato in Magento. Tuttavia, anche un hosting di qualità non può escludere completamente l’insorgenza di errori. Vediamo quindi una serie di azioni da intraprendere, partendo da quelle più immediate fino ad arrivare alle soluzioni tecniche.
Ricaricare la pagina
Può sembrare banale, ma ricaricare la pagina è spesso la prima cosa da provare. Alcuni errori 500 si verificano per motivi momentanei, come un sovraccarico del server. Attendere un minuto e provare nuovamente a caricare la pagina può essere sufficiente a risolvere il problema se si tratta di una situazione temporanea.
Cancellare la cache del browser
Anche la cache del browser può interferire con il caricamento corretto delle pagine. Cancellarla è una procedura semplice che può risolvere il problema in modo rapido, specialmente se il browser continua a mostrare una versione corrotta o datata della pagina.
Verificare la connessione al database
Una causa comune di errore 500 è un problema di connessione al database. Quando ciò avviene, la pagina può apparire completamente bianca, poiché i dati non riescono a essere recuperati. Le cause possono includere:
- Credenziali del database errate.
- Corruzione del database o del CMS.
- Problemi di connessione con il server del database.
Controllare le configurazioni e i file di connessione (come env.php) è un passo importante per escludere problemi lato database.
Controllo dei permessi dei file e delle cartelle
In Magento 2, i permessi errati sono spesso causa di errori 500. Le autorizzazioni devono essere configurate correttamente per consentire al server di accedere ai file. I valori consigliati sono:
- 644 per i file.
- 755 per le cartelle.
Per risolvere questo problema, è quindi necessario aggiornare le impostazioni delle autorizzazioni nella cartella principale. Per falo puoi utilizzare questi comandi:
cd <your Magento install dir>
find . -type f -exec chmod 644 {} \; // 644 permission for files
find . -type d -exec chmod 755 {} \; // 755 permission for directory
chown -R :<web server group> .
chmod u+x bin/magento
In alternativa puoi utilizzare l’utilità Magento Cleanup (https://example.com/magento/magento-cleanup.php) per impostare automaticamente le autorizzazioni corrette.
Aumento del limite di memoria PHP
Un altro problema frequente si presenta dopo l’installazione di nuovi temi o estensioni, quando Magento consuma più risorse. Se il limite di memoria PHP è troppo basso, può verificarsi un errore 500. Il limite consigliato è almeno 756M. Per aumentarlo, si può agire in due modi:
Modificare il file php.ini
memory_limit = 756M
Questo perché 756 è il valore minimo per impostare un volume di memoria maggiore.
Oppure aggiungere il seguente codice al file .htaccess:
<IfModule mod_php5.c> php_value memory_limit 756M </IfModule>
Problemi con il file .htaccess
Il file .htaccess è responsabile di molte configurazioni di Apache. Errori di sintassi o modifiche errate possono causare un errore 500. Se il problema è sorto dopo l’installazione di un’estensione o un tema, è utile rinominare temporaneamente il file .htaccess e verificare se il sito torna a funzionare. Inoltre, è possibile consultare i log di errore del server (tipicamente in /var/log/httpd o /var/log/apache2) per identificare eventuali configurazioni errate.
Moduli mancanti
Se durante l’installazione o il funzionamento mancano delle dipendenze, si può generare un errore 500. In questo caso, uno strumento utile è Magento Check, che consente di verificare quali moduli sono installati sul server e quali invece mancano. Una volta identificati, è possibile procedere con la loro installazione.
Incompatibilità con temi o plugin di terze parti
A volte, dopo aver installato un’estensione o un tema, può verificarsi un errore a causa di incompatibilità con la versione corrente di Magento. Questo è particolarmente frequente su hosting non configurati in modo ottimale, dove gli aggiornamenti possono causare time-out temporanei.
Se dopo un aggiornamento compare un errore 500, si consiglia di:
- Installare solo plugin e temi compatibili con la versione attuale di Magento.
- Installare le estensioni una alla volta, verificando la compatibilità di ciascuna.
- Eseguire sempre un backup completo prima di qualsiasi modifica.
Se l’errore è stato causato da un’ estensione, è possibile disattivarla temporaneamente con il comando:
php bin / magento mod: disabilita
Successivamente, è opportuno contattare il fornitore dell’estensione per segnalare il problema e ottenere supporto.
Conclusioni
L’errore 500 in Magento 2 è fastidioso ma non insormontabile. Può derivare da diverse fonti, dalla configurazione del server a estensioni incompatibili. La chiave è procedere con metodo, partendo dai controlli più semplici, come la ricarica della pagina o la pulizia della cache, fino ad arrivare ai comandi avanzati da shell e alla modifica dei file di configurazione.
Con un buon provider di hosting, backup frequenti e l’abitudine di installare le estensioni una per volta, è possibile ridurre drasticamente il rischio di imbattersi in questo tipo di errore e garantire un’esperienza fluida agli utenti del proprio E-Commerce Magento.
