PHP скрипт 500 ошибка
У меня есть PHP-скрипт с простым MySQL SELECT
запрос, который выбирает более 1000 строк из базы данных...
Это дает 500 внутреннюю ошибку сервера много раз, когда у меня есть большое количество строк для извлечения..
Тот же скрипт отлично работает, когда я запускаю его из команды оболочки unix:
/usr/bin/php scriptname.php
Это сервер с apache + php fcgi.
Пожалуйста, помогите - спасибо!
4 ответа
Я думаю, что вы, вероятно, сбиваете тайм-аут Fcgi. Сколько времени занимает запуск сценария? Что делает Apache error_log
сказать? Вы пытались изменить директиву FcgidBusyTimeout в конфигурации Apache?
Возможно, ваш сценарий превышает лимит времени ожидания. Вы должны использовать функцию set_time_limit.
Как насчет изменения вашего сценария, просто возвращая часть строк (например, первые 100 строк), а затем предоставляя возможность получить следующие.
Не каждая проблема может быть решена с помощью некоторых параметров конфигурации.
Это может быть связано с несколькими проблемами, PHP имеет различные элементы управления, чтобы избежать сумасшествия скрипта (максимальное количество памяти и максимальное время выполнения).
3 наиболее распространенные проблемы, связанные с 50-кратной ошибкой на вашем сервере:
- Скрипт рассчитал максимальное время выполнения: вы увидите это, потому что для ответа потребуется много времени, один из способов избежать этого - переопределить максимальное время выполнения в первой строке скрипта, если вы знаете, что он ' на самом деле потребуется больше, чем максимальное выполнение по умолчанию
- Скрипт использовал всю доступную память: этот будет намного быстрее и, возможно, он будет вашим, его также можно переопределить, если ваш скрипт нуждается в этом
- Бесконечный рекурсивный цикл: это будет довольно жестоким, и это последний сценарий, обычно это один из первых двух, поэтому, если ни одно из решений не работает, это вероятный сценарий
Удачи в отладке!