[英]Composer Installation "PHP Warning: PHP Startup: Unable to load dynamic library 'gd2'"
[英]Docker - Unable to load dynamic library 'gd2'
我不明白如何在 linux mint 上使用 Docker 安装 gd2 库。 这是我的 docker-compose 文件
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
,我收到此错误
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
用于“网络”容器的 Dockerfile
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还需要什么?
对我来说,修复是通过将extension=gd2
更改为extension=gd
来编辑php.ini
文件
我像提问者一样使用php:7.4-apache
。
我无法使用您的 Dockerfile 重现您的问题,但是我在尝试在 Ubuntu 而不是 Debian 上构建我的 PHP 映像时遇到了类似的问题,但使用https://github.com/docker-library/drupal/blob/4e4d23ee86e88a0e6e88ec28837402ad1c8453fa/9.0/ fpm-buster/Dockerfile作为添加额外 PHP 扩展的示例。
在我的图像中,当我尝试检查加载的模块 (php -m) 时,我得到:
PHP警告: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:无法打开共享对象文件:没有这样的文件或目录))在 Unknown on line 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.所以:无法打开共享对象文件:没有这样的文件或目录))在第 0 行的未知中
在该文件第 41 行中,您将看到:
| xargs -r dpkg-query -S \\
我用它代替
| xargs -r realpath | xargs -r dpkg-query --search \\
现在模块正在正确加载。
我不是共享库和链接方面的专家,但它正在修复库的路径,因此没有更多问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.