165 / 89 / 38
Регистрация: 29.06.2015
Сообщений: 1,098
|
||||||
1 | ||||||
Ошибка 500 и время выполнения скрипта20.07.2016, 09:58. Показов 3012. Ответов 3
Метки нет (Все метки)
У меня есть скрипт, который должен выполняться долгое время. Код в скрипте однотипный, рабочий, проверенный.
Работаю с PHPExcel. Из бд, путем перебора создаю Excel файл. На малых файлах всё отлично, но вот на больших - через 15 минут - ошибка 500 в браузере. Лог апача var/log/apache2 пустой Часть кода
1) Почему возникает ошибка 500? 2) Почему скрипт выполняется 15 минут (900 сек), когда я задал 30 минут (1800 сек)?
0
|
20.07.2016, 09:58 | |
Ответы с готовыми решениями:
3
Время выполнения скрипта Время выполнения скрипта Время выполнения скрипта Получить результат выполнения скрипта perl во время выполнения скрипта bash |
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
|
|
20.07.2016, 10:19 | 2 |
Возможно скрипт корректно отрабатывает, но браузер на определённом этапе перестаёт ожидать ответ от сервера.
Проверьте, точно ли он не отрабатывает, или отрабатывает несмотря на ошибку в браузере. Где-то в настройках апача есть настройка, отвечающая за это(макс время ответа от сервера). Не помню, как называется.
1
|
259 / 193 / 50
Регистрация: 15.07.2016
Сообщений: 649
|
|
20.07.2016, 10:52 | 3 |
Добавьте строку
Код
ignore_user_abort(TRUE); 500 — любая внутренняя ошибка. +1 за настройки апача. И ещё одно, задать max_execution_time можно, но не факт, что оно подцепится. Посмотрите, что ini_get('max_execution_time') возвращает именно 1800. Правда, по достижении максимального времени должна быть ошибка от пыха.
2
|
165 / 89 / 38
Регистрация: 29.06.2015
Сообщений: 1,098
|
|
20.07.2016, 11:19 [ТС] | 4 |
Нет. Скрипт (использующий PHPexcel) не создает excel файл, а должен.
Не создает при больших объемах данных - предполагается 180000 строк в выходном файле формата excel 2007. А при 90000 создает. Тут дело во времени. Прочитал - что директива действует только на мой скрипт, но не на сторонние, включенные в мой - как PHPexcel. ( include) Возможно он и вызывает эту ошибку т.к. долго выполняется - что очевидно. Увеличил время выполнения моего скрипта до 80 минут. Создал в папке PHPExcel (корень компонента) файл .htaccess с содержимым Код
<IfModule mod_php5.c> php_value max_execution_time 3600 php_value memory_limit 700M </IfModule> Далее ему останется 75 минут на вызов (include) PHPExcel . А PHPExcel дано на всё про всё 60 минут. Что будет - неизвестно, но вроде мыслю верно. К радикальному методу - дать всему во всех папках время выполнения 60 минут - пока не прибегал. Добавлено через 18 минут С моими последними изменениями - вроде заработало. Время работы - 18 минут. Похоже, что это верно Т.к. в php ini указано 30 секунд и видимо это и действовало, до того, как я указал всё в файле .htaccess +1 хорошие советы, возьму на вооружение если вдруг опять что-то не заработает как надо
1
|
20.07.2016, 11:19 | |
20.07.2016, 11:19 | |
Помогаю со студенческими работами здесь
4
Ошибка во время выполнения скрипта разделения Задержка во время выполнения скрипта Перерисовка страницы во время выполнения скрипта Индикатор, крутящийся во время выполнения скрипта Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |