首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker -无法加载动态库'gd2‘

Docker -无法加载动态库'gd2‘
EN

Stack Overflow用户
提问于 2020-03-07 16:18:00
回答 3查看 2.8K关注 0票数 1

我不明白如何在linux mint上用Docker安装gd2库。这是我的docker合成文件

代码语言:javascript
复制
version: '3'

services:

  web:
    build: ./web
    environment:
      - APACHE_RUN_USER=#1000
    volumes:
      - ${APP_PATH_HOST}:${APP_PATH_CONTAINER}
      - ./web/php.ini:/usr/local/etc/php/php.ini
    ports:
      - 8080:80
    working_dir: ${APP_PATH_CONTAINER}

  db:
    image: mariadb
    restart: always
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_USER: root
      MYSQL_ROOT_PASSWORD: 12345
      MYSQL_DATABASE: books
      MYSQL_USER: root
      MYSQL_PASSWORD: 12345
      SERVICE_TAGS: dev
      SERVICE_NAME: mysql
    volumes:
      - ${DB_PATH_HOST}:/var/lib/mysql

  adminer:
    image: adminer
    restart: always
    ports:
      - 6080:8080

  composer:
    image: composer:1.6
    volumes:
      - ${APP_PATH_HOST}:${APP_PATH_CONTAINER}
    working_dir: ${APP_PATH_CONTAINER}
    command: composer install

在我执行docker-compose up --build之后并且在构建过程中没有错误,但是当我执行docker exec -it books_web_1 bash并检查php版本php -v时,我得到了这个错误。

代码语言:javascript
复制
PHP Warning:  PHP Startup: Unable to load dynamic library 'gd2' (tried: /usr/local/lib/php/extensions/no-debug-non-zts-20190902/gd2 (/usr/local/lib/php/extensions/no-debug-non-zts-20190902/gd2: cannot open shared object file: No such file or directory), /usr/local/lib/php/extensions/no-debug-non-zts-20190902/gd2.so (/usr/local/lib/php/extensions/no-debug-non-zts-20190902/gd2.so: cannot open shared object file: No such file or directory)) in Unknown on line 0

“web”容器的Dockerfile

代码语言:javascript
复制
FROM php:7.4-apache

RUN apt-get update && apt-get install -y --no-install-recommends apt-utils \
    libmcrypt-dev \
    libfreetype6-dev \
    libjpeg62-turbo-dev \
    libpng-dev \
    libpq-dev \
    zlib1g-dev \
    && docker-php-ext-install -j$(nproc) iconv \
    && docker-php-ext-configure gd \
    && docker-php-ext-install -j$(nproc) gd \
    && docker-php-ext-install \
           pdo \
           pdo_mysql \
           pgsql \
           bcmath \
           gd \
           && a2enmod \
           rewrite

RUN rm -rf /var/lib/apt/lists/*

那么我还需要什么来安装gd2?

EN

回答 3

Stack Overflow用户

发布于 2020-09-04 15:39:07

对我来说,修复方法是通过将extension=gd2更改为extension=gd来编辑php.ini文件

我像发问者一样使用php:7.4-apache

票数 4
EN

Stack Overflow用户

发布于 2020-08-13 13:15:51

我不能用你的however文件重现你的问题,但是我也遇到了类似的问题,我试图在Ubuntu而不是Debian上构建我的PHP镜像,但是使用https://github.com/docker-library/drupal/blob/4e4d23ee86e88a0e6e88ec28837402ad1c8453fa/9.0/fpm-buster/Dockerfile作为添加额外PHP扩展的例子。

在我的图片中,当我尝试检查加载的模块(php -m)时,我得到了:

PHP警告:

启动:无法加载动态库'gd.so‘(已尝试: /usr/local/lib/php/extensions/no-debug-non-zts-20190902/gd.so (libpng16.so.16:无法打开共享目标文件:没有这样的文件或目录),/usr/local/lib/php/extensions/no-debug-non-zts-20190902/gd.so.so (/usr/local/lib/php/extensions/no-debug-non-zts-20190902/gd.so.so:无法打开共享目标文件:没有这样的文件或目录))在未知的第0行PHP警告: PHP启动:无法加载动态库'zip.so‘(已尝试: /usr/local/lib/php/extensions/no-debug-non-zts-20190902/zip.so (libzip.so.5:无法打开共享对象文件:没有这样的文件或目录),/usr/local/lib/php/extensions/no-debug-non-zts-20190902/zip.so.so (/usr/local/lib/php/extensions/no-debug-non-zts-20190902/zip.so.so:无法打开共享目标文件:没有这样的文件或目录)在第0行的未知位置

在文件line 41中,您将看到:

xargs -r dpkg-

-S \

我将其替换为

| xargs -r realpath | xargs -r dpkg---搜索\

现在模块可以正确加载了。

我不是共享库和链接方面的专家,但它正在修复库的路径,这样就不会再有问题了。

票数 0
EN

Stack Overflow用户

发布于 2021-09-06 12:08:26

这个问题也可能是由……引起的。

  • an extension_dir entry in your php.ini
  • an php.ini file
  • or an invalid extension name.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60575671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档