无法在PHP中呈现动态创建的图像(Apache2)

时间:2014-11-03 21:21:07

标签: php linux apache mime-types captcha

我试图在页面上呈现验证码图片,如下所示:

<img src="part/captcha_image.php?rand=<?php echo rand(); ?>" id='captchaimg' alt="captcha image">

图片在captcha_image.php中返回:

header('Content-Type: image/jpeg'); // defining the image type to be shown in browser widow
imagejpeg($image); //showing the image

在xampp上的Windows机器上,它显示没有任何问题,但在Linux上使用手动apache2安装映像无法渲染,在浏览器的开发人员工具中我看到以下错误:

Failed to load resource: the server responded with a status of 500 (Internal Server Error)(在Chrome和Firefox上显示)

http://localhost/app/part/captcha_image.php?rand=1653484771 Failed to load resource: net::ERR_CACHE_MISS(仅显示在Chrome上)

我错过了什么?

2 个答案:

答案 0 :(得分:1)

听起来这个问题已在评论中得到解答。对于这样的问题,请务必在PHP的配置中启用详细的错误报告,并直接在浏览器地址栏中点击图片的URL。

如果您这样做,实际上问题是您需要gd并且gd丢失,那么错误页面会告诉您。

答案 1 :(得分:0)

正如@Cheery在评论中建议我遗漏gd module which is responsible for creation and manipulation of image files 。命令sudo apt-get install php5-gd && sudo service apache2 restart解决了我的问题。