PECLのXDebugでデバッグを簡単に(前編)ステップアップ! PHP(2)(2/4 ページ)

» 2011年03月31日 00時00分 公開
[田中正裕アシアル株式会社]

インストール状況を確認

 環境によっては、これからインストールしようとしているPHPエクステンションが、すでにインストールしてあるということもあります。インストール前に、これからインストールするPHPエクステンションがインストール済みでないかどうかを確認しましょう。

 エクステンションがインストールしてあるかどうかを確認する方法は2つあります。1つ目はコマンドラインを使う方法。もう1つはPHPの関数を使う方法です。コマンドラインで確認するには「php」コマンドに「-i」オプションを付けて実行します。具体的には、以下の通りに入力してEnterキーを押してください。

$ php -i

 コマンドを実行すると、結果がコマンドシェルに現れます。例えば、この中に「xdebug」という項目が見つかったら、すでにXDebugがインストール済みであるということです(図2)。

図2 xdebugがインストール済みであることを示す表示 図2 xdebugがインストール済みであることを示す表示

 PHPの関数を使って、エクステンションがインストール済みであるかどうかを調べるには、phpinfo()関数を使います。具体的には、下記の1行だけを記したファイルを作成し、拡張子「.php」を付けて保存してください。その後、Webブラウザでこのファイルを参照すると、インストール済みのエクステンションを示すWebページが見られます(図3)。

<?php phpinfo() ?>
図3 phpinfo()関数を使ってインストール済みのエクステンションを調べたところ 図3 phpinfo()関数を使ってインストール済みのエクステンションを調べたところ

peclコマンドでインストール

 PECLパッケージの管理にはpeclコマンドを使います。使い方は、pearコマンドと同じです。早速、XDebugをインストールしてみましょう。下記のようにコマンドを入力して実行してください。

# pecl install xdebug

 実行すると、パッケージをダウンロードし、自動的にビルド作業が始まります。コンピュータの性能が低いと、このビルド作業に時間がかかることがあります。図4のような結果になればビルド成功です。

図4 peclコマンドでXDebugをダウンロードし、ビルドに成功したところ 図4 peclコマンドでXDebugをダウンロードし、ビルドに成功したところ

 ビルドの結果、生成された「xdebug.so」は、上記の例では「/usr/lib/php5/20090626+lfs/」ディレクトリに存在します。このディレクトリはPHPエクステンションを格納するディレクトリで、エクステンションディレクトリと呼びます。念のため、ファイルが確かに存在することを確認しておきましょう。Linuxなら、下記のコマンドで確認できます。

$ls -la /usr/lib/php5/20090626+lfs/xdebug.so-rw-r--r-- 1 root root 622444 Mar 20 22:31 /usr/lib/modules/xdebug.so

 Windows環境でXDebugをビルドするには、PHP本体のビルドに使ったものと同じコンパイラを使う必要がある上、ほかにも複雑な手順を踏まなければならないなど一筋縄ではいきません。自信のない人はXDebug公式サイトにWindows用バイナリがあるので、こちらを利用するとよいでしょう。

 ただし、Windows用のバイナリには同じエクステンションでも数種類あり、利用しているPHPのバージョンや環境に合わせて正しいものを選ぶ必要があります。どれを選べばよいか分からない場合は、こちらのWebページに、先ほどのphpinfoの実行結果をコピー&ペーストし、「Analyse my phpinfo() output」ボタンをクリックしてください。サーバが現在の状態を解析し、インストール方法を示してくれます。

 ダウンロードしたWindows用XDebugは、PHPのエクステンションディレクトリにコピーします。エクステンションディレクトリの場所を調べるには、先ほど作ったphpinfo()関数を実行するファイルをWebブラウザで実行しましょう。「extension_dir」以降に書いてあるディレクトリがエクステンションディレクトリです。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。