PHP из памяти - разрушает Apache?

Я выполняю версию 5.3.0 PHP и Apache: 2.2.11

Когда я выполняю Сценарии PHP, которые используют большую память (я думаю) - большие циклы и т.д., Мой веб-сервер Apache сообщает о катастрофическом отказе?!

[Sat Jan 02 00:51:30 2010] [notice] Parent: child process exited with status 255 -- Restarting.

Я должен увеличить память где-нибудь? Мне в настоящее время устанавливали память на

memory_limit = 512M 

PHP не жаловался на это так, я думаю что-то еще?

Спасибо все

Обновление

Эта ошибка была зарегистрирована моей машиной окон в конечном счете средство просмотра:

Дающее сбой приложение httpd.exe, версия 2.2.11.0, метка времени 0x493f5d44, дающий сбой модуль php5ts.dll, версия 5.3.0.0, метка времени 0x4a4922e7, код исключения 0xc0000005, отказ сместил 0x00083655, обрабатывает идентификатор 0x1588, время начала приложения 0x01ca8b46e4925f90.

Обновление 2

Рассматриваемый сценарий. Я удалил URL.

';

include_once('simple_html_dom.php');

$FileHandle = fopen('tech-statistics3.csv', 'a+') or die("can't open file");

for($i =1; $i < 101; $i ++){
 // Create DOM from URL
 $html = file_get_html("http://www.x.com/$i");

 foreach($html->find('div[class=excerpt]') as $article) {

  $item0 = $article->children(1)->children(1)->children[0]->plaintext;

  $item1 = $article->children(1)->children(1)->children[0]->plaintext;

  $item2 = $article->children(1)->children(0)->children(0)->children(0)->plaintext;

  //$item3 = $article->children(1)->children(0)->children(0)->children[1]->children(0)->next_sibling();

  $stringa = trim($item0).",".trim($item1).",".trim($item2)."\r\n";

  fwrite($FileHandle, $stringa);

  echo $stringa.'
'; echo '------------>'.$i; } } fclose($FileHandle); echo 'End
'; ?>

Обновление 3

Я использую Простой HTML PHP Синтаксический анализатор DOM, и я только что нашел это:

http://simplehtmldom.sourceforge.net/manual_faq.htm#memory_leak

Я думаю, что должен очищать память иначе, она откажет. Тестирование теперь.

Update4

Да, это была утечка памяти!:)

7
задан raven 5 January 2010 в 16:35
поделиться

3 ответа

Apache аварийно завершал работу из-за утечки памяти, которая была вызвана не закрытием ресурса, который использовался снова и снова в цикле, а также скриптом, использующим рекурсию.

Спасибо всем за помощь.

2
ответ дан 7 December 2019 в 07:45
поделиться

Я столкнулся с подобными проблемами при использовании PHP с Apache на Windows. Вместо того, чтобы сообщать какую-либо полезную информацию на экран, процесс просто умирает. Если это вообще возможно, я бы предложил запустить ваш код на linux-боксе с Apache & PHP. По моему опыту, эта комбинация, как правило, сообщает об этом как об ошибке памяти, в то время как на Windows, кажется, ничего не происходит вообще. Кстати, я видел это только при рекурсии

.
1
ответ дан 7 December 2019 в 07:45
поделиться

Вы не используете рекурсию? Я видел ошибку PHP и убивал потомок Apache без какого-либо полезного вывода журнала, когда происходит бесконечная рекурсия.

0
ответ дан 7 December 2019 в 07:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: