致命错误:调用未定义的函数:imagecreate()

56

我正在尝试在网页上放置一些图形,我的原型在本地主机工作正常。但是现在我将文件上传到服务器后,我遇到了绘制一些图形的问题。在我的电脑上,它们被绘制出来,但在服务器上却没有。

我遇到了这个错误

Fatal error: Call to undefined function ImageCreate() in /home/t1g01/phplot.php on line 248

第248行

$this->img = ImageCreate($this->image_width, $this->image_height);

我正在使用Phplot,并且我也上传了Phplot的文件。有人可以帮我吗?

对于英语中的任何错误,我很抱歉,预先感谢您。

12个回答

64

43

如果您正在使用Linux机器,则可以在控制台中执行此命令:

sudo apt-get install php5-gd

安装php_gd2.dll扩展。在重新启动Apache后,它将正常工作。

PS:应首先检查您当前的php版本。

php -v

在我的情况下:

PHP 7.3.5-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: May 3 2019 10:00:24) ( NTS ) 版权所有 (c) 1997-2018 PHP Group Zend Engine v3.3.5,版权所有 (c) 1998-2018 Zend Technologies,具有Zend OPcache v7.3.5-1+ubuntu18.04.1+deb.sury.org+1,版权所有(c) 1999-2018, Zend Technologies

所以,我的PHP版本是7.3,因此我的版本的命令是:

sudo apt-get install php7.3-gd

任何 Linux 系统的最简单解决方案。这也适用于 Nginx。 - BrainStone
5
安装 PHP5.6 的 GD 组件,命令为 sudo apt-get install php5.6-gd - qdev
如果使用PHP 7.2,则运行以下命令进行安装:sudo apt-get install php7.2-gd - Zerquix18
不要忘记执行 service apache2 restart 命令! - omega1

8

您的服务器可能没有启用GD(内置PHP图像处理库)。您可以通过查找“GD”在以下输出中来检查:

<?php
phpinfo();
?>

如果没有启用,可以查看PHP文档了解如何启用:http://www.php.net/manual/en/book.image.php

8

针对 Fedora 和 CentOS

dnf install php-gd
systemctl restart httpd.service

在Ubuntu上

apt-cache search php*-gd
apt-get install php<version>-gd
systemctl restart apache2.service

Windows 用户请参考:http://php.net/manual/zh/image.installation.php


4

对于任何版本的PHP,Ubuntu安装命令为

apt-get install php-gd

它将安装与您的PHP版本匹配的版本,并且稍后将根据您的PHP版本进行更新。


3
  1. 将 php_gd2.dll 文件从 PHP 的 ext/ 目录复制到您的 php 扩展目录。如果 php_gd2.dll 已经在扩展目录中则无需复制。请查看 php.ini 中的 'extension_dir' 指令以找到当前扩展目录。

  2. 修改你的 php.ini 文件并更改以下行:

;extension=php_gd2.dll

改为:

extension=php_gd2.dll

2

看起来您的GD库没有被使用。请仔细检查您的php.ini文件。


1

我知道这是一个旧帖子,但最近在Windows上使用新的Xampp安装进行QR编码时,遇到了相同的致命错误:调用未定义的函数:imagecreate()。

我首先查看了php.ini文件中的GD扩展,并通过取消注释;extension=gd来解决了此问题。

之后QR代码按预期生成到浏览器中。

注意:不要忘记重新启动Apache以使更改生效。


0

对于Ubuntu 16.04:

sudo apt-get install php7.0-gd

停止并重新启动Apache服务器。

PS:应首先检查您当前的PHP版本。

php -v

在我的情况下:

PHP 7.3.5-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: May 3 2019 10:00:24) ( NTS ) 版权所有 (c) 1997-2018 PHP Group Zend Engine v3.3.5,版权所有 (c) 1998-2018 Zend Technologies with Zend OPcache v7.3.5-1+ubuntu18.04.1+deb.sury.org+1,版权所有 (c) 1999-2018,Zend Technologies

所以,我的PHP版本是7.3,因此,我的命令是:

sudo apt-get install php7.3-gd

0
根据Gayan的回答,对于CentOS,这对我有效:
yum install php-gd
sudo systemctl restart httpd.service

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接