在Docker容器中为PHP启用Soap

Spa*_*dee 4 php soap docker

我一直无法使用php Docker安装程序。

我正在将Docker CE用于Windows版本18.03.1-ce-win65(17513)。PHP版本7.2.3

我试过从容器内部运行,apt-get install php-soap这导致 读取软件包列表...完成
构建依赖关系树
读取状态信息...完成
* 软件包php-soap是由以下 人员提供的虚拟软件包: * php7.0-soap 7.0.27 -0 + deb9u1 [非候选版本] *

E:软件包“ php-soap”没有候选安装

docker-php-ext-install soap 在错误配置中运行结果:错误:找不到libxml2。请检查您的libxml2安装。

但是,当查看php信息时,我看到以下内容: libxml2版本=> 2.9.4

The*_*sek 22

对我来说,使用 PHP 7.3.2 时,其他解决方案不起作用。

“php-soap”和“php7.3-soap”都有“phpXXX-soap 没有安装候选”错误。

单独的“docker-php-ext-install soap”想要“libxml2-dev”,所以我只安装了必需品:

FROM php:7.3
RUN apt-get update -y \
  && apt-get install -y \
     libxml2-dev \
  && apt-get clean -y \
  && docker-php-ext-install soap  
Run Code Online (Sandbox Code Playgroud)

...而且效果很好。


Nig*_*Ren 8

您将需要将libxml2-dev作为dockerfile的一部分进行安装,该映像将保持最低状态,并且不包括每个模块所需的所有位。尽管映像可能具有主程序包,但-dev程序包包括编译依赖该程序包的其他模块所需的组件...

RUN apt-get update && \
    apt-get install -y libxml2-dev
Run Code Online (Sandbox Code Playgroud)

(来自https://github.com/docker-library/php/issues/315

  • 从未尝试过在容器中运行 `docker-php-ext-install soap`,所以如果它运行会很感兴趣。 (2认同)

hiz*_*rck 6

正确的答案已经完成,但对我来说,我还需要启用(docker-php-ext-enablesoap)soap 模块,因此对于 If 有人可能有用:

FROM php:7.4.24-apache

# your configurations ...

RUN apt-get update && \
    apt-get install -y libxml2-dev
RUN docker-php-ext-install soap && docker-php-ext-enable soap

# other configurations ...
Run Code Online (Sandbox Code Playgroud)