Apache обслуживает пустую страницу - PullRequest
1 голос
/ 21 ноября 2008

Я создал один пример PHP-скрипта для загрузки листов Excel очень больших размеров. Также процесс, происходящий с каждой записью, приведенной в таблицах Excel, немного сложен. Чтобы разрешить большие размеры, я добавил необходимые значения ini PHP в конфигурационном файле Apache, чтобы переопределить фактические значения ini PHP.

Проблема в том, что, как только я загружаю большие файлы, это занимает больше времени, скажем, 2 минуты или около того, после чего я вижу пустую страницу вместо страницы результатов. Когда я следил за журналами Apache, я не видел таких строк, связанных с этой проблемой.

Просто хотел знать, есть ли случаи / возможности, когда Apache может обслуживать пустую страницу?

Но когда я собрал журналы уровня приложений, стало ясно, что скрипт отлично справляется со своей задачей. Я подозреваю, что может случиться то, что, как только работа будет завершена, в то время как Apache собирается предоставить страницу результатов, что-то случилось бы, но я не уверен в этом.

Ответы [ 5 ]

2 голосов
/ 21 ноября 2008

Я предполагаю, что это не ошибка Apache, и ваш браузер просто прерывает соединение. Вы можете попробовать некоторые из этих техник и посмотреть, поможет ли это.

1 голос
/ 21 ноября 2008

Возможно ли, что случай "else" не обрабатывается должным образом? Вы можете предположить, что файл был успешно загружен, но это не обязательно означает, что это произошло. Вы только увеличили «upload_max_filesize» или также «post_max_size» (общий итог всех ваших форм: ввод текста + файлы)?

Попробуйте добавить следующее в начало вашего скрипта, чтобы увидеть любые ошибки или предупреждения, которые может отображать PHP.

error_reporting(E_ALL);
0 голосов
/ 21 ноября 2008

Звучит как проблема с памятью, попробуйте увеличить memory_limit или оптимизировать использование памяти

Ошибки выделения памяти / ошибки segfaults приводят к пустым страницам и отсутствию информации журнала.

0 голосов
/ 21 ноября 2008

Если для обработки запроса / загрузки потребуется некоторое время, вы можете рассмотреть возможность создания очереди, в которой пользователь знает, что файл был успешно загружен, и должен просто подождать (возможно, может проверить статус на странице); и у вас есть процесс cronjob / background для преобразования файлов и их обновления. Таким образом, это совсем не тратит время пользователей.

0 голосов
/ 21 ноября 2008

Вы можете сделать две вещи, чтобы избежать этой проблемы

  1. Попросите пользователя преобразовать файл Excel в CSV, если это возможно в вашей ситуации. поскольку CSV намного легче, чем лист Excel.
  2. попробуйте использовать заголовок ("newpage.php") в скрипте, чтобы перенаправить пользователя на новую страницу
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...