[EC-CUBE4] docker 환경에서 Soap 환경 설정

4343 단어 DockerEC-CUBE4SOAP

개요


EC-CUBE의 Soap 통신 이전 설정을 요약합니다.
설명은 Soap Client가 enabled가 될 때까지 공식 문서에서 Docker file로 변경됩니다.
전제 조건
docker로 로컬 개발 환경을 구축했습니다.
공식 문서 Docker Compose를 사용하여 설치

현상


다음 코드를 써서 실행하면 오류가 발생합니다.
$client = new \SoapClient("wsdlファイルのパス");

이 보도처럼 soap 통신을 할 환경은 없을 것으로 추정된다.
문장을 인용하다
phpinfo의 PHP 표시줄에 soap 정보가 없습니다.

대응


용기에 들어가 php-soap를 설치합니다.

root@xxxxx:/var/www/html# apt-get install php-soap
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package php-soap is a virtual package provided by:
  php7.0-soap 7.0.33-0+deb9u6 [Not candidate version]
  php7.3-soap 7.3.14-1~deb10u1 [Not candidate version]
  php7.3-soap 7.3.11-1~deb10u1 [Not candidate version]

E: Package 'php-soap' has no installation candidate
설치 후보는 없다고 합니다.
docker로 환경을 구축할 때 설정하지 않으면 안 되기 때문에 Build를 설정해서 합니다.

Docker File 수정, 다시 Build


여기뉴스.를 참고하여 Docker file에 다음과 같은 내용을 추가합니다.libxml2-dev && docker-php-ext-install soap
:
:

RUN apt-get update \
  && apt-get install --no-install-recommends -y \
    apt-transport-https \
    apt-utils \
    build-essential \
    curl \
    debconf-utils \
    gcc \
    git \
    gnupg2 \
    libfreetype6-dev \
    libicu-dev \
    libjpeg62-turbo-dev \
    libpng-dev \
    libpq-dev \
    libzip-dev \
    locales \
    ssl-cert \
    unzip \
    zlib1g-dev \
    libxml2-dev \            ※追加
  && apt-get clean \
  && docker-php-ext-install soap \  ※追加
  && rm -rf /var/lib/apt/lists/* \
  && echo "en_US.UTF-8 UTF-8" >/etc/locale.gen \
  && locale-gen \
  ;
:
:

다시 세우다

$ docker-compose up -d --build 

これだとmysqlのコンテナも作られてしまうので、
postgresを使っている場合は
docker-compose up -d --build ec-cube postgres mailcatcher
かもしれない

phpinfo를 통해 환경 확인


PHP에 soap 문자가 있어서 환경이 있는 것 같아요.

Soap에 대한 정보가 있습니다.Soap Client는 enable입니다.

좋은 웹페이지 즐겨찾기