LoginSignup
3
1

More than 3 years have passed since last update.

[EC-CUBE4]docker環境にSoap環境を設定する

Last updated at Posted at 2020-03-04

概要

EC-CUBEでSoap通信を行うまでの設定をまとめる。
ここでは、公式ドキュメントにあるDockerfileを変更してSoap Clientがenabledになるまでを記載する。

前提条件
dockerでローカル開発環境が構築されていること。
公式ドキュメント Docker Composeを使用してインストールする

現状

以下のコードを書いて実行するとエラーが発生する。

$client = new \SoapClient("wsdlファイルのパス");

スクリーンショット 2020-03-03 22.56.55.png

おそらくこの記事にあるようにsoap通信する環境がないと推測。
参照記事

phpinfoのPHP欄にsoap情報がない。
スクリーンショット 2020-03-03 22.55.28.png

対応

コンテナ内に入って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する。

DockerFileを修正、再Build

こちらの記事を参考に、Dockerfileに以下を追加。
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の文字があるので、環境が作られているみたい。
スクリーンショット 2020-03-03 22.56.04.png

Soapの情報があった。Soap Clientがenableになっている。
スクリーンショット 2020-03-03 22.55.45.png

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1