Composer没有看到GD扩展

时间:2016-09-19 20:21:12

标签: php docker composer-php gd homestead

我在Docker机器上安装了GD,如https://hub.docker.com/_/php/中所述:

RUN apt-get update && apt-get install -y \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libmcrypt-dev \
        libpng12-dev \
    && docker-php-ext-install -j$(nproc) iconv mcrypt \
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install -j$(nproc) gd

适用于PHP 7和PHP 5.6。它没有问题(我可以操作图像),但我现在想安装一些需要"ext-gd": "*",的作曲家包,问题是这样的:

php -m 

显示已加载gd,但

composer show -p

没有显示ext-gd所以我无法使用composer安装我需要的软件包。有没有办法安装GD让Composer看到它?

我在这里发现了类似的问题:https://github.com/composer/composer/issues/4353但它在没有解决的情况下被关闭了。 composer dependency stating in dont have php-xsl也没有解决。

作为参考,我已经验证了Homestead,composer show -p显示ext-gd也没有问题,我的localhost(Windows)也正常工作。

所以我发现的唯一问题是Docker的安装。你有什么线索可以解决吗?

1 个答案:

答案 0 :(得分:0)

问题不是直接来自Composer,而是我使用它的方式。

我在/usr/local/bin/composer中安装了Composer,但创建了别名:

alias composer="php -n /usr/local/bin/composer"

在运行composer时不使用Xdebug。

但实际上它导致所有PHP扩展在运行composer时被禁用,因此当composer尝试安装任何需要GD2的软件包时,它没有看到GD2已安装。