热搜:NVER node 开发 php

自己编译的php在linux下无法生成PNG图像

2024-08-19 20:10:02
自己编译的php在linux下无法生成PNG图像

环境:
  CentOS 6.4  64位
  Nginx 1.4.2
  PHP 5.4.7
  GD库信息如下: 
     GD Support enabled
     GD Version bundled (2.0.34 compatible)
     FreeType Support enabled
     FreeType Linkage with freetype
     FreeType Version 2.3.11
     GIF Read Support enabled
     GIF Create Support enabled
     JPEG Support enabled
     libJPEG Version 6b
     PNG Support enabled
     libPNG Version 1.2.49
     WBMP Support enabled
     XPM Support enabled
     XBM Support enabled

Directive Local                            Value Master 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来编译.
请各位告诉我改怎么做.


回复讨论(解决方案)

贴出你的代码,以验证你的程序书写没有问题
如果你在多个去确定的因素中查找问题的所在,首先应使用排除法

路径,大小写……

请问楼主解决了没有?我也遇到了这样的问题,不过我是centos用yum安装的,gd库这些都和你一样