系统中缺少扩展gd - laravel composer Update

时间:2016-09-08 07:12:19

标签: php laravel laravel-5.2 gd

我通过Composer(composer require barryvdh/laravel-dompdf)在Laravel Project中新安装了Dompdf。进入命令终端后回复以下错误。

Problem 1
    - dompdf/dompdf v0.7.0 requires ext-gd * -> the requested PHP extension gd is missing from your system.
    - barryvdh/laravel-dompdf v0.7.0 requires dompdf/dompdf ^0.7 -> satisfiable by dompdf/dompdf[v0.7.0].
    - Installation request for barryvdh/laravel-dompdf ^0.7.0 -> satisfiable by barryvdh/laravel-dompdf[v0.7.0].

  To enable extensions, verify that they are enabled in those .ini files:
    - /etc/php/5.6/cli/php.ini
    - /etc/php/5.6/cli/conf.d/10-opcache.ini
    - /etc/php/5.6/cli/conf.d/10-pdo.ini
    - /etc/php/5.6/cli/conf.d/15-xml.ini
    - /etc/php/5.6/cli/conf.d/20-calendar.ini
    - /etc/php/5.6/cli/conf.d/20-ctype.ini
    - /etc/php/5.6/cli/conf.d/20-dom.ini
    - /etc/php/5.6/cli/conf.d/20-exif.ini
    - /etc/php/5.6/cli/conf.d/20-fileinfo.ini
    - /etc/php/5.6/cli/conf.d/20-ftp.ini
    - /etc/php/5.6/cli/conf.d/20-gettext.ini
    - /etc/php/5.6/cli/conf.d/20-iconv.ini
    - /etc/php/5.6/cli/conf.d/20-json.ini
    - /etc/php/5.6/cli/conf.d/20-mbstring.ini
    - /etc/php/5.6/cli/conf.d/20-phar.ini
    - /etc/php/5.6/cli/conf.d/20-posix.ini
    - /etc/php/5.6/cli/conf.d/20-readline.ini
    - /etc/php/5.6/cli/conf.d/20-shmop.ini
    - /etc/php/5.6/cli/conf.d/20-simplexml.ini
    - /etc/php/5.6/cli/conf.d/20-sockets.ini
    - /etc/php/5.6/cli/conf.d/20-sysvmsg.ini
    - /etc/php/5.6/cli/conf.d/20-sysvsem.ini
    - /etc/php/5.6/cli/conf.d/20-sysvshm.ini
    - /etc/php/5.6/cli/conf.d/20-tokenizer.ini
    - /etc/php/5.6/cli/conf.d/20-wddx.ini
    - /etc/php/5.6/cli/conf.d/20-xmlreader.ini
    - /etc/php/5.6/cli/conf.d/20-xmlwriter.ini
    - /etc/php/5.6/cli/conf.d/20-xsl.ini
  You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.

如何解决此错误

我已使用以下评论安装GD。 sudo apt-get install php5-gd以及Apache Server重新启动。我的Laravel版本是5.3,Ubuntu版本是14.04

18 个答案:

答案 0 :(得分:47)

我已经安装了php7,我做了以下几点来解决完全相同的错误

sudo apt-get install php7.0-gd
sudo apt-get install php7.0-intl
sudo apt-get install php7.0-xsl

答案 1 :(得分:18)

如果您使用的是PHP版本5. *那么您必须安装

sudo apt-get install php5-gd

如果您使用的是PHP版本7. *那么您必须安装

sudo apt-get install php7.0-gd

希望它能奏效......

如果您使用的是PHP 7.2版,那么您必须安装

sudo apt-get install php7.2-gd... it worked for me

答案 2 :(得分:10)

可能没有为php-cli启用,你可以像这样启用;

sudo phpenmod gd

更新

我猜你正在使用ppa:ondrej php package(5.6),这会使你的默认ubuntu 14.04 php包(5.5.9)感到困惑。

要从ppa:ondrej安装php 5.6 gd库,您应该使用:

sudo apt-get install php5.6-gd

答案 3 :(得分:9)

打开 php.ini 并取消注释此行:

;extension=php_gd2.dll

答案 4 :(得分:6)

PHP 7.4.2(CLI)(内置:2020年2月5日16:50:21)(NTS) 版权所有(c)PHP组 Zend Engine v3.4.0,版权所有(c)Zend Technologies 与Zend Technologies的Zend OPcache v7.4.2版权所有(c)

对于PHP 7.4.2

  1. sudo apt-get install php7.4-gd
  2. sudo phpenmod gd

答案 5 :(得分:5)

对于 php-8,只需找到您的 php.ini 文件并取消注释行 extension=gd
下面是使用 XamppWindows

的用户的图片指南

步骤 1:打开 php.ini 或在您的机器中找到它 (C:/xampp/php/php.ini)

Open php.ini or locate it in your machine (C:/xampp/php/php.ini)

第 2 步:通过删除分号取消对 line extension=gd 的注释

Uncomment the line extension=gd by removing the semicolon

第 3 步:保存文件并重启服务

Save your file and restart your services

答案 6 :(得分:3)

解决方案非常简单。

在你的php.ini中,只需取消注释行extension=php_gd2.dll(或unix系统的.so扩展名。)

希望它有所帮助。

答案 7 :(得分:3)

对于php 7.1

sudo apt-get install php7.1-gd

干杯!

答案 8 :(得分:2)

如果您使用的是PHP 7.2版,则必须安装

Array
(
    [0] => ClassB.construct
    [1] => ClassB.Set
)

答案 9 :(得分:1)

当我遇到这样的问题时,我总是会做:

@override
Widget build(BuildContext context) {
StreamBuilder<DocumentSnapshot>(
    stream: Firestore.instance
        .collection("users")
        .document(widget.uid)
        .snapshots(),
    builder:
        (BuildContext context, AsyncSnapshot<DocumentSnapshot> snapshot) {
      user = snapshot.data.data as User;
    });

随后搜索在我的系统上安装的PHP版本。通常可以找到我所缺少的扩展名。

WorkStealingQueue

答案 10 :(得分:1)

这对我有用:

composer require "ext-gd:*" --ignore-platform-reqs

答案 11 :(得分:1)

对于Windows: 在您的php.ini文件中取消注释此行

src

如果上述步骤无效,请取消注释以下行:

import smiley1 from './Smileys/smiley1.png`;
import smiley2 from './Smileys/smiley2.png`;
import smiley3 from './Smileys/smiley3.png`;
import smiley4 from './Smileys/smiley4.png`;

document.documentElement.style.setProperty(`--background-image`, `url(${smiley1})`);

答案 12 :(得分:1)

使用Manjaro(Arch)Linux:

$ sudo pacman -S php-gd

在文件/ etc / php / php-ini中,添加以下行:

extension=gd.so

答案 13 :(得分:0)

在composer.json文件中添加“ ext-gd”:“ *”以要求

答案 14 :(得分:0)

在CentOS 7上,尝试运行以下命令:

sudo yum install php72u-gd.x86_64

答案 15 :(得分:0)

Windows 中的本地或 Xampp 转到:C:\xampp\php\php.ini

取消注释extension=gd

答案 16 :(得分:0)

sudo apt-get install php7.4-zip

使用您的 php 版本。就像这里我用的 7.4

答案 17 :(得分:0)

从 Arch 上的 Composer 2.0 开始,我使用:--ignore-platform-req=ext-gd

例如:

php composer install -n --ignore-platform-req=ext-gd

例如:(忽略多个要求)

php composer install -n --ignore-platform-req=ext-gd --ignore-platform-req=ext-ldap

忽略 Composer 要求可能是必要的,因为 Composer 可能会针对已正确安装和启用的依赖项返回错误警告,请考虑 this Arch forum article

<块引用>

正如维基所说,我已经在 /etc/php/php.ini 中安装了 php-gd 和 uncommeted extension=gd.so

感谢您对相关问题的回答,How to always use ignore-platform-reqs flag when running composer?