%20%D0%BF%D0%B5%D1%80%D0%B5%D1%81%D1%82%D0%B0%D0%B5%D1%82%20%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D1%82%D1%8C%20%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%20%D0%BE%D0%B1%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F%20%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0.png)
У нас есть сервер, расположенный в офисе местной компании, на котором запущены 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.
Буду признателен за любые указания относительно возможной причины этой проблемы.
решение1
Идеи..
- php.ini был заменен, изменен или не читается. Сравните резервную копию с текущей в системе.
- Новый пакет скомпилирован с другими опциями. Сравните новый и старый, запустив
php -i
Я понимаю, что это кажется не связанным между собой, но проверка основных параметров, таких как разрешения и доступность ресурсов (памяти), также может потенциально помочь локализовать проблему.
Есть ли еще какие-либо ошибки?
решение2
Видимо, новые библиотеки jpeg не были совместимы с чем-то еще в системе. Как только мы переключились на старые библиотеки jpeg, все снова заработало.