PHP-CGI ha iniziato a servire pagine vuote


8

Il mio PHP-CGI ha iniziato a pubblicare pagine vuote senza motivo apparente fino a quando non ho riavviato il processo.

Voglio sapere perché.

Sfortunatamente il file di configurazione "produzione" di PHP non ha default_log per impostazione predefinita. Anche il mio registro errori Nginx non mostrava errori relativi a PHP. Questo è probabilmente un caso senza speranza, ma lo sto chiedendo per ogni evenienza.

Ecco la mia configurazione

  • Nginx 0.8.2
  • PHP 5.2.6-3ubuntu4.1 con Suhosin-Patch 0.9.6.2 (cli) (costruito: 23 aprile 2009 14:37:14)
  • PHP APC 3.0.19-2
  • spawn-fcgi v1.6.2 (ipv6) - wrapper fastcgi di lighttpd

Qualche idea su cosa potrebbe aver causato l'errore?

Aggiornare

Penso di aver isolato il problema. Ho usato Monit per riavviare automaticamente PHP ogni volta che ha iniziato a cancellare. I miei log degli errori PHP sono vuoti.

Ma ho capito che se disabilitassi un plugin Wordpress chiamato WP-SuperCache, il mio PHP avrebbe smesso di essere ripristinato ogni ~ 10 ore. Finora il mio PHP è attivo da 3 giorni di fila. Qualcuno ha qualche suggerimento al riguardo?

Risposte:


2

Supercache genera versioni complete di pagine memorizzate nella cache, oltre a eseguire altre operazioni di memorizzazione nella cache interna, è possibile che si verifichino problemi di temporizzazione in situazioni di carico elevato. Controllerei la tua cartella cache per assicurarmi che non contenga file vuoti. In tal caso, probabilmente hai un problema di blocco dei file. Risolvere un problema del genere può essere complicato e probabilmente richiederà l'apertura di un ticket bug, poiché è probabilmente un problema con il codice stesso.


1

hai provato a interrompere effettivamente il servizio fcgi e riavviarlo invece di riavviarlo. ho avuto cose strane simili accadendo mentre riavviavo fcgi


1
Il problema non è venuto dal riavvio. È successo spontaneamente durante la notte quando ho ricevuto un sacco di visitatori da una discarica di link chiamata Reddit.
Sconosciuto il

1

Controlla lo stato della risposta delle tue richieste se si verificano di nuovo (ad es. Curl -i) e se lo stato non è 200, controlla le pagine di errore (in particolare quella / e per il numero di errore mostrato) e assicurati che non lo siano impostato per reindirizzare in un modo che potrebbe causare un ciclo infinito.

Se lo stato della risposta è 200, controlla se nella risposta è presente del testo diverso dalle intestazioni HTTP.


Suppongo che avrei dovuto farlo, ma ho già riavviato PHP in modo che le persone potessero visualizzare la pagina. Non ho visto alcun errore nel registro del mio server.
Sconosciuto il


1

Non una risposta, ma un suggerimento: sostituire spawn-fcgi con php-fpm è più personalizzabile.

PS. forse hai uno speciale reindirizzamento della pagina di errori 50x in nginx.conf

UPD: oggi ho riscontrato un problema simile quando nginx + php ha iniziato a pubblicare pagine vuote. La mia ricerca ha dimostrato che ha inviato una pagina vuota qualunque php abbia generato un'eccezione. Può essere una specie di direttiva php.ini da pubblicare in bianco invece di un errore. Dovrei esaminare i registri e ecc ... pulire.

UPD2: Guarda il tuo php.ini ci sono 2 parametri che devi cambiare per vedere gli errori php:

error_reporting = E_ALL & ~E_NOTICE
display_errors = On

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.