misc.log

日常茶飯事とお仕事と

PHPの開発環境を揃えてみる(5) Xdebugを使えるようにしてみる

http://www.backyrd.net/entry/20140518/1400420640 の続き。

EclipsePHPのプログラムをデバッグするツールとしてXdebugというのがあるようなんですが……いろいろ設定が必要なんですね。とりあえずやってみる。

Xdebugをダウンロードする

今回、PHPのバージョン 5.4を使っているので、下記URLの「PHP 5.4 VC9 TS (32 bit)」をダウンロードします。名前についている「TS」は「Thread Safe」の略のようです。複数スレッドでの動作を保証するバージョン、今回使っているWebサーバー Apacheもマルチスレッド対応らしいのでTS版を利用します。

Xdebug Download
http://www.xdebug.org/download.php

ダウンロードすると、いきなりDLLファイルがダウンロードされます。ファイル名は「php_xdebug-2.2.5-5.4-vc9.dll」。これをPHPの拡張ライブラリフォルダに置くようですね。

DLLを配置して設定する

フォルダ名は、PHP一式を置いたフォルダにある「ext」フォルダ。今回、PHPのファイル一式は「c:\work\php」に置いたので、自分の環境の場合は「C:\work\php\ext」になるようです。

……で?で?どうするの?

よく分からないので基本に立ち返って、Xdebugのドキュメントにある「Installation」のところを観てみましょう。

Xdebug Documentation / Installation
http://www.xdebug.org/docs/install

ここの「Precompiled Windows Modules」のところに「Follow these instructions」というリンクがあるので、「http://www.xdebug.org/wizard.php」に飛んでみると……。phpinfo()が出すWebページの内容をコピペして貼り付けろ……と。phpinfo()を出力するページをササっと作り、ブラウザで表示。内容をマウスでドラッグしてコピー、上記ページのテキストボックスに貼付して「Analyze my phpinfo() output」をクリックするとこんな表示が。

Tailored Installation Instructions

Summary

Xdebug installed: no
Server API: Apache 2.0 Handler
Windows: yes - Compiler: MS VC9 - Architecture: x86
Zend Server: no
PHP Version: 5.4.28
Zend API nr: 220100525
PHP API nr: 20100525
Debug Build: no
Thread Safe Build: yes
Configuration File Path: C:\Windows
Configuration File: C:\work\php\php.ini
Extensions directory: C:\work\php\ext
Instructions

1. Download php_xdebug-2.2.5-5.4-vc9.dll
2. Move the downloaded file to C:\work\php\ext
3. Edit C:\work\php\php.ini and add the line
   zend_extension = C:\work\php\ext\php_xdebug-2.2.5-5.4-vc9.dll
4. Restart the webserver

さっき書いたPHPのパスなんかも全部含めて手順を出してくれるとか、なんとも素晴らしいサービス、というかこういう手順書の提示方法もおもしろいですね。

で本題。DLLのダウンロードは行って、DLLのコピーもしました。次はphp.iniに「zend_extention = (DLLフルパスファイル名)」という記述を追記してApache再起動、ということですね。やってみます。再度phpinfo()を表示してXdebugのロードが確認できればOK。

f:id:frontline:20140528011411j:plain

できた。とりあえずライブラリの読み込みは成功。ちなみに「間違えて非スレッドセーフ(ファイル名末にntsがつく)」を読ませたり、ファイル名やパスが違っても駄目なので気をつけて。