我在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的安装。你有什么线索可以解决吗?
答案 0 :(得分:0)
问题不是直接来自Composer,而是我使用它的方式。
我在/usr/local/bin/composer
中安装了Composer,但创建了别名:
alias composer="php -n /usr/local/bin/composer"
在运行composer时不使用Xdebug。
但实际上它导致所有PHP扩展在运行composer时被禁用,因此当composer尝试安装任何需要GD2的软件包时,它没有看到GD2已安装。