スポンサーリンク
2013年09月23日
CodaとかSublimeTextでWordPressのテーマをコーディングしていたのですが、変数内容を確認するのが面倒になってきたので、Xdebugを利用したPHPStormのデバッグ環境を整えることにしました。
WordPressとタイトルに入れましたが、WordPressの内容は少しだけです。
ほぼ、Mac購入時のデフォルト環境で設定しています。もし参考にするときは、ご自分の環境に合わせて適宜変更を加えてください。ローカル環境での説明ですが、リモート環境でもあまり変わらないと思います。
バージョン | |
---|---|
Mac OS X Lion | 10.7.5 |
PHP | 5.3.15 |
PHPStorm | 6.0.3 |
Xdebugのダウンロード
AcitveStateからダウンロードします。
Komodo IDE 8 (version 8.0.2) > PHP Remote Debugging Client > Mac OS X (universal)
xdebug.soの移動
Komodo-PHPRemoteDebugging-8.0.2-78971-macosx.tar
ファイルを解凍/展開する。
利用しているPHPのバージョン毎にxdebug.so
ファイルが異なるため、PHPのバージョンを確認します。
ターミナルを開き、php -v
を実行します。
PHPのバージョンと同じ数字のフォルダに入っているxdebug.so
を/usr/libexec/apache2/
に移動します。
php.iniの編集
/private/etc/php.ini
を編集します。
もしphp.ini
なければ同じフォルダにあるphp.ini.default
を複製して、php.ini
にリネームして利用します。
Xdebugの項目に以下の内容を追加します。
zend_extension="/usr/libexec/apache2/xdebug.so"
xdebug.remote_enable = On
xdebug.remote_handler = dbgp
xdebug.remote_host = localhost
xdebug.remote_port=9000
xdebug.profiler_enable=1
xdebug.profiler_output_dir="/var/tmp/xdebug"
xdebug.idekey = "PHPSTORM"
xdebug.remote_connect_back = on
apacheの再起動
状況に応じてターミナルから、
sudo apachectl graceful
sudo apachectl restart
などで、再起動させます。
インストールの確認
localhostとしてアクセスできるディレクトリに、下記の内容を含むindex.php(indexである必要はなし)ファイルを作成します。
<?php
phpinfo();
?>
Webブラウザで作成したファイルにアクセスして、xdebugの項目があればインストール完了です
PHPの設定
Preferences > Project Settings > PHP
php language level:
interpreter:
ついでに、Include path
にWordPressのwp-inclides
とwp-admin
を追加しておきます。External-Libraries
に追加されますので、WordPressで使わているfunction等をサジェスト機能で呼び出すことができ、WordPressに関連するコードの未定義エラーもなくなります。
PHP Serverの設定
Preferences > Project Settings > PHP > Servers
左上の+(プラスアイコン)をクリックして追加します。
name:local(任意)
host:localhost
port:80
debugger:xdebug
リモートデバッグ設定と動作確認
RUN > Edit Configurations…
Defaults > PHP Remote Debug
Servers: local(2.で設定したServer)
ide key: PHPSTORM (php.iniで設定した値)
設定が終わったらツールバーにあるlisten php debug connections
をクリックします。スタートするとアイコンの上部が緑色になります。
xdebugが動作しているかを確認します。ターミナルを開き、下記のコマンドを実行します。
lsof -n -P -i :9000
上のようになっていれば大丈夫です。
デバッグ実行
デバッグ時に利用するWebブラウザで下記のURLを開きます。
http://www.jetbrains.com/phpstorm/marklets/
XdebugのIDE key:
にphp.ini
で設定したPHPSTORM
を入力して、Generate
をクリックすると、Bookmarklet
が生成されます。
start debugger
javascript:(/*%20@version%200.5.2%20/function()%20{document.cookie=’XDEBUG_SESSION=’+’PHPSTORM’+’;path=/;’;})()
stop debugger
javascript:(/*%20@version%200.5.2%20/function()%20{document.cookie=’XDEBUG_SESSION=’+’’+’;expires=Mon,%2005%20Jul%202000%2000:00:00%20GMT;path=/;’;})()
start debugger
とstop debugger
をブックマークに追加します。リンクをブックマークツールバーにドラッグ&ドロップするなど、やりやすい方法でブックマークを作成します。
a. 3.のlisten php debug connections
を実行したまま、デバッグしたいローカルホストのURL(トップページなど)をWebブラウザで開きます。
b. 開いた状態でブックマーク(Bookmarklet)のstart debugger
をクリックする。
c. リロードするとPHPStormで設定したブレークポイントで止まり、変数の内容が確認できます。
Bookmarkletとはわからずに、http://www.jetbrains.com/phpstorm/marklets/
の画面で、start debugger
を「何も起こらないなぁ・・・」としばらくクリックしていました。
何はともあれ、少しはコーディングが楽になりそうです。