PHP和pChart中出现“call to undefined function imagecreatetruecolor”错误

46
我正在尝试将“pChart”与我的PHP代码集成。当我尝试运行示例时,它会给我一个错误,指出 call to undefined function imagecreatetruecolor 。建议的解决方案是加载这个dll “php_gd2.dll”,因此我在php.ini文件中取消了注释 extension = php_gd2.dll

即使如此,我仍然遇到相同的错误。我已经尝试重新启动服务器和计算机。

使用 get_defined_functions 查找函数 imagecreatetruecolor - ajreal
2
你确定 gd 设置正确了吗?它在 phpinfo() 中有列出吗? - prodigitalson
@kartnik,您可以接受/评论这个答案吗? - St.Woland
8个回答

49

使用以下代码测试您是否具有GD扩展:

<?php
$testGD = get_extension_funcs("gd"); // Grab function list 
if (!$testGD){ echo "GD not even installed."; exit; }
echo"<pre>".print_r($testGD,true)."</pre>";

如果你看到“未安装”的消息,那么请按照以下步骤检查:

  1. phpinfo() 并查找 php.ini 路径
  2. 编辑 php.ini: extension_dir=<你的扩展路径>
  3. 编辑 php.ini: extension=php_gd2.dll //去掉注释或添加
  4. 重新启动 web 服务器
  5. 再次运行测试脚本

谢谢,我通过将PHP路径(c:\ PHP)添加到环境PATH变量中解决了它。 - karthik

35

在 Ubuntu/Linux Mint 平台上(使用 root 权限),请使用以下命令:

apt-get update && apt-get -y install php5-gd

19
在Ubuntu上,使用命令sudo apt-get install php5-gd && sudo service apache2 restart安装php5-gd并重新启动Apache服务。 - Poma
5
在 Ubuntu 16.04 上,要安装 php-gd,请执行 sudo apt install php-gd - Zunderscore

15

对于 PHP 7.2

sudo apt-get install php7.2-gd

请在您的回答中添加一些上下文 - 您想通过安装软件包解决什么问题? - Nico Haase
这是一个GD函数 - 因此,您需要安装PHP的GD扩展才能使用它。上面是一个常见的安装示例(ubuntu)。 - Edmunds22
感谢您的回答。但是截至2020年,您需要使用php-gd而不需要指定版本。 - Puspam

4

我刚遇到了这个问题。 你需要执行 sudo apt install php7.0-gd 或者编辑你的php.ini文件, 重新打开extension=php_gd2.dll


4
此答案是 9 年后的更新,但 PHP 已经发生了很大的变化。请给 St. Woland 点赞以表支持...
使用以下代码在您的 Web 服务器上测试是否安装了 GD 扩展:
<?php
    $testGD = get_extension_funcs("gd"); // Grab function list 
    if (!$testGD){
        echo "GD not even installed.";
        phpinfo();  // Display the php configuration for the web server
        exit;
    }
    echo"<pre>".print_r($testGD,true)."</pre>";  //display GD function list

如果你收到没有安装的提示,那么请按照以下步骤进行检查:
  1. 查看 phpinfo() 输出以确定你的 php.ini 文件的位置
  2. 编辑 php.ini 文件并启用 GD 扩展:
    • 较新版本 PHP (7.3, fg):
      • extension=gd2 //取消注释
    • 较旧版本 PHP (5.x, 7.0, 建议升级):
      • extension_dir=<path to your extensions> //取消注释或添加
      • extension=php_gd2.dll //取消注释或添加
  3. 有些 7.x 版本可能未安装 GD
    • (Ubuntu 等操作系统) sudo apt install php7.3-gd # 将版本号替换为你的
  4. 重启 Web 服务器
  5. 再次运行测试脚本
  6. (当一切正常时,请删除测试脚本,它可能是一个安全隐患)
正如你所看到的,确切的方法会随版本而异。我希望这些额外的信息能够帮助其他人解决他们可能需要的确切步骤。

3

我有很多版本的 php 并且我使用 php-fpm。对于我来说,如果要帮助 php 8.0,需要在 /etc/php/8.0/cli/php.ini 中取消注释 ;extension=gd 并在 /etc/php/8.0/fpm/php.ini 中取消注释 ;extension=gd2,然后安装 gd 库,命令为 sudo apt-get install php8.0-gd


1
我有同样的错误:
PHP Fatal error:  Call to undefined function imagecreatetruecolor() in /var/www/webphp/php/captcha.php on line 251

而我的解决方案是这样的:
$ locate php.ini
    /etc/php56/php.ini

编辑文件php.ini,取消注释内容为"extension=gd.so"的行,保存并重试


0

2022年更新: 如果您在使用PHP 8.0.0或更高版本时遇到此问题,请查看PHP官方网站上的Image Installation页面。

在Windows中,您需要在php.ini中将GD DLL文件php_gd.dll作为扩展进行包含。在PHP 8.0.0之前,该DLL文件的名称为php_gd2.dll。

请编辑您的php.ini文件,并确保存在以下内容。如果没有,请添加。如果有一个分号;在前面,请将分号删除。

PHP 8.0.0或更高版本:如果您使用XAMPP,那么这个文件将会存在于您的文件系统中:

extension=php_gd.dll

旧版 PHP 将使用此文件。如果您使用 XAMPP 8.0.0+,则此文件将 不存在于您的文件系统中:

extension=php_gd2.dll

这就是你可以再次修复它的方法。享受吧!


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