我已经按照https://hub.docker.com/_/php/中所述在Docker计算机上安装了GD,使用:
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": "*",
的 Composer 程序包,问题是这样的: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
在工作的本地主机(Windows)上也显示ext-gd
没问题。所以我发现的唯一问题是Docker安装。您有什么线索可以解决吗?
最佳答案
问题不是直接来自Composer,而是我的使用方式。
我在/usr/local/bin/composer
中安装了Composer,但是创建了如下别名:
alias composer="php -n /usr/local/bin/composer"
运行 Composer 时不要使用Xdebug。
但是实际上,这导致在运行 Composer 时禁用了所有PHP扩展,因此当 Composer 尝试安装任何需要GD2的软件包时,都没有看到GD2已安装。
关于php - Composer没有看到GD扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39581461/