在 FreeBSD 上使用 PHP 處理 PNG 映像時出現奇怪的 GD 錯誤

在 FreeBSD 上使用 PHP 處理 PNG 映像時出現奇怪的 GD 錯誤

我的 FreeBSD 7.1 伺服器有問題。 PHP 的 GD 實作不再適用於 PNG 映像。每當系統嘗試處理 PNG 映像時,我都會收到以下三個錯誤訊息:

[2009 年7 月18 日星期六21:41:15] [錯誤] [客戶端90.34.34.34] PHP 警告:imagecreatefrompng() [function.imagecreatefrompng]:gd-png:致命libpng 錯誤:[00][00] [00][ 00]:第44 行/usr/storage/www/private/mikkel.hoegh.org/modules/acquia/imageapi/imageapi_gd.module 中的未知關鍵區塊,參考:http://mikkel.hoegh. org/admin/build /圖像快取/3
[2009 年7 月18 日星期六21:41:15] [錯誤] [客戶端90.34.34.34] PHP 警告:imagecreatefrompng() [function.imagecreatefrompng]:gd-png 錯誤:setjmp 在/usr/storage/www/ private 中傳回錯誤條件/mikkel.hoegh.org/modules/acquia/imageapi/imageapi_gd.module 第 44 行,參考:http://mikkel.hoegh.org/admin/build/imagecache/3
[Sat Jul 18 21:41:15 2009] [錯誤] [客戶端 90.34.34.34] PHP 警告:imagecreatefrompng() [function.imagecreatefrompng]: 'sites/mikkel.hoegh.org/files/imagecache_safrompng]: 'sites/mikkel.hoegh.org/files/imagecache_safrompng. usr/storage/www/private/mikkel.hoegh.org/modules/acquia/imageapi/imageapi_gd.module 中第44 行的有效PNG 文件,參考:http://mikkel.hoegh.org/admin/build/imagecache/ 3

我已經嘗試解決這個問題半天了,我發現的最好的線索是另一個人也有同樣的問題– 但沒有解決方案。

有問題的程式碼相當簡單,它只是調用imagecreatefrompng($filename);

我能想到的所有可能相關的軟體包的軟體包版本:

  • php5-5.2.10
  • php5-gd-5.2.10
  • png-1.2.37
  • gd-2.0.35_1,1

有什麼線索嗎?

答案1

更新前總是

/usr/ports/UPDATING

有時你需要進行遞歸 portupgrade ie

portupgrade -fr png-1.2.37

答案2

這個命令解決了我的問題:

portupgrade-fr png-1.2.40

答案3

如果您使用 portmaster,這將起作用:

portmaster -dbrR png-1.2.40

答案4

PNG 圖像可能有問題。使用非常小的黑白 PNG 圖像嘗試非常基本的程式碼。如果這也在日誌檔案中產生相同的錯誤,那麼您可以考慮從原始程式碼安裝 PHP,以便將 php_gd 等模組更新到最新版本。

您也可以嘗試設定

error_reporting  =  E_ALL
display_errors = On

如果他們在螢幕上給出一些更好的錯誤訊息。請記住display_errors=Off在生產伺服器上完成調試後進行 make 。

相關內容