【旧バージョン(PHP7系 & PHP5系)対応版】Xdebug + Docker + VSCodeによるデバッグ環境構築
目次
PHP 旧バージョンへのXdebug導入方法
下記リンクの前回の記事で解説しているDocker & VSCode開発環境へのXdebug導入手順を、PHPの旧バージョン7系 & 5系で行う方法ついて補足します。
(PHP 8 + Xdebug)
とくにPHPバージョン5系で開発された旧システムの改修や調査などでローカル環境を構築する必要がある際に参考にしていただければ幸いです。
なお、VSCodeのXdebug拡張機能の設定やステップ実行の方法などはPHP各バージョンで共通ですので、上記記事の記載内容を参考にしてください。
PHP 7
PHP 7系(7.4と7.3)でのXdebug導入ついて解説します。
必要なソースファイルはすべて以下リポジトリを参照
https://github.com/kenchang198/xdebug-on-docker/tree/7.4
Dockerfile
PHP 7系ではXdebugバージョン2系(2.9.0)をインストールする必要がありますので、以下のようにDockefileを作成しています。
FROM php:7.4-apache
RUN pecl install xdebug-2.9.0 && \
docker-php-ext-enable xdebug
上記はPHP 7.4系のdockerイメージを使用していますが、PHP 7.3の場合でもxdebugのバージョン、設定ともに7.4のものと同一で問題ありませんでしたので、
7.3系を再現する場合はDockerイメージの選択を7.4のものから7.3へ変更するだけでOKです。
php.ini
php.iniに記載するXdebugの設定もXdebugバージョン2系に合わせた内容で記載します。
※ Xdebugバージョン3系の方法で記載しても反映されません。
[xdebug]
xdebug.remote_host = host.docker.internal
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_port = 9003
PHP 5
バージョン5系の場合はマイナーバージョン毎で、それぞれ対応しているXdebug(2系)のマイナーバージョンや、モジュール本体であるxdebug.soとphp.iniの設置パスなどが異なる点に注意が必要です。
https://github.com/kenchang198/xdebug-on-docker-php5/tree/php56
├── Dockerfile
├── docker-compose.yml
├── html
│ └── index.php
└── php.ini
docker-compose.yml
version: '3.8'
services:
web:
build: ./
volumes:
- ./html:/var/www/html
ports:
- 88:80
php.ini
[xdebug]
xdebug.remote_host = host.docker.internal
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_port = 9003
以降、マイナーバージョン毎のDockerfileの差分を記載します。
注意 pecl install xdebugについて補足
PHP 5環境で使用するXdebug 2系がpecl installコマンドでインストールが出来なくっていたため、以降Dockerfile内に記載している、RUN pecl install xdebug~のコマンドの部分は下記の別記事内の記述に置き換えてください。
Dockerfile (PHP 5.5用)
PHP 5.5.38 with Xdebug v2.5.5
FROM php:5.5-apache
ADD php.ini /usr/local/etc/php/php.ini
RUN pecl install xdebug-2.5.5
RUN echo -e "\nzend_extension=\"/usr/local/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so\"" >> /usr/local/etc/php/php.ini
RUN service apache2 restart
EXPOSE 80
CMD ["/usr/sbin/apachectl","-DFOREGROUND"]
Dockerfile (PHP 5.4用)
PHP 5.4.45 with Xdebug v2.2.7
FROM php:5.4-apache
ADD php.ini /usr/local/etc/php/php.ini
RUN pecl install xdebug-2.2.7
RUN echo -e "\nzend_extension=\"/usr/local/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so\"" >> /usr/local/etc/php/php.ini
RUN service apache2 restart
EXPOSE 80
CMD ["/usr/sbin/apachectl","-DFOREGROUND"]
Dockerfile (PHP 5.3用)
PHP 5.3.29 with Xdebug v2.2.7
FROM php:5.3-apache
ADD php.ini /usr/local/lib/php.ini
RUN pecl install xdebug-2.2.7
RUN echo -e "\nzend_extension=\"/usr/local/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so\"" >> /usr/local/lib/php.ini
RUN service apache2 restart
EXPOSE 80
CMD ["/usr/sbin/apachectl","-DFOREGROUND"]
“【旧バージョン(PHP7系 & PHP5系)対応版】Xdebug + Docker + VSCodeによるデバッグ環境構築” に対して1件のコメントがあります。
コメントは受け付けていません。