2010-08-03 1 views
6

время для другого мозгового дразня чего-то, я думаю, довольно редко.PHP-скрипт заканчивается раньше, никаких доказательств ошибки и тайм-аута не установлено 0

Есть ли жесткий предел в PHP? Или в Apache? Вчера вечером у меня был сценарий, который длился около 20 часов. Затем он просто остановился, средний скрипт на случайной строке без ошибок, которые я мог найти.

set_time_limit (0); был установлен в сценарии, но я начинаю задаваться вопросом, существует ли еще один предел где-то еще около 20 часов ...

любые идеи?

Большое спасибо заранее.

Редактировать: это работает как wget.

edit2: Я собираюсь посмотреть на проблему с памятью и вернуться к вам, спасибо за помощь до сих пор!

edit3: О, я должен указать, что этот скрипт собирает данные и хранит их в массиве, чем дольше он работает, тем больше он хранится, так что да, я немного ласково смотрю на «израсходованную всю память» "ответы здесь ...

РЕШЕНИЕ: Установка большего объема памяти для операции исправлена. Всем спасибо.

+0

Что вы пытаетесь сделать? – Sarfraz

+0

Запустили ли вы cli или apache (как mod/cgi)? – NikiC

+0

Без обид, но это личное :) Это сценарий, который должен прочитать некоторую информацию, через 20 часов он проходит через большую часть (около 85%), но ему нужно больше времени. И нет простого способа разделить информацию. – Dorjan

ответ

3

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

+0

Тот факт, что было запущено несколько сценариев, а остальные скрипты продолжались (они были более короткими в разных точках) показывают мне, что сервер не сбой, но вы можете быть прав в случае неудачи php через определенное время. – Dorjan

+2

Возможно, вам нужно запустить сценарий из командной строки вместо апача, а также возможно, что потребление памяти для этого скрипта будет высоким, вы можете увеличить это с помощью ini_set ('memory_limit', '128M'); –

+0

Спасибо, Christian, я посмотрю на текущую настройку сейчас – Dorjan

2

У меня был скрипт, который работал несколько месяцев без проблем. Мне просто пришлось убить процесс, чтобы прервать скрипт. поэтому нет ограничений, если у вас установлен set_time_limit (0); в вашем коде. посмотрели ли вы систему и отладочные журналы вашей операционной системы? что может дать дополнительные подсказки, почему сбой php или apache.

+0

Это полезно, потому что теперь я знаю, что PHP может работать так долго – Dorjan

4

Возможно, через некоторое время у PHP закончится память.

Рассмотрите возможность форматирования PHP-мусора на каждой итерации цикла, которая может выявить некоторые подсказки. http://php.net/manual/en/function.gc-collect-cycles.php

+0

Я тоже попробую посмотреть, если это так, спасибо! – Dorjan

0

Поскольку вы использовали wget, я предполагаю, что он работает под apache. возможно, это apache, который имеет ограничение на работающий скрипт, а не ваше приложение php.

вы можете проверить это, запустив приложение из командной строки версии

+0

Apache Timeout - это директива TimeOut в httpd.conf. Если значение не указано, то значение по умолчанию составляет 300 секунд. Http://httpd.apache.org/docs/2.0/mod/core.html#timeout –

+0

К сожалению, у меня нет времени, чтобы приложение запускало rom cli как пути кажутся разными для включений и т. п. (я не могу вспомнить, почему мне пришлось отойти от него сейчас, но я помню, как я пытался сначала попробовать путь кви и в конечном итоге с wget, хотя мне тоже этого не хотелось) – Dorjan

2

как сказал stillstanding, проверьте журналы Апача, /var/log/error.log, или в окнах «событие».

+0

imho в вашем скрипте должна быть ошибка, возможно, вы нарушили предел памяти php? – a1337q

+0

предел памяти php может быть более вероятным подозреваемым! Я не думал об этом, спасибо. – Dorjan

+0

Проверка журналов теперь также – Dorjan

-1

проверка php.ini файл найти max_execution_time внести изменения в этой части она длится несколько секунд, как вход.

, но будьте осторожны при редактировании php.ini

+0

ограничение времени указано как отключенное в исходном сообщении. – Dorjan

Смежные вопросы