500 - Internal server error

500 - Internal server error

di Marco Brighi -
Numero di risposte: 7

Buongiorno a tutti, nel passaggio della versione php dalla 7.1.19 alla 7.2.7 non riesco più a visualizzare gli errori.

Lavoro in ambiente Windows, Moodle 3.9.2+ e MySql8

Ad esempio nella pagina personale dove sono presenti i corsi a cui l'utente è iscritto in ambiente di test appare con php7.1.19 una lista di errori perchè non sono presenti le immagini associate ai corsi. Appena cambio versione di php alla 7.2.7 invece appare la pagina "500 - Internal server error"....I

Ho confrontato i 2 file php.ini ed in pratica non ci sono differenze, quanto meno relativamente la gestione errori.

track_errors = On

error_reporting = E_ALL | E_STRICT

display_errors = On

log_errors = On

Qualche idea?

grazie in anticipo

Marco

Media dei voti:  -
In riposta a Marco Brighi

Ri: 500 - Internal server error

di Sergio Rabellino -
Immagine Particularly helpful Moodlers Immagine Plugin developers

Beh, io metterei display_errors a off, oppure eventuali errori/notice/warning verrebbero stampati direttamente nelle pagine web con sicuri problemi sia di funzionamento di moodle, sia di information disclosure circa la configurazione interna del server (es. path).

Gli errori conviene leggerli nei log del webserver...

In riposta a Sergio Rabellino

Ri: 500 - Internal server error

di Marco Brighi -
grazie Sergio, ma si tratta di un ambiente di test visibile solo dalla nostra rete per cui gli errori non è un problema mostrarli
oltre tutto non riesco a trovarli neppure nei log del webserver, quanto meno non nel file di errori indicato nel php.ini....dove posso vederli?
grazie
In riposta a Marco Brighi

Ri: 500 - Internal server error

di Sergio Rabellino -
Immagine Particularly helpful Moodlers Immagine Plugin developers

Non mi sono spiegato bene, con display_errors, tu inserisci nel codice HTML/javascript/css gli errori (e anche eventualmente warning e notice) dipende da come è configurato. Questo conduce a sicuri problemi, quantomeno con javascript e css che possono "rompersi" per via dei caratteri del messaggio di errore di php.

Quindi a prescindere che sia in ambiente di test, meglio disabilitare sia da php.ini che da moodle nella voce debugging.

A quale livello di debugging sei ? Meglio Developer in caso di problemi.

Su dove cercare gli errori, dipende da tanti fattori, in primis, da quale web server stai usando e quale metodo di esecuzione di php hai attivato.

In riposta a Sergio Rabellino

Ri: 500 - Internal server error

di Marco Brighi -

come livello di debug sono a Developer, il server è un windows server 2016 con IIS 10 e PHP che gira come CGI. Ho cercato l'errore sia nei log del server (event viewer) che nel file di testo generato da php nella cartella indicata dal php.ini (es: C:\Windows\Temp\PHP72x64_errors.log) senza successo


grazie

Marco


In riposta a Marco Brighi

Ri: 500 - Internal server error

di Sergio Rabellino -
Immagine Particularly helpful Moodlers Immagine Plugin developers

La butto lì: potresti avere un plugin non compatibile con php 7.2 per un syntax error, cioè un costrutto che in php 7.2 è un costrutto illegale. Verifica se riesci ad abilitare display_startup_errors tanto non sei in produzione: magari esce fuori qualcosa.

In riposta a Sergio Rabellino

Ri: 500 - Internal server error

di Marco Brighi -
ce l'ho fatta. Allora: il problema nasceva dall'impostazione log_errors = On del php.ini, commentando quella riga il messaggio veniva mostrato. Visto che il file dove loggare era presente non capivo il problema ed ho provato a rinominarlo...e il problema si è risolto. Confrontanto il vecchio file di log con il nuovo l'unica differenza che ho trovato sono le permission degli utenti di IIS....per qualche strano motivo diverse. grazie dell'aiuto.
Marco