PhpStorm+xdebugを用いた開発環境構築方法について。

PHPで、ステップ実行とか、変数の値を確認したいということはありませんか?
Php Stormとxdebugを使用すると、上記のやりたいことが可能です。
これを使用すれば、var_dump()を使用して、変数の中身を表示する必要はありません!
つまり、var_dump()を消したり、つけたり、消したり、つけたり・・・などの作業が省け、
デバックの精度と作業工数の軽減を目指したいと思います。

必要な環境

1.xdebug
2.phpstorm
3.CentOS5,6

設定方法について。

1.xdebugを、peclコマンドでインストールします。
2.xdebug.iniファイルを作成し、動作環境の設定をします。
3.PhpStromに、xdebugの設定をします。

1.xdebugを、peclコマンドでインストールします

peclインストール

pecl(ピクル) を使用するには、php-develがインストールされていないと動作しないので、まずは、php-develがインストールされているか確認します。

pecl(ピクル:PHP Extension Community Library) 
 PHPで利用できる拡張ライブラリ(パッケージ)を提供しているサービス。

確認コマンド

yum list installed | grep php-devel

確認結果

例)

php-devel.x86_64 5.3.3-46.el6_6 @updates

インストールされていなければ、php-develをインストールします。

yum install php-devel
yum install php-pear
yum install gcc
xdebug をインストールします。

php5.4を境にインストール方法が異なります。

php.5.4以上の場合

pecl install xdebug

php.5.4未満の場合

pecl install xdebug-2.2.7

phpバージョンの調べ方は、php -v。

上記のコマンドを実行するとxdebug.soが作成されるので、xdebug.iniで設定する。
soファイルは共用オブジェクトファイルのこと。

2.xdebug.iniファイルを作成し、動作環境の設定をします。

2.1 xdebugの環境設定を行う。

/etc/php.d ディレクトリ内に、xdebug.ini を作成して、下記のとおり記載する。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
 ; xdebug.soのパスは 適宜変更する。
 zend_extension="/usr/lib64/php/modules/xdebug.so"
 xdebug.remote_enable=1
 xdebug.remote_port="9000"
 xdebug.default_enable=1
 xdebug.remote_autostart=1
 xdebug.remote_connect_back=1
 xdebug.profiler_enable=1
 xdebug.profiler_output_dir="/tmp"
 xdebug.max_nesting_level=1000
 xdebug.idekey = "PHPSTORM"
 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

設定の意味:

zend_extension=”/usr/lib64/php/modules/xdebug.so”

xdebug.soが、どこに出来たか分からない??
そういうときは、find関数を使用してファイルを探してみてください。

1. [ cd / ]コマンド実行。

find関数は、カレントディレクトリ以下のファイルを対象するので、
一番上のルートに設定することにより、全ファイルを操作の対象としています。

2.find -name ‘xdebug.so’ を実行すると保存場所が分かります。

例)
./usr/lib64/php/modules/xdebug.so

リモートデバック機能を有効に
xdebug.remote_enable=1

リモートデバックからホストマシンに接続を待ち受ける際に使用するポート設定
xdebug.remote_port=”9000″

常にリモートデバックを行う
xdebug.remote_autostart=1

接続してきたクライアントにレスポンスを返す場合は、有効にする。
xdebug.remote_connect_back=1

エラーイベントにデフォルトで表示する場合
xdebug.default_enable=1

xdebugの動作状況のプロファイル機能を有効にする。
xdebug.profiler_enable=1

プロファイルの出力先
xdebug.profiler_output_dir=”/tmp”

無限ループが発生した場合に、プログラムの実行回数
xdebug.max_nesting_level=1000

リモート接続する際に指定するキー
xdebug.idekey = “PHPSTORM”

参考URL
https://xdebug.org/docs/all

2.2 service httpd restart で、apache再起動

3.PhpStromに、xdebugの設定をします。

1.RUN>Edit Configration..

2.+ボタンで、PHP Remote Debugをクリック

3.Servers (…)をクリック

xdebugを設定したServerを追加。

例)
Host:192.168.33.10
Port: 80
Use Path *** にチェック

ホストOSのFile/DirectoryとゲストOSドキュメントルートの関連付けを行います。
例えば、File/Directory:src,  Absolute path on the server :/var/www/htmlなど。

設定完了したら、OKボタン

4.ide keyに、xdebug.iniで指定している 「PHPSTORM」を設定して、OKをクリック。

5.ヘッダーバーの虫アイコンをクリックし、デバックモードを確立する。

6.処理を止めたい箇所の行の左をクリックし、ブレークポイントを設定する。

7.ブレークポイントを設定したファイルにアクセスすると、自動的に処理が止まります。