CentOS6 Xdebug+VSCodeでPHP5.3をデバッグする
/ 2 min read
Table of Contents
PHPのデバッグやプロファイリング機能を提供するPHP拡張機能Xdebugを利用して、CentOS6環境で動作するPHPをVSCodeからデバッグする方法をまとめました。
検証環境
- Windows 10 Home
- Visual Studio Code 1.41.1
- PHP Debug 1.13.0
- Docker Toolbox 19.03.1
- Virtual Box 5.2.34
- CentOS 6
- PHP 5.3.3
- Xdebug 2.2.7
ディレクトリ構成
/ - .vscode - launch.json - src - index.php - docker-compose.yml - Dockerfile - xdebug.ini
{ "version": "0.2.0", "configurations": [ { "name": "Listen for XDebug", "type": "php", "request": "launch", "port": 9001, "pathMappings": { "/var/www/html": "${workspaceRoot}/src" } } ]}
<?php phpinfo();
version: '3'services: app: build: context: ./ image: image-xdebug-app container_name: container-xdebug-app ports: - 80:80 volumes: - ./src:/var/www/html tty: true
FROM centos:6
RUN yum install -y php httpd
# XdebugをインストールRUN yum install -y php-pear php-devel gccRUN pecl install xdebug-2.2.7
# 設定ファイルをコピーCOPY ./xdebug.ini /etc/php.d/xdebug.ini
# コンテナ起動時にhttpdをスタートするRUN chkconfig httpd onCMD /sbin/init
zend_extension=/usr/lib64/php/modules/xdebug.so
xdebug.remote_enable=1xdebug.remote_host=10.0.2.2xdebug.remote_port=9001xdebug.remote_autostart=1
参考: https://xdebug.org/docs/all_settings
コンテナを作成
% docker-compose build% docker-compose up -d
動作確認
- VSCodeのデバッガーを起動(F5)
- ブレークポイントをindex.phpに設定する
- ブラウザから仮想環境にリクエストを送る
- ブレークポイントの位置で処理が止まる
処理が止まらない場合
Xdebugのログにヒントがあるかもしれません。ログを出力する設定を追記してください。
xdebug.remote_log=/var/www/html/xdebug.log
設定を反映するためhttpdを再起動してください。
% service httpd restart