Diagnosticare e correggere un errore 500 su un VPS con ISPConfig

Procédure

Che cos'è una pagina bianca o un errore 500?

L'errore 500 è un codice di stato della pagina che sta per Internal Server Error. Significa che si è verificato un errore nel server web. Questo errore può provenire dal server web Apache2, dall'interprete PHP, che ha passato l'errore al server web, o dal database MySQL, che ha passato l'errore a PHP e a sua volta lo ha passato al server web. L'aspetto è questo:

Diagnosticare e correggere un errore 500 su un VPS con ISPConfig

Per quanto riguarda altri browser, è possibile che venga visualizzata una pagina vuota senza contenuto:

Diagnosticare e correggere un errore 500 su un VPS con ISPConfig

Per i siti Prestashop, si vedrà una pagina di errore generata da Prestashop:

Diagnosticare e correggere un errore 500 su un VPS con ISPConfig

Per diagnosticare il problema, sarà più pratico visualizzare gli errori direttamente sul vostro sito web (anche se sono visibili nel file error.log nella cartella log accessibile tramite il vostro account FTP.

Visualizzazione degli errori PHP

Per visualizzare gli errori PHP, è necessario modificare il file php.ini del sito web interessato. In ISPConfig, cliccare su Siti e selezionare il sito web in questione:

Diagnosticare e correggere un errore 500 su un VPS con ISPConfig

Fare quindi clic sulla scheda "Opzioni" e aggiungere la seguente riga al campo "Impostazioni php.ini personalizzate":

display_errors = On

Diagnosticare e correggere un errore 500 su un VPS con ISPConfig

È inoltre consigliabile aggiungere la seguente riga per garantire che gli errori vengano segnalati e visualizzati sullo schermo (nel caso in cui lo script lo disabiliti per impostazione predefinita):

error_reporting = E_ALL

Abilitare la modalità di debug sul sito web

Alcuni CMS e framework come WordPress, Prestashop, Symfony, Laravel, ecc. possono ignorare il fatto che display_errors sia impostato su On in PHP, poiché hanno i loro sistemi di gestione degli errori.

Abilitazione della modalità di debug su WordPress

Per abilitare la modalità di debug su un sito basato su WordPress, è necessario modificare il file wp-config.php impostando il valore di WP_DEBUG su true e WP_DEBUG_DISPLAY su true.

Se WP_DEBUG_DISPLAY non è presente in wp-config.php, è necessario aggiungerlo dopo WP_DEBUG:


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

Abilitare la modalità di debug su Prestashop

Per abilitare la modalità di debug su Prestashop, è necessario modificare il file config/defines.inc.php. In questo file, impostare _PS_MODE_DEV_ su true.

define('_PS_MODE_DEV_', true);

Attivare la modalità di debug su Joomla

Per attivare la modalità di debug su Joomla, è necessario modificare il file configuration.php. In questo file, impostare $debug a 1 e $error_reporting a massimo.


public $debug = '1'; public $error_reporting = 'maximum';

Abilitare la modalità di debug su Laravel

Per abilitare la modalità di debug su Laravel, è necessario modificare il file .env impostando APP_DEBUG su true:

APP_DEBUG=true

Successivamente, è necessario cancellare la cache del file di configurazione. Nella propria console, eseguire il seguente comando:

php artisan config:clear

Capire gli errori di PHP

Il secondo passo più importante è capire gli errori e trovare una soluzione.

Errore di parse - errore di sintassi

Gli errori "parse error" e "syntax error" sono causati da una cattiva scrittura del codice PHP: mancanza del punto e virgola alla fine, parentesi che non si chiudono, virgole invertite, ecc.

Alcune sintassi possono inoltre causare problemi solo su determinate versioni di PHP, poiché la sintassi di PHP si evolve tra diverse versioni. Per esempio, l'uso delle parentesi quadre per dichiarare un array funziona su PHP 7.2, mentre non è così su PHP 7.4.

È quindi opportuno verificare eregolare la versione di PHP in base alle specifiche del proprio sito web.

Errore irreversibile: chiamata a funzione non definita

Quando si verifica questo errore, la funzione che PHP sta cercando di chiamare non esiste. Questo problema si verifica quando i file sul sito web sono mancanti o incompleti.

Errore irreversibile: errore non risolto: chiamata a funzione non definita mysql_connect()

Questo messaggio di errore indica che la funzione mysql_connect() non esiste. Questa funzione non esiste più in PHP 7.0 e successivi. È necessario utilizzare una versione di PHP 5.x per far funzionare il sito web.

Errore irreversibile: impossibile ridichiarare

Quando si verifica questo errore, lo stesso nome di funzione è stato dichiarato più volte. Questo problema si verifica in particolare quando plugin, temi, moduli ecc. utilizzano lo stesso nome di funzione.

Errore irreversibile: esaurita la dimensione di memoria consentita

Significa che è stata superata la memoria RAM massima autorizzata. Questo problema si verifica quando si supera il limite di memoria specificato nel sito web.

I valori consigliati preinstallati sul vostro pacchetto VPS sono i seguenti:

  • VPS S: memory_limit=1024M (1 GB)
  • VPS M: limite di memoria=2048M (2 GB)
  • VPS L: limite di memoria=4096M (4 GB)
  • VPS XL: limite di memoria=6144M (6 GB)
  • VPS PRO S: limite di memoria=7168M (7 GB)
  • VPS PRO M: limite di memoria=8192M (8 GB)
  • VPS PRO L: limite di memoria=9216M (9 GB)
  • VPS PRO XL: limite di memoria=12288M (12 GB)

Tuttavia, se si desidera personalizzare il valore di memory_limit, è possibile farlo da ISPConfig.

Nella scheda "Opzioni " del vostro sito web ISPConfig, aggiungete la riga memory_limit alle direttive PHP.INI:

Diagnosticare e correggere un errore 500 su un VPS con ISPConfig

Ulteriori informazioni su questo argomento: Come modificare il file php.ini sul mio server VPS tramite ISPConfig?

Errore irreversibile: Tempo massimo di esecuzione superato

Questo messaggio di errore è legato al fatto che il vostro script PHP sta impiegando più tempo per produrre un risultato di quanto consentito dai vostri parametri php.ini.

Per superare questo problema, è possibile aumentare il tempo massimo di esecuzione. Sempre nella scheda "Opzioni" del vostro sito web ISPConfig, aggiungete la seguente riga alle direttive PHP.INI:

max_execution_time = 1800

Qui abbiamo impostato 1800 secondi, o 30 minuti.

Importante: Se il tempo di esecuzione di PHP è troppo lungo, Apache2 potrebbe non essere in grado di aspettare fino alla fine. Di conseguenza, Apache2 invierà un errore 503 al visitatore (un errore 522 o 524 se si utilizza CloudFlare). È quindi importante mantenere questo valore il più basso possibile. Vi consigliamo di impostarlo a 30 secondi(max_execution_time = 30), a meno che non abbiate intenzione di effettuare operazioni di importazione o esportazione di massa sui vostri siti.

SQLSTATE[28000] [1045] Accesso negato per l'utente

Indica che l'utente o la password MySQL utilizzati non sono corretti.

Diagnosticare e correggere un errore 500 su un VPS con ISPConfig
Esempio di pagina di errore "Accesso negato" su Prestashop

Se si utilizza WordPress, il messaggio di errore potrebbe essere diverso:

Errore nello stabilire una connessione al database

Per verificare se la combinazione utente/password MySQL è funzionale, vi suggerisco di accedere a phpMyAdmin e di utilizzarla.

Diagnosticare e correggere un errore 500 su un VPS con ISPConfig

Se anche phpMyAdmin visualizza un errore come questo, allora l'utente o la password MySQL non sono corretti. È quindi possibile reimpostarla su ISPConfig.

Impossibile stabilire il collegamento al database:SQLSTATE[HY000] [2002] No such file or directory

Diagnosticare e correggere un errore 500 su un VPS con ISPConfig

Questo messaggio di errore è legato al fatto che il vostro sito web sta cercando di connettersi al server MySQL utilizzando un socket Unix invece di una connessione TCP.

Tuttavia, il socket Unix che sta cercando di utilizzare non è accessibile al suo livello (a causa della restrizione openbase_dir, per esempio).

Per risolvere questo problema, è necessario forzare il sito web a utilizzare la connessione TCP sostituendo "localhost " con "127.0.0.1 " nel parametro del server MySQL del sito web.

Per Prestashop 1.6, è necessario modificare il file config/settings.inc.php:

Diagnosticare e correggere un errore 500 su un VPS con ISPConfig

Per Prestashop 1.7, è necessario modificare il file app/config/parameters.php:

[...] 'database_host' => '127.0.0.1', [...]

Per un sito WordPress, è necessario modificare il file wp-config.php:

[...] define('DB_HOST', '127.0.0.1'); [...]

Per un sito Joomla, è necessario modificare il file configuration.php:

[...] public $host = '127.0.0.1'; [...]

Procedura video per WordPress


Vota questo articolo :

Questo articolo vi è stato utile ?

Article utile

Article non utileNo

Vous souhaitez nous laisser un commentaire concernant cet article ?

Si cela concerne une erreur dans la documentation ou un manque d'informations, n'hésitez pas à nous en faire part depuis le formulaire.

Pour toute question non liée à cette documentation ou problème technique sur l'un de vos services, contactez le support commercial ou le support technique

MerciMerci ! N'hésitez pas à poser des questions sur nos documentations si vous souhaitez plus d'informations et nous aider à les améliorer.


Vous avez noté 0 étoile(s)

Articoli simili

2mn lettura

Come si crea un account FTP in ISPConfig?

0mn lettura

Connessione SFTP

1mn lettura

Come faccio ad attivare l'SSL sul mio sito con ISPConfig 3?

0mn lettura

Come si cambia la password FTP da IspConfig?


Fate una domanda al team LWS e alla sua comunità