У меня есть скрипт php для многократной загрузки файлов.
Я заметил, что когда загрузка занимает более (около) двух минут, я получаю следующую ошибку:
500 — внутренняя ошибка сервера. Существует проблема с ресурсом, который вы
ищите, и это не может быть отображено.
Некоторая информация:
Версия PHP: 5.4.23
Система: Windows NT SDADMIN32263436 6.1 сборка 7601 (Windows Server 2008
R2 Standard Edition с пакетом обновления 1) i586
Какие-нибудь советы?
Спасибо
По умолчанию PHP позволяет загружать файлы размером только пару мегабайт. Вы можете попробовать изменить следующие директивы в файле php.ini ….
memory_limit = 32M
upload_max_filesize = 24M
post_max_size = 32M
Очевидно, используйте значения, которые вам подходят.
Однако он не может быть связан с размером загрузки вообще. Так как PHP на стороне сервера, ошибка 500 невероятно универсальна. Вы можете попытаться просмотреть ваши лог-файлы PHP (вы можете сделать это на IIS через сервер 2008).
Это также может помочь вам включить некоторые ошибки в вашем приложении. Для разработки, один из способов сделать это состоит в том, чтобы поместить следующее в верхней части вашего PHP-скрипта
ini_set('display_startup_errors',1);
ini_set('display_errors',1);
error_reporting(-1);
Это будет означать, что PHP покажет все ошибки, с которыми он сталкивается в браузере. Это НЕ хорошая идея для этого в производстве, поскольку она может дать конфиденциальную информацию о вашем сервере и хостинге.
Я имею в виду этот вопрос. У этого пользователя, похоже, такая же проблема, как и у вас этот ответ ему было предложено внести некоторые изменения в конфигурационный файл:
«max_execution_time» целое число
Это устанавливает максимальное время в секундах, в течение которого скрипту разрешено запускаться, прежде чем он будет остановлен синтаксическим анализатором. Это помогает предотвратить связывание плохо написанных сценариев с сервером. Значение по умолчанию — 30. При запуске PHP из командной строки значение по умолчанию — 0.
Максимальное время выполнения не зависит от системных вызовов, потоковых операций и т. Д.set_time_limit ()«функция для более подробной информации.
[…]«max_input_time» целое число
Это устанавливает максимальное время в секундах, в течение которого скрипту разрешается анализировать входные данные, такие как POST, GET и загрузка файлов.
[…]Дополнительно вот некоторая информация о проверке / настройке CGI Timeout в IIS5 и 6.
Я также предлагаю вам проверить журналы ошибок PHP, чтобы получить больше информации о выполнении загрузки.
Наконец в этот вопрос а также этот вопрос они также говорят о конфигурации IIS, чтобы позволить PHP делать большие загрузки.