В моей компании мне приходится программировать платы, работающие на встроенном Linux. У нас есть тестовая последовательность, которая открывает сервер HTTP Apache на порту 80. На нем размещены 7 файлов, которые загружает плата.
Плата использует wget для загрузки файлов, размещенных на сервере, соединение установлено, но ответа от сервера нет. Таким образом, wget продолжает попытки загрузки до истечения времени ожидания. Вот изображение, показывающее проблему, тестовая последовательность использует последовательную связь для мониторинга платы:
Экран последовательной связи
Первый файл, который плата пытается загрузить, имеет размер 53 МБ.
Я попытался посмотреть, смогу ли я загрузить файлы вручную в браузере: я могу загрузить их все, кроме файла размером 53 МБ. Я получаю сообщение об ошибке «ERR_EMPTY_RESPONSE» в Google Chrome.
Я попытался перезагрузить компьютер, и на этот раз плате удалось загрузить все файлы с сервера, включая файл размером 53 МБ. И я также мог загрузить файлы вручную в Google Chrome.
Но иногда проблема возвращается. Я попытался проверить файл журнала доступа Apache, и все запросы GET имеют HTTP-код 200, что означает «ОК», включая запросы, когда я не могу загрузить файл размером 53 МБ.
Изменить: кажется, что проблема связана с ограничением размера файла. Я уменьшил файл размером 53 МБ до 49 МБ, удалив несколько строк, и мне удалось его загрузить. Затем я отменил свои изменения и не смог загрузить файл.
Много постов про 2 варианта в php.ini: post_max_size и upload_max_filesize. В моем файле php.ini: post_max_size = 8M upload_max_filesize = 50M
Однако я думаю, что это связано только с запросами POST, но я отправляю только запросы GET.
Но тем не менее, я изменил эти параметры на 60 МБ и перезапустил сервер Apache, но не смог загрузить файл размером 53 МБ.
каенем