2015-06-18 6 views
8

Dopo molte ricerche, tentando, di fissaggio, di attesa e di piangere e prima che mi arrendo, voglio prendere l'ultima occasione qui per questo bug ...processo figlio di Apache è uscito con lo stato 255

Stiamo correndo su Microsoft Windows Server 2012, Apache/2.4.6 (Win64) OpenSSL/1.0.1e PHP/5.5.1.

Periodicamente, almeno 5-10 volte entro 24 ore, arresto anomalo di Apache e riavvio. Per lo più due volte. Perché PHP si è bloccato.

L'intera applicazione è PHP, in modo da configurare PHP come FastCGI non risolverà il problema: Apache non vada in crash, ma PHP.

qui qualche informazione in più:

di Windows Event Log:

Faulting application name: httpd.exe, version: 2.4.6.0, time stamp: 0x51e441d6 
Faulting module name: php5ts.dll, version: 5.5.1.0, time stamp: 0x51e849b0 
Exception code: 0xc0000005 
Fault offset: 0x00000000000572d8 
Faulting process id: 0xac0 
Faulting application start time: 0x01d0a96634f3d129 
Faulting application path: C:\Apache24\bin\httpd.exe 
Faulting module path: C:\PHP\php5ts.dll 
Report Id: 06409cc4-1568-11e5-93ff-d43d7edb03a9 
Faulting package full name: 
Faulting package-relative application ID: 

Apache Log:

[Thu Jun 18 06:13:44.284810 2015] [mpm_winnt:notice] [pid 2736:tid 392] AH00428: Parent: child process 2752 exited with status 255 -- Restarting. 
[Thu Jun 18 06:13:44.487977 2015] [mpm_winnt:notice] [pid 2736:tid 392] AH00455: Apache/2.4.6 (Win64) OpenSSL/1.0.1e PHP/5.5.1 configured -- resuming normal operations 
[Thu Jun 18 06:13:44.487977 2015] [mpm_winnt:notice] [pid 2736:tid 392] AH00456: Apache Lounge VC11 Server built: Jul 15 2013 20:45:22 
[Thu Jun 18 06:13:44.487977 2015] [core:notice] [pid 2736:tid 392] AH00094: Command line: 'c:\\Apache24\\bin\\httpd.exe -d C:/Apache24' 
[Thu Jun 18 06:13:44.487977 2015] [mpm_winnt:notice] [pid 2736:tid 392] AH00418: Parent: Created child process 4408 
  • In PHP log niente di speciale e nessun modello prima di incidente .
  • Anche le connessioni simultanee non influiscono sul problema, ma succede anche quando abbiamo pochissimi utenti.
  • MySQL? Ma nessun errore che indica questo o che sto guardando nel posto sbagliato?
  • Windows? Come capire?
  • Configurazione PHP/Apache? Bene, cos'altro ... e perché?
  • Aliens ...

La questione principale è il motivo per il PHP si blocca? ..

Grazie in anticipo!

+0

Sto avendo lo stesso problema pure Tuttavia c'è alcun problema in esecuzione di PHP 5.6 Sono sospettare.. il modulo apache su PHP è difettoso (poiché Apache 2.4 è più recente, con molte modifiche potrebbe causare cose come questa) –

risposta

1

C'è un bug noto: ogni volta che un file che si include ha una dimensione di 4096 o superiore, il modulo php e l'apache si fermeranno. Quello non è uno scherzo!

+0

Esempio: si dispone di un file .php con file di dimensione 53248. Quando si include o si utilizza questo file, il blocco apache si interrompe. ! 53248/4096 = 13 - è un multiplo di 4096. Questo era un bug intorno a PHP 5.3.10 e forse all'orecchio Lier e dopo. 5.4 e successivi non hanno più questo bug (per quanto ne so). – user5234989

+2

stiamo usando PHP 5.5, quindi non sarà così? – alquist42

0

Penso che ci siano diverse cause per questo child process XYZ exited with status 255 sulla rete. Molti di questi sono legati al PHP.

Ho appena avuto lo stesso arresto su Windows, Apache 2.4.18 con PHP 5.6.16, quando si passa il messaggio di posta di un utente tramite il parser Markdown da http://parsedown.org. Risolto il problema ricorrendo al codice sorgente SQL nel messaggio che aveva dei backtick per le citazioni degli identificatori, con i tre backtick che Markdown si aspetta per il codice sorgente. Non ti sei immerso più a fondo in Parsedown.php per scoprire dove è successo esattamente, ma deve essere qualcosa con questi apici inversi.

2

Nel mio caso, niente di più nei registri. Solo:

Parent: child process XXXX exited with status 255 -- Restarting 

problema è stato in codice di reindirizzamento:

<?php 
    header('HTTP/1.1 304 Not Modified'); 
    exit(); 
?> 

Questo codice interrompe servizio Apache e iniziare nuovi processi. Ma non tutto il tempo ... a volte funzionava bene ...a volte si blocca :(

codice corretto è:

<?php 
    header('HTTP/1.1 304 Not Modified'); 
    die(); 
?> 

Maggiori informazioni su: PHP: Utilizing exit(); or die(); after header("Location: ");