imagecreatefromjpeg() перестает работать после обновления сервера

У нас есть сервер, расположенный в офисе компании, работающем под управлением Solaris/Apache/PHP. Недавно они сделали обновление для Solaris, Apache и PHP (исправления для системы безопасности и т. Д.). К сожалению, это привело к поломке части нашего программного обеспечения по обработке изображений. imagecreatefromjpeg() теперь генерирует следующую ошибку:

Предупреждение: imagecreatefromjpeg() [function.imagecreatefromjpeg]: '/path/to/file/filename.jpg' не является допустимым файлом JPEG в /path/to/file/Image.class.php в строке XX

Код PHP не был изменен во время обновления сервера, и он был полностью функциональным до обновления программного обеспечения. Я проверил файлы, передаваемые в imagecreatefromjpeg (), и они действительно действительны (они успешно открываются как в программном обеспечении для редактирования изображений, так и в моем браузере). Я проверил права доступа к каталогу, из которого открываются файлы, и у них есть разрешение на чтение. Библиотека GD включена.

Я не уверен, что еще я могу проверить. Исходя из сценария выше, я предполагаю, что что-то изменилось в программном обеспечении, но я не знаю, что это могло бы быть. PHP был версии 5.2.5 и сейчас 5.2.13.

Я ценю любые рекомендации относительно того, что может быть причиной этой проблемы.

2 ответа

Решение

Очевидно, что более новые библиотеки jpeg не были совместимы с чем-то другим в системе. Как только мы вернулись к старым библиотекам jpeg, он снова начал работать.

Идеи..

  • php.ini был заменен, изменен или не читается. Сравните резервную копию с текущей в системе.
  • Новый пакет скомпилирован с различными опциями. Сравните новое и старое, запустив php -i

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

Есть ли другие ошибки?

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