2014-10-29 4 views
0

Я пытаюсь получить скрипт PHP под локальным Linux Apache, который не запущен Apache. Я использую PHP 5.5.9-1ubuntu4.4, Apache/2.4.7 (Ubuntu), Ubuntu 14.04 LTS 64-bit. То, что я сделал до сих пор:Время выполнения PHP - предотвращение остановки Apache скрипта

В моем PHP скрипт:

ignore_user_abort(true); 
set_time_limit(0); 
... 
foreach(...) { 
    ... 
    // inside loop 
    usleep(1000); 
    ... 
} 

Во всех php.ini:

max_execution_time=3600; 

Ничего из вышеперечисленного помогло. Сценарий останавливается после ~ 30 секунд. Я из идей. Возможно ли, что мой скрипт закрыт, потому что в нем заканчивается память? Лучший способ проверить это?

РЕДАКТИРОВАТЬ:

путем добавления "ini_set ('display_errors', 1);" Я получил ошибку Allowed memory size of 134217728 bytes exhausted. Это касается памяти, спасибо за подсказку, как это проверить.

РЕШЕНИЕ:

Основная проблема оказалась использование «Еогеасп» петли. После переключения всех циклов foreach на циклы «for» использование памяти стало более стабильным.

+0

ли вы запустите скрипт из браузера или из CLI? – Eternal1

+0

Можете ли вы дать нам сообщение об ошибке, которое показано? Если вы его не получили, добавьте 'error_reporting (E_ALL); ini_set ('display_errors', 1);' вверху страницы – rjdown

+0

@TwiStar: браузер - не был уверен, насколько хорошо он будет работать из CLI, так как это целое Framework (CodeIgniter). –

ответ

0

Чтобы увидеть, что вызывает сценарий, чтобы остановить, добавьте следующую строку в верхней части страницы:

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', 1); 
?> 
1

ini_set ("max_execution_time", 0);
Только в http, если вы используете https, вы должны изменить свой php.ini
Не забудьте перезагрузить веб-сервер.

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