インストール - Xdebug
概要
以下のコマンドを実行する。
# CentOS PHP 7.3 sudo yum install php73-pecl-xdebug.x86_64 # CentOS PHP 7.4 sudo yum install php74-pecl-xdebug.x86_64 # SUSE sudo zypper install php7-xdebug
Xdebugのダウンロード
まず、ApacheまたはNgineXを起動する。
ApacheまたはNgineXのルートディレクトリに、以下の内容のindex.phpファイルを作成する。
sudo vi /var/www/html/index.php または sudo vi /srv/www/htdoc/index.php
<?php
phpinfo();
?>
Webブラウザを起動して、http://localhost/ にアクセスする。
その時、インストール済みのPHPの環境が表示されるので、[Ctrl] + [A]キーを同時押下して、全てコピーする。
次に、必要なXdebugのバージョンを調べるため、以下のWebサイトにアクセスする。
https://xdebug.org/wizard.php
Webサイトのテキストボックスに、上記でコピーした情報を貼り付けて、[Analyse my phpinfo() output]ボタンを押下する。
Xdebugのダウンロードページが表示されるので、[Instruction]項目からXdebugをダウンロードする。
Xdebugのインストール
まず、Xdebugの公式Webサイトに行き、Xdebugのソースコードをダウンロードする。
以下のコマンドを入力して解凍する。
tar zxvf xdebug-<バージョン名>.tgz
解凍したXdebugのディレクトリに移動し、phpizeコマンドを実行する。
cd xdebug-<バージョン名> phpize
次に、configureスクリプトを実行する。
インストール対象となるシステム特有の機能や情報を記述したMakefileを作成する。
もし、configureに失敗する場合、コンパイルに必要なライブラリやヘッダファイル等が不足していると考えられる。
./configure --enable-xdebug --prefix=<Xdebugのインストールディレクトリ>
makeコマンドを実行して、コンパイルを行う。
make -j 8
make installコマンドを実行して、Xdebugをインストールする。
make install または sudo make install
インストールしたxdebug.soファイルを、任意のディレクトリに配置する。
以下の例では、/usr/lib64/php/modulesディレクトリに配置している。
sudo cp -a modules/xdebug.so /usr/lib64/php/modules
Xdebugの設定
Xdebugの設定ファイルを開いて、以下に示すように編集する。
もし、OPCacheを使用する場合は、OPCacheの設定行の後にzend_extensionを入力すること。
Xdebugのバージョンにより、[xdebug]セクションの設定が異なることに注意すること。
# CentOS sudo vi /etc/php.d/15-xdebug.ini # SUSE sudo vi /etc/php7/conf.d/xdebug.ini
- Xdebug 3.xの設定
# 1行目を編集 zend_extension = <配置したxdebug.soファイルのフルパス> # ファイルの最後尾に以下の設定を記述 [xdebug] xdebug.mode=debug xdebug.start_with_request=yes xdebug.remote_log="/tmp/xdebug.log" xdebug.remote_host=localhost xdebug.remote_port=9000 xdebug.remote_handler=dbgp xdebug.remote_mode=req ;xdebug.client_host=127.0.0.1 xdebug.client_port=9000 xdebug.dump_undefined=1 xdebug.idekey=VSCODE
- Xdebug 2.xの設定
# 1行目を編集 zend_extension = <配置したxdebug.soファイルのフルパス> # ファイルの最後尾に以下の設定を記述 [xdebug] xdebug.dump_undefined=1 xdebug.remote_log="/tmp/xdebug.log" xdebug.remote_enable=1 xdebug.remote_host=localhost xdebug.remote_port=9000 xdebug.remote_handler=dbgp xdebug.remote_mode=req xdebug.remote_autostart=1 xdebug.idekey=VSCODE
VSCodeの設定
VSCodeにてXdebugを使用する場合において、VSCodeの設定を記載する。
なお、VSCodiumにはバグが存在するため、Xdebugが使用できないので注意すること。
まず、以下に示すVSCodeの拡張をインストールする。
- PHP Extension Pack
- PHP IntelliSense
- PHP Debug
PHPプロジェクトのワークスペースにlaunch.jsonを追加して、以下のように設定を記述する。
"version": "0.2.0", "configurations": [ { "name": "Listen for XDebug", "type": "php", "request": "launch", "port": 9000, //"pathMappings": {"": "${workspaceRoot}" } }, { "name": "Launch currently open script", "type": "php", "request": "launch", "program": "${file}", "cwd": "${fileDirname}", "port": 9000, //"pathMappings": {"": "${workspaceRoot}"}, "runtimeExecutable": "/usr/bin/php" } ]
確認方法
以下のコマンドを入力して、xdebugと表示されているならば成功である。
php -m | grep xdebug