Php

在 FreeBSD 上處理來自 PHP 的 PNG 圖像時出現奇怪的 GD 錯誤

  • January 17, 2012

我的 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 /imagecache/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
[2009 年 7 月 18 日星期六 21:41:15] [錯誤] [客戶端 90.34.34.34] PHP 警告:imagecreatefrompng() [function.imagecreatefrompng]: 'sites/mikkel.hoegh.org/files/imagecache_sample.png' 不是第 44 行 /usr/storage/www/private/mikkel.hoegh.org/modules/acquia/imageapi/imageapi_gd.module 中的有效 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

有什麼線索嗎?

在更新之前總是閱讀

/usr/ports/UPDATING

有時您需要進行遞歸埠升級,即

portupgrade -fr png-1.2.37

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

埠升級-fr png-1.2.40

引用自:https://serverfault.com/questions/42573