Composer 看不到 GD 扩展
Composer doesn't see GD extension
我已经按照 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": "*",
的作曲家包,问题是这样的:
php -m
显示 gd 已加载但
composer show -p
没有显示 ext-gd
所以我无法使用 composer 安装我需要的包。有什么方法可以安装 GD 让 Composer 看到它吗?
我在这里发现了类似的问题:https://github.com/composer/composer/issues/4353 but it was closed without resolving. Also composer dependency stating in dont have php-xsl 没有解决。
作为参考,我也验证了 Homestead,composer show -p
显示 ext-gd
在我的本地主机 (Windows) 上也没有问题,它正在工作。
所以我发现的唯一问题是 Docker 安装。你知道如何解决吗?
问题不直接出在 Composer 上,而是我使用它的方式。
我在 /usr/local/bin/composer
中安装了 Composer,但像这样创建了别名:
alias composer="php -n /usr/local/bin/composer"
在 运行 composer 时不使用 Xdebug。
但事实上,当 运行 composer 时,它导致所有 PHP 扩展被禁用,所以当 composer 试图安装任何需要 GD2 的包时,它没有看到 GD2 被安装。
我已经按照 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": "*",
的作曲家包,问题是这样的:
php -m
显示 gd 已加载但
composer show -p
没有显示 ext-gd
所以我无法使用 composer 安装我需要的包。有什么方法可以安装 GD 让 Composer 看到它吗?
我在这里发现了类似的问题:https://github.com/composer/composer/issues/4353 but it was closed without resolving. Also composer dependency stating in dont have php-xsl 没有解决。
作为参考,我也验证了 Homestead,composer show -p
显示 ext-gd
在我的本地主机 (Windows) 上也没有问题,它正在工作。
所以我发现的唯一问题是 Docker 安装。你知道如何解决吗?
问题不直接出在 Composer 上,而是我使用它的方式。
我在 /usr/local/bin/composer
中安装了 Composer,但像这样创建了别名:
alias composer="php -n /usr/local/bin/composer"
在 运行 composer 时不使用 Xdebug。
但事实上,当 运行 composer 时,它导致所有 PHP 扩展被禁用,所以当 composer 试图安装任何需要 GD2 的包时,它没有看到 GD2 被安装。