У меня есть PHP-скрипт, который постоянно останавливается в одном и том же месте, и мой браузер сообщает:
Соединение с сервером было сброшено во время загрузки страницы.
Я тестировал это на Firefox и IE, то же самое происходит. Итак, я предполагаю, что это проблема с конфигурацией Apache / PHP. Вот несколько вещей, которые я установил.
php.ini
max_execution_time = 300000 max_input_time = 300000 memory_limit = 256M Apache (httpd.conf)
 Timeout 300000 KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 0 
Правильны ли вы выше? Что может быть причиной этого и что я могу установить?
Я запускаю PHP (5.2.12.12) в качестве модуля Apache (2.2) на Windows Server 2003.
Вероятно, это проблема Apache или PHP, так как все браузеры делают то же самое. Я думаю, что сценарий работает ровно 10 минут (600 секунд).
У меня была аналогичная проблема – получается, что apache2 был segfault. Причиной segfault был php5-xdebug для 5.3.2-1ubuntu4.14 на Ubuntu 10.04 LTS. Исправлена проблема с xdebug.
  У меня также была эта проблема сегодня, она оказалась неудачной.  в PHP-коде (вне любого коммутатора или любого цикла), в функции с try...catch...finally block. 
Похоже, что сбой в PHP:
 <?php function a () { break; try { } catch (Exception $e) { } finally { } } 
Это было с версией PHP 5.5.5.
Различия между 2 конфигурациями PHP действительно были основной причиной проблемы на моем конце. Мое приложение основано на библиотеке NuSOAP.
В конфигурации 1 с PHP 5.2 он работал нормально, поскольку расширение SOAP PHP было отключено.
В конфигурации 2 с PHP 5.3 он выдавал ошибки «Сброс соединения», поскольку расширение SOAP PHP было включено.
Переключение расширения позволило разрешить моему приложению работать на PHP 5.3 без необходимости переписывать все.
У меня была проблема, когда в некоторых случаях PHP 5.4 + eAccelerator = сброс соединения. В файлах журналов не было ошибок, и это происходило только на определенных URL-адресах, что затрудняло диагностику. Оказывается, это произошло только для определенного PHP-кода / некоторых файлов PHP и вызвано некоторыми несовместимостями с определенным PHP-кодом и eAccelerator. Самое простое решение – отключить eAccelerator для этого конкретного сайта, добавив следующее в файл .htaccess
php_flag eaccelerator.enable 0
php_flag eaccelerator.optimizer 0
(или эквивалентные строки в php.ini):
eaccelerator.enable = "0"
eaccelerator.optimizer = "0"
  Я знаю, это старая должность, но поскольку я не мог найти решение проблемы, и я исправил ее, я поделюсь своим опытом.  Основной причиной моей проблемы был вызов функции file_exists () . 
  Файл действительно существовал, но по какой-то причине добавочная косая черта в местоположении файла («//»), которая обычно работает в обычном браузере, кажется, не работает на PHP.  Возможно, ваша проблема связана с чем-то подобным.  Надеюсь, это поможет кому-то! 
Я попробую установить все параметры отчетов об ошибках
-b при ошибке прерывания
-V уровень серьезности
-m error_level
и отправка всего результата клиенту
 <?php echo "<div>starting sql batch</div>\n<pre>"; flush(); passthru('sqlcmd -b -m -1 -V 11 -l 3 -E -S TYHSY-01 -d newtest201 -i "E:\PHP_N\M_Create_Log_SP.sql"'); echo '</pre>done.'; flush(); 
Мой PHP был без сбоев без какой-либо дополнительной информации относительно причины этого. Оказалось, что это два класса, вызывающие магический метод __call () друг друга, потому что у обоих из них не был вызванный метод. PHP просто зацикливается до тех пор, пока он не выйдет из памяти. Но он не сообщил о обычном «Разрешенном объеме памяти * байта исчерпал» сообщение, возможно, потому что методы являются «волшебными».