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-кратной ошибкой на вашем сервере:

  • Скрипт рассчитал максимальное время выполнения: вы увидите это, потому что для ответа потребуется много времени, один из способов избежать этого - переопределить максимальное время выполнения в первой строке скрипта, если вы знаете, что он ' на самом деле потребуется больше, чем максимальное выполнение по умолчанию
  • Скрипт использовал всю доступную память: этот будет намного быстрее и, возможно, он будет вашим, его также можно переопределить, если ваш скрипт нуждается в этом
  • Бесконечный рекурсивный цикл: это будет довольно жестоким, и это последний сценарий, обычно это один из первых двух, поэтому, если ни одно из решений не работает, это вероятный сценарий

Удачи в отладке!

Другие вопросы по тегам