自己編譯的php在linux下無法產生PNG映像,該如何解決
來源:互聯網
上載者:User
自己編譯的php在linux下無法產生PNG映像
環境:
CentOS 6.4 64位
Nginx 1.4.2
PHP 5.4.7
GD庫資訊如下:
GD Supportenabled
GD Versionbundled (2.0.34 compatible)
FreeType Supportenabled
FreeType Linkagewith freetype
FreeType Version2.3.11
GIF Read Supportenabled
GIF Create Supportenabled
JPEG Supportenabled
libJPEG Version6b
PNG Supportenabled
libPNG Version1.2.49
WBMP Supportenabled
XPM Supportenabled
XBM Supportenabled
DirectiveLocal ValueMaster Value
gd.jpeg_ignore_warning 0 0
現在情況是這樣,我有一個需要產生驗證碼的頁面,使用了別人寫的一個產生驗證碼的代碼,這個代碼在我本機上運行良好,放在伺服器上就會出現沒有輸出映像資料,映像控制代碼是由
imagecreatetruecolor函數產生,我用var_dump列印這個曲柄顯示這樣的資訊:resource(55) of type (gd)
顯然控制代碼是建立好的,此後這個產生代碼調用了這些圖形函數:
imagecolorallocate
imagefilledrectangle
imagettftext
imageline
最後使用
header( 'Content-type: image/png' )
配合
imagepng函數輸入驗證碼映像
最後我通過瀏覽器端的調試器發現,傳過來的儘管是image/png類型,卻沒有任何有效資料,也就是說在成功調用了
imagecreatetruecolor產生了映像控制代碼之後,其餘的圖形函數並沒有向圖像寫入任何圖形資料.
現在的問題是我必須有這個產生驗證碼的功能,包括之後要建的discuz論壇也會有驗證碼,我該怎麼做才能讓這玩意工作起來.
由於之前GD缺乏freetype支援我已經重新編譯過PHP.我現在似乎只能 1).找出寫入圖形輸入失效的原因,然後解決. 2).重新搞個其他版本的PHP來編譯.
請各位告訴我改怎麼做.
------解決方案--------------------
貼出你的代碼,以驗證你的程式書寫沒有問題
如果你在多個去確定的因素中尋找問題的所在,首先應使用排除法
------解決方案--------------------
路徑,大小寫……