LoginSignup
2
4

More than 5 years have passed since last update.

[備忘録]MACで、Dockerのapache+phpコンテナをeclipse(PDT)でデバッグ

Posted at

忘れるのでメモ。。。

[前提]
・使用するMACはWifi接続。(なので、ローカルのIPが変わる)

・PHPのイメージは、

を利用。

・eclipse,PDTは、インストール済みであること。

[前準備]
wifiの接続設定にaliasを追加する
1.システム環境設定→ネットワークを起動し、wifiを選択して、歯車アイコンのプルダウンから、
サービスの複製を選択する。

netconf1.png

2.複製した設定にIPを設定する。

netconf2.png

適当にIPを設定。
192.168.101.254

[Dockerコンテナ作成]
1.作業フォルダを作成。以下、ファイルは作業フォルダに作成。

2.php.iniを作成

[Date]
date.timezone = "Asia/Tokyo"
[mbstring]
mbstring.internal_encoding = "UTF-8"
mbstring.language = "Japanese"

3.Dockerファイルを作成

FROM php:5.6-apache
COPY php.ini /usr/local/etc/php/php.ini
RUN set -ex apk --no-cache add postgresql-dev libpq-dev
RUN apt-get update && apt-get install -y libpq-dev curl emacs && docker-php-ext-install pdo pdo_pgsql mbstring zip
RUN pecl install xdebug \
    && rm -rf /tmp/pear \
    && echo "zend_extension=$(find /usr/local/lib/php/extensions/ -name xdebug.so)\n" >> /usr/local/etc/php/conf.d/xdebug.ini \
\
    && echo "xdebug.remote_enable=1\n" >> /usr/local/etc/php/conf.d/xdebug.ini \
    && echo "xdebug.remote_mode=req\n" >> /usr/local/etc/php/conf.d/xdebug.ini \
    && echo "xdebug.remote_connect_back=0\n" >> /usr/local/etc/php/conf.d/xdebug.ini \
    && echo "xdebug.remote_host=192.168.101.254\n" >> /usr/local/etc/php/conf.d/xdebug.ini \
    && echo "xdebug.remote_autostart=on\n" >> /usr/local/etc/php/conf.d/xdebug.ini \
    && echo "xdebug.idekey=ECLIPSE_DBGP\n" >> /usr/local/etc/php/conf.d/xdebug.ini \
    && echo "xdebug.remote_port=59590\n" >> /usr/local/etc/php/conf.d/xdebug.ini


※流用なので、pdo、emacs等関係ない設定あり。
※php.iniは、マウントせず、前述で用意したファイルをコピーすることにした。
※前述のネットワーク設定で複製したIPをXDEBUGに設定。
ポートは59590。
※eclipseを使うので、xdebug.idekey=ECLIPSE_DBGP。

4.ビルド実行

docker build -t php:xdebug_test ./

5.コンテナ起動。

docker run -p 80:80  -v /Users/XXXX/workspace/docker/hoge_xdebug/www/html:/var/www/html --name   xdebug_test -d php:xdebug_test

※htmlフォルダはローカルのものをマウント。

ローカルのhtmlフォルダに、以下のPHPファイル(tktk.php)を準備し、ブラウザで確認。

<?php echo phpinfo();

ブラウザで
http://localhost/tktk.php
を呼び出し確認。

conf1.png

設定が反映されている。

[eclipse環境作成]
1.適当に、phpプロジェクトを作成。
※コンテナ上のPHPバージョンと合わせる事。
※ソースはコンテナにマウントしているフォルダをリンクする。

2.とりあえず、codeigniter3をダウンロードしてきて、HTMLフォルダ上に展開し、
インデックスが出るか確認。

conf2.png

とりあえず、インデックスページは出る。

3.eclipseのメニューからRun ->Debug Configurationsで新規デバッグ実行を作成。

setting1.png

※ソース位置とURLを合わせる。

ポートがあってないので(デフォルト:9000)、Configureボタンを押して、設定。

setting2.png

[デバッグ実行]

1.index.phpの適当な位置にブレークポイントを設定。

setting3.png

2.前述で作成したデバッグを実行する。

3.ブラウザで再び、インデックスページを呼び出すと、、、

conf3.png

設定したブレークポイントの位置でブレークしている。

多分、他のIDEでも、INIファイルのキーを変えてやれば、同じよーに動くはず。。。

2
4
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
2
4