调用未定义的函数 imagecreatefromjpeg() GD 已安装但无法识别

Posted

技术标签:

【中文标题】调用未定义的函数 imagecreatefromjpeg() GD 已安装但无法识别【英文标题】:Call to undefined function imagecreatefromjpeg() GD installed but not recognized 【发布时间】:2016-04-14 11:12:05 【问题描述】:

我在 Debian 8 下使用 php7 运行我的服务器。 我用sudo apt-get install php7.0-gd 安装了GD,它安装了很多额外的东西。

phpinfo 页面没有我在 PHP5 中看到的常用 gd 库部分。搜索“gd”一词只会在 PHP Credits 部分中找到一行:“GD 成像:Rasmus Lerdorf、Stig Bakken、Jim Winstead、Jouni Ahto、Ilia Alshanetsky、Pierre-Alain Joye、Marcus Boerger”。

我签入了/etc/php/mods-available,有一个gd.iniphp -i | grep gd 说:

/etc/php/7.0/cli/conf.d/20-gd.ini,
gd
gd.jpeg_ignore_warning => 0 => 0

php --ini 说:

Configuration File (php.ini) Path: /etc/php/7.0/cli
Loaded Configuration File:         /etc/php/7.0/cli/php.ini
Scan for additional .ini files in: /etc/php/7.0/cli/conf.d
Additional .ini files parsed:      /etc/php/7.0/cli/conf.d/20-curl.ini,
/etc/php/7.0/cli/conf.d/20-gd.ini,
/etc/php/7.0/cli/conf.d/20-json.ini,
/etc/php/7.0/cli/conf.d/20-mysqli.ini,
/etc/php/7.0/cli/conf.d/20-opcache.ini,
/etc/php/7.0/cli/conf.d/20-pdo_mysql.ini,
/etc/php/7.0/cli/conf.d/20-readline.ini

我在 testgd.php 文件中尝试了另一个测试:

<?php
if(!extension_loaded('gd')) echo "No GD extension" ;
if(!function_exists('gd_info')) echo "<br/>No GD info fonction" ;
?>

正如预期的那样显示两条消息。

我迷路了。我不知道我是否错过了启用模块/扩展程序/甜甜圈之类的基本内容,但我花了 2 个小时试图弄清楚,然后才在这里提问。我没有想法。

有人知道我需要做什么吗? 谢谢。

编辑:完成所有操作后重新启动(而不是重新加载)apache,节省了一天。

【问题讨论】:

My phpinfo() on php 7 with working GD 显示了一个 gd 部分。你后来安装了 php7.0-gd 吗? Apache 需要在加载 php 扩展之前重新启动。那你重启 Apache 了吗? 我不确定你关于我安装php7.0-gd的时间的问题。我几个小时前安装了它,但我的 LAMP 安装已经 2 个月大了。对于第二个问题,我重新启动了 apache 几次,但我想我错过了重要的一个,因为重新启动后我终于看到了 GD 部分,并且测试脚本现在可以了。 TL;DR : 重启 apache 拯救了这一天。 【参考方案1】:

我在 Ubuntu Xenial 服务器上遇到了与您相同的问题,但在我的情况下,原因不同:

系统中有php5的痕迹 命令行中的 PHP 将运行 php-7.0 但 Apache 将使用 php5 php5-gd 包不再可用

我的解决方案是清除 php5 的任何痕迹并重新启动 Apache:

sudo service apache2 stop
sudo apt remove --purge "php5.*"
sudo apt install --reinstall php7.0
sudo service apache2 start

【讨论】:

以上是关于调用未定义的函数 imagecreatefromjpeg() GD 已安装但无法识别的主要内容,如果未能解决你的问题,请参考以下文章

数据流 - 未调用函数 - 错误 - 未定义名称

调用未定义函数 Mpdf\\Mpdf()

Codeigniter:调用未定义的函数(模型)

如果子类未定义构造函数,是不是会调用父构造函数?

phpMyAdmin 错误调用未定义函数

未捕获的错误:调用未定义的函数 have_post()