php - Composer没有看到GD扩展名

标签 php docker composer-php gd homestead

我已经按照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/

相关文章:

deployment - 使用 Docker 容器部署 Golang Web 应用程序静态文件

php - Composer 自动加载找不到类

php - fatal error : Class 'Illuminate\Foundation\Application' not found

php - 打印下拉菜单的可见名称而不是其值名称

php - apache 2.4 (CentOS) 和 apache 2.4 (Red Hat) 有什么区别?

php - 让 var_dump 看起来很漂亮

php - 通过 Composer 安装软件包后如何启动脚本?

php - 使用 RAND() php mysql 限制 ID 之间的随机 ID

docker - webpack 和 React jsx - 热加载不适用于 docker 容器

docker - 将 exec-opt native.cgroupdriver 改为 "cgroupfs"时,docker 不能正常运行?