86

我已经对此进行了搜索,过去问题中提供的解决方案对我来说完全无法理解。每当我运行类似的函数imagecreatefromjpeg时,我都会得到:

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

我正在安装新的 PHP;我上次安装从来没有这个问题。我不明白发生了什么事。

4

12 回答 12

91

安装 GD 库

您使用的是哪个操作系统?

http://php.net/manual/en/image.installation.php

视窗 http://www.dmxzone.com/go/5001/how-do-i-install-gd-in-windows/

Linux http://www.cyberciti.biz/faq/ubuntu-linux-install-or-add-php-gd-support-to-apache/

于 2012-11-12T04:27:20.963 回答
69

在 Ubuntu/Mint(基于 Debian)中

$ sudo apt-get install php5-gd
于 2014-02-04T14:36:46.727 回答
21

Fatal error: Call to undefined function imagecreatefromjpeg()即使安装了GD,您仍然可以获得。

解决方案是安装/启用 jped lib:

Ubuntu上:

    apt-get install libjpeg-dev
    apt-get install libfreetype6-dev

CentOS上:

    yum install libjpeg-devel
    yum install freetype-devel

如果从源代码编译添加--with-jpeg-dir --with-freetype-dir--with-jpeg-dir=/usr --with-freetype-dir=/usr.

有关更多详细信息,请查看https://www.tectut.com/2015/10/solved-call-to-undefined-function-imagecreatefromjpeg/

于 2018-01-08T08:06:24.363 回答
19

您必须启用库 GD2。

找到你的(正确的)php.ini 文件

找到这一行: ;extension=php_gd2.dll 并删除前面的分号。

该行应如下所示:

extension=php_gd2.dll

然后重新启动apache,你应该很高兴。

于 2012-11-12T04:27:25.463 回答
18

如果您像我一样使用PHP Docker 映像之一作为基础,则需要使用与上面讨论的不同的指令添加 gd 扩展。

对于php:7.4.1-apache您需要添加的图像Dockerfile

RUN apt-get update && \
    apt-get install -y zlib1g-dev libpng-dev libjpeg-dev

RUN docker-php-ext-configure gd --with-jpeg && \
    docker-php-ext-install gd

GD php 扩展的编译需要这些开发包。对我来说,这导致在 PHP 中使用 PNG 和 JPEG 支持激活 GD。

于 2020-06-18T11:51:38.230 回答
13
sudo apt-get install phpx.x-gd 
sudo service apache2 restart

xx 是 php 版本。

于 2016-09-21T09:39:30.660 回答
11

对于 Ubuntu 上的 php 7:

sudo apt-get install php7.0-gd

于 2017-05-25T14:17:07.980 回答
9

安装php5-gd apache 后需要重启

于 2014-05-31T07:16:40.913 回答
7

在 CentOS、RedHat 等中使用以下命令。不要忘记重新启动 Apache。因为必须加载 PHP 模块。

yum -y install php-gd
service httpd restart
于 2014-08-12T19:15:31.297 回答
1

安装后我花了很多时间试图在 Windows 上解决这个问题PHP Version 8.0.11

我创建了这个phpinfo.php文件来检查是否加载了 GD:

<?php
if (extension_loaded('gd')) {
  print 'gd loaded';
} else {
  print 'gd NOT loaded';
}

phpinfo(); ?>

如果它返回gd NOT loaded,请确保在您的php.ini文件中未选中以下内容:

; - Many DLL files are located in the extensions/ (PHP 4) or ext/ (PHP 5+)
;   extension folders as well as the separate PECL DLL download (PHP 5+).
;   Be sure to appropriately set the extension_dir directive.
;
extension=gd

再往下,它们将成为extension_dirWindows 上的一个部分,您需要取消选中以下内容:

; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
;extension_dir = "./"
; On windows:
extension_dir = "ext"

您现在应该看到gd loaded运行phpinfo.php文件的时间,并且任何函数调用(如imagecreatefromjpeg())现在都应该按预期工作。

于 2021-09-28T05:14:18.437 回答
1

如前所述,您可能需要安装 GD 库。

在 shell 上,首先检查您的 php 版本:
php -v

然后相应地安装。在我的系统(Linux-Ubuntu)中,它是 php 7.0 版:
sudo apt-get install php7.0-gd

重新启动您的网络服务器:
systemctl restart apache2

您现在应该已经安装并启用了 GD 库。

于 2020-04-18T18:51:44.177 回答
1


systemctl restart php-fpm
Gd 库工作之后。

于 2020-02-26T23:11:11.177 回答