Docker高山映像上的PHP HTTP扩展名

问题描述 投票:0回答:1

我正在尝试在我的PHP高山映像上安装/启用PHP http扩展。

我的应用程序的composer.json文件包含"ext-http": "*",因此是我的目标。

我的Dockerfile(相关部分)如下:

# PHP-FPM Base Image
FROM php:7.2.26-fpm-alpine

# Install PHP extensions
RUN apk add --update --virtual .build-deps autoconf g++ make zlib-dev curl-dev \
  && pecl install raphf propro \
  && docker-php-ext-enable raphf propro \
  && pecl install pecl_http \
  && echo -e "extension=raphf.so\nextension=propro.so\nextension=http.so" > /usr/local/etc/php/conf.d/docker-php-ext-http.ini \
  && rm -rf /usr/local/etc/php/conf.d/docker-php-ext-raphf.ini \
  && rm -rf /usr/local/etc/php/conf.d/docker-php-ext-propro.ini \
  && apk del .build-deps \
  && rm -rf /tmp/*

但是运行composer update时,出现以下警告:

PHP Warning:  PHP Startup: Unable to load dynamic library 'http.so' (tried: /usr/local/lib/php/extensions/no-debug-non-zts-20170718/http.so (Error relocating /usr/local/lib/php/extensions/no-debug-non-zts-20170718/http.so: uidna_IDNToASCII: symbol not found), /usr/local/lib/php/extensions/no-debug-non-zts-20170718/http.so.so (Error loading shared library /usr/local/lib/php/extensions/no-debug-non-zts-20170718/http.so.so: No such file or directory)) in Unknown on line 0

此后,composer update命令失败:

The requested PHP extension ext-http * is missing from your system. Install or enable PHP's http extension.

警告的http.so.so部分使我停顿了一下,使我认为正在错误的位置查找文件。

我的参考是以下Dockerfile:https://hub.docker.com/r/realpaul/docker-php/dockerfile

有人可以帮我调试此问题吗?谢谢!

php docker composer-php alpine
1个回答
0
投票

该错误消息的一部分内容为:

http.so:uidna_IDNToASCII:未找到符号

根据PECL_HTTP is installed, but does not work,此错误消息指出iconv.so不可用。请尝试通过回显/usr/local/etc/php/conf.d/docker-php-ext-http.ini来启用该功能。

另外,如果假设http.so不在PHP期望的位置,则应尝试在运行的容器中启动bash,以查看该文件是否存在。但是,由于该文件引发错误,您可以假设它在那里

© www.soinside.com 2019 - 2024. All rights reserved.