2013-07-31 1 views
0

У меня есть веб-приложение, которое позволяет пользователю загружать PDF-файл, и он отправит его нам по электронной почте через swiftmailer. С некоторыми pdf-файлами процесс выходит из строя.Вспышка Swiftmailer без ошибки php

Я могу проверить, что он сбой скрипта php, но не возвращает ошибки php. На сервере есть ошибка 500, но обычно, если есть ошибка 500, php имеет журнал ошибок.

Я также проверил, что он выходит из строя на $mailer->send($message); линии

Как ни странно, только некоторые PDFs аварии, и те же файлы PDF прекрасно работает на сервере разработки с одинаковым кодом.

Что может вызвать сбой php без сообщения об ошибке?

+0

Убедитесь, что [включить журналы PHP] (http://www.php.net/manual/en/errorfunc.configuration.php) на сервере. –

+0

PHP успешно регистрирует ошибки и предупреждения в течение нескольких месяцев. Это единственный процесс, который не регистрирует ошибку при ее сбое. Это не конфигурация php. Это также не часть загрузки, так как я подтвердил, что файлы загружаются должным образом. – starshine531

+0

Возможно, код swiftmailer отключает ведение журнала во время выполнения. –

ответ

0

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

0

FYI, я столкнулся с двумя вещами, которые могут привести к сбою PHP без сообщения об ошибке:

  1. Script ауты - тайм-аут может предотвратить сообщение об ошибке с возвращением; в моем конкретном случае сценарий ожидал ответа SMTP, когда произошел тайм-аут, что, возможно, было причиной того, что я не получил сообщение с таймаутом. Попробуйте изменить значение max_execution_time в php.ini до 300 (5 минут) и посмотреть, сможете ли вы получить фактическое сообщение об ошибке.
  2. Права доступа к папке - я столкнулся с ситуацией, когда недостаточные разрешения на доступ к папке привели к тому, что скрипт просто остановился, не предоставив ошибку.

В случае 2, я обернул пункт try/catch вокруг линии, которая была вызвавшей остановку, и я, наконец, получил исключение, чтобы показать, до объяснения о проблеме разрешений. Возможно, стоит попробовать в качестве общего ответа на бесшумные сбои.