我已经对此进行了搜索,过去问题中提供的解决方案对我来说完全无法理解。每当我运行类似的函数imagecreatefromjpeg
时,我都会得到:
致命错误:调用未定义的函数 imagecreatefromjpeg() ...
我正在安装新的 PHP;我上次安装从来没有这个问题。我不明白发生了什么事。
安装 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/
在 Ubuntu/Mint(基于 Debian)中
$ sudo apt-get install php5-gd
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/
您必须启用库 GD2。
找到你的(正确的)php.ini 文件
找到这一行: ;extension=php_gd2.dll 并删除前面的分号。
该行应如下所示:
extension=php_gd2.dll
然后重新启动apache,你应该很高兴。
如果您像我一样使用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。
sudo apt-get install phpx.x-gd
sudo service apache2 restart
xx 是 php 版本。
对于 Ubuntu 上的 php 7:
sudo apt-get install php7.0-gd
安装php5-gd
apache 后需要重启。
在 CentOS、RedHat 等中使用以下命令。不要忘记重新启动 Apache。因为必须加载 PHP 模块。
yum -y install php-gd
service httpd restart
安装后我花了很多时间试图在 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_dir
Windows 上的一个部分,您需要取消选中以下内容:
; 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()
)现在都应该按预期工作。
如前所述,您可能需要安装 GD 库。
在 shell 上,首先检查您的 php 版本:
php -v
然后相应地安装。在我的系统(Linux-Ubuntu)中,它是 php 7.0 版:
sudo apt-get install php7.0-gd
重新启动您的网络服务器:
systemctl restart apache2
您现在应该已经安装并启用了 GD 库。
在
systemctl restart php-fpm
Gd 库工作之后。