После долгих поисков, попыток, исправления, ожидания и плача, и, прежде чем я сдаюсь, я хочу воспользоваться последним шансом для этой ошибки …
Мы работаем на Microsoft Windows Server 2012, Apache / 2.4.6 (Win64) OpenSSL / 1.0.1e PHP / 5.5.1 .
Периодически, по крайней мере, 5-10 раз в течение 24 часов, сбой и перезапуск Apache. В основном дважды. Потому что PHP разбился.
Все приложение является PHP, поэтому настройка php как FastCGI не решит проблему: Apache не будет разбиваться, но PHP будет.
здесь дополнительная информация:
Журнал событий Windows:
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:
[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
Главный вопрос: почему PHP рушится? ..
Заранее спасибо!
В моем случае ничего больше в журналах. Только:
Parent: child process XXXX exited with status 255 -- Restarting
Проблема была в коде перенаправления:
<?php header('HTTP/1.1 304 Not Modified'); exit(); ?>
Этот код останавливает службу apache и запускает новые процессы. Но не все время … иногда работало нормально … иногда срывается 🙁
Правильный код:
<?php header('HTTP/1.1 304 Not Modified'); die(); ?>
Дополнительная информация о: PHP: использование exit (); или умереть(); после заголовка («Местоположение:»);
Существует известная ошибка: всякий раз, когда файл, который вы включаете, имеет размер файла 4096 или более, модуль php и apache перестанут работать. Это не шутка!
Я думаю, что для этого child process XYZ exited with status 255
существует несколько разных причин: child process XYZ exited with status 255
в сети. Большинство из них связаны с PHP.
Я просто столкнулся с тем же сбоем в Windows, Apache 2.4.18 с PHP 5.6.16, когда передавал сообщение пользователя с помощью анализатора Markdown от http://parsedown.org . Исправлено его окружением исходного кода SQL в сообщении, которое имело обратные ссылки для котировок идентификаторов, причем три обратных элемента Markdown рассчитывали на исходный код. Не погрузился глубже в Parsedown.php, чтобы узнать, где именно это произошло, но это должно быть что-то с этими обратными шагами.