%20%E5%81%9C%E6%AD%A2%E5%B7%A5%E4%BD%9C.png)
我們在當地公司的營業地點有一台運行 Solaris/Apache/PHP 的伺服器。他們最近對 Solaris、Apache 和 PHP 進行了更新(安全性更新修補程式等)。不幸的是,它導致我們軟體的影像處理部分崩潰。 imagecreatefromjpeg() 現在產生以下錯誤:
警告: imagecreatefromjpeg() [function.imagecreatefromjpeg]: '/path/to/file/filename.jpg' 不是第 XX 行 /path/to/file/Image.class.php 中的有效 JPEG 檔案
伺服器升級期間沒有更改 PHP 程式碼,並且在軟體升級之前它功能齊全。我檢查了傳遞給 imagecreatefromjpeg() 的文件,它們確實有效(它們在圖像編輯軟體和我的瀏覽器中都成功打開)。我檢查了打開文件的目錄的權限,它們確實具有讀取權限。 GD 函式庫已啟用。
我不確定我還能檢查什麼。根據上面的場景,我猜測軟體中發生了一些變化,但我不知道它可能是什麼。 PHP 的版本是 5.2.5,現在是 5.2.13。
我感謝任何有關此問題可能原因的指導。
答案1
想法..
- php.ini 被替換、更改或未讀取。將備份與系統上的目前備份進行比較。
- 新包是用不同的選項編譯的。透過運行比較新舊
php -i
我知道這似乎無關,但驗證權限和資源可用性(記憶體)等基礎知識也可能有助於隔離問題。
還有其他錯誤嗎?
答案2
顯然,較新的 jpeg 庫與系統中的其他內容不相容。一旦我們切換回舊的 jpeg 庫,它就再次開始工作。