我是否必须重新编译 php 才能启用 GD 库?

我是否必须重新编译 php 才能启用 GD 库?

我的服务器上安装并启用了 GD 库,但在 php.info 中的配置命令下显示

"--without-gd"

有没有办法通过 root 启用它,还是我必须重新编译?

编辑:这是下面“GD”下显示的内容

  
已启用 GD 支持
GD 版本捆绑(兼容 2.0.34)
已启用 FreeType 支持
FreeType 与 freetype 的联动
FreeType 版本 2.2.1
已启用 GIF 读取支持
已启用 GIF 创建支持
已启用 JPG 支持
已启用 PNG 支持
已启用 WBMP 支持
已启用 XBM 支持

这是我的测试脚本:

//开始 php
标头('内容类型:image/jpg');  

$水印 = imagecreatefrompng('ninja.jpg');  
$水印宽度 = 图像x($水印);  
$watermark_height = 图像高度 ($watermark);  
$图像 = 图像创建真颜色($水印宽度,$水印高度);  
$图像 = imagecreatefromjpeg($_GET['src']);  
$size = 获取图像大小($_GET['src']);  
$dest_x = $size[0]-$watermark_width-5;  
$dest_y = $size[1] - $watermark_height - 5;  
图像复制合并($图像,$水印,$目标x,$目标y,0,0,$水印宽度,$水印高度,100);  

 图像jpeg($图像)

图像销毁($图像);  
图像销毁($水印);  
//结束 php



答案1

命令行如下所示配置命令反映了二进制文件构建时的选项,不是目前有哪些模块可用。查看下面的主要配置标头查看广东模块已加载。如果没有,则安装php-gd包并重新启动/重新加载 httpd。

答案2

尝试打开 error_reporting(E_ALL); 并将浏览器指向图像 URL。注释掉类型标头以查看可能隐藏的任何错误消息(如果您的浏览器仅显示损坏的图片消息)。并修复 Ben 提到的缺少分号的问题。

编辑:并清理 $_GET['src'],您可能会在那里打开一个很大的安全漏洞。

答案3

是不是imagecreatefrompng('ninja.jpg')打字错误?(例如,加载 JPEG 到imagecreatefrompng需要 PNG 的位置)。

当我将 JPEG 加载到 时imagecreatefrompng,它仅显示图像的 URL,就像您描述的那样。当我加载 PNG 水印图像时,它工作正常。

注意:我使用的是 Windows,而您使用的是 Linux。您的里程可能会有所不同™,但我认为差别不大。

答案4

我的 php 副本附带--without-gd-phpinfo()我刚刚;extension=php_gd2.dll在 php.ini 中取消注释,GD 工作正常。

Ubuntu 10,Zend 服务器

相关内容