我正在尝试在我的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
有人可以帮我调试此问题吗?谢谢!
该错误消息的一部分内容为:
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,以查看该文件是否存在。但是,由于该文件引发错误,您可以假设它在那里