imagecreatefromjpeg和类似功能在PHP中不起作用


76

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

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

我正在开发新的PHP;我的上次安装从未遇到此问题。我不知道发生了什么事。


3
GD是否启用/安装?
奥斯汀·布伦霍斯特

2
确保您GD2不仅已安装,还已将其激活php.ini
Havelock

3
我将如何去做?
UserIsCorrupt 2012年

Answers:




17

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/


16

您必须启用库GD2。

查找您的(正确的)php.ini文件

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

该行应如下所示:

extension=php_gd2.dll

然后重新启动apache,您应该一切顺利。


php.ini是一个很大的文件,因此对于任何关注此内容的人来说,只是一个注释。此行属于该Dynamic Extensions类别(大约在文档中间)
Eric F

12
sudo apt-get install phpx.x-gd 
sudo service apache2 restart

xx是versiónphp。




6

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

yum -y install php-gd
service httpd restart

6

如果您像我一样,并且正在使用其中一个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

这些dev软件包是GD php扩展编译所必需的。对我来说,这导致了在PHP中使用PNG和JPEG支持激活GD。


1
谢谢保罗,这对我来说就像一种魅力!\ o /:火箭:
Thiago Silva Ferreira


1

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

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

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

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.