skip to content
Logo
Yurikago Blog
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
launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9001,
"pathMappings": {
"/var/www/html": "${workspaceRoot}/src"
}
}
]
}
index.php
<?php
phpinfo();
docker-compose.yml
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
Dockerfile
FROM centos:6
RUN yum install -y php httpd
# Xdebugをインストール
RUN yum install -y php-pear php-devel gcc
RUN pecl install xdebug-2.2.7
# 設定ファイルをコピー
COPY ./xdebug.ini /etc/php.d/xdebug.ini
# コンテナ起動時にhttpdをスタートする
RUN chkconfig httpd on
CMD /sbin/init
xdebug.ini
zend_extension=/usr/lib64/php/modules/xdebug.so
xdebug.remote_enable=1
xdebug.remote_host=10.0.2.2
xdebug.remote_port=9001
xdebug.remote_autostart=1

参考: https://xdebug.org/docs/all_settings

コンテナを作成

Terminal window
% docker-compose build
% docker-compose up -d

動作確認

  1. VSCodeのデバッガーを起動(F5)
  2. ブレークポイントをindex.phpに設定する
  3. ブラウザから仮想環境にリクエストを送る
    1. http://192.168.99.100 など
  4. ブレークポイントの位置で処理が止まる

処理が止まらない場合

Xdebugのログにヒントがあるかもしれません。ログを出力する設定を追記してください。

/etc/php.d/xdebug.ini
xdebug.remote_log=/var/www/html/xdebug.log

設定を反映するためhttpdを再起動してください。

Terminal window
% service httpd restart