お久しぶりです。野瀬です。
最後の投稿から約1年が経っており、時が経つのは早いなぁ〜と感じる今日この頃。
最近自分の周りでの開発環境はVagrantを使うのが増えてきています。
自分も流行に乗っかりVagrantを使って開発しています。
今回はそんなVagrantとPHPとXdebugを使ったステップ実行をする手順をご紹介したいと思います。しかもWebブラウザからだけではなくCommandLineからもステップ実行させる設定方法です。すご〜くいまさらな感じはしますが・・・
ググってもWebブラウザからのステップ実行は結構あるのですがCommandLineからのステップ実行の設定があまりなかったので同じように困った方の為に。
環境確認
あくまでも例ですので適宜自分の環境に置き換えてください。
Vagrant
- Vagrant ver1.5.2
- CentOS release 6.5 (Final)
- PHP ver5.4
- Apache
- Xdebug
環境設定
- IP:192.168.33.10(vagrant のデフォルト)
- docroot:/var/www/html/sample
ローカルPC
- 開発ツール:IntelliJ ver 12
- PHP
環境設定
- hosts設定:sample.com 192.168.33.10
- プロジェクトディレクトリ:~/Develop/sample/sample
http://sample.com/indeex.phpでアクセスできる状態から話を始めます。
まずXdebugの設定から
サーバー設定
php.iniの編集
以下をphp.iniの一番最後に追加してください。
1 2 3 4 5 6 7 8 |
zend_extension="/usr/lib64/php/modules/xdebug.so" xdebug.remote_enable=On xdebug.remote_connect_back=On xdebug.remote_autostart=On xdebug.remote_host=192.168.33.1 ← REMOTE_ADDRの値 xdebug.remote_port=9000 xdebug.max_nesting_level=1000 xdebug.idekey="SAMPLE" |
追加したらApacheを再起動。
IntelliJ 設定
続いて自分のPCのIntelliJの設定です。
Settings > Deploymentの設定
- [+]Add Server
- [Name:]Deploymentの名前を決める。今回はsampleで!
- [Type:] (Local or mounnted folder)を選択
connectionタブ
- [Upload/download project files] > [Folder: ]プロジェクトディレクトリを指定
- [Browse files on server] > [Web server root URL:]http://sample.com/indeex.phpを入力(多分なんでも良いと思う)
Mappingsタブ
- [Local path:]プロジェクトディレクトリを指定
- 下2つには/だけで良い
Settings > PHP > Serversの設定
続いてServersの設定をします。
- [+]Add
- [Name:]何でもよい!今回はsampleで!
- [Host]ローカルPCのhostsで設定したホスト名。今回はsample.comで!
- [Port]80(デフォルトのまま)
- [Debugger]Xdebug(デフォルトのまま)
- [Use path mappings]にチェックを入れる
- [File/Directory]のローカルPCのプロジェクトディレクトリ対になるように[Absolute path on the server]docrootを指定(今回は/var/www/html/sample)
こんな感じ
上記設定できたら「Apply」ボタン押下
これでSettingsの設定は終わり。
Run/Debug Configurationsの設定
続いてRun/Debug Configurationsの設定です。
ここにあります。
[+]押して[PHP Remote Debug]を選択
- [Name: ]何でも良い。今回はsampleで!!!
- [Configuration] > [Servers: ]ここは[Setting > PHP > Servers]で設定したnameを選択。今回はsampleで!!!
- [Configuration] > [Ide key(session id): ]ここではphp.iniで編集したxdebug.idekeyの値と同じものを入力する。今回はSAMPLEで!!
これで設定は終了。お疲れ様でした。
実行
長い設定お疲れ様です。いよいよ実行してステップ実行です。
簡単プログラムですね。
では
1 |
$a = 1; |
ここにブレイクポイントを置いてみます。
では実行してみます。
メニュー > Run > Debug ‘sample’を選択
これで待機状態になります。
入力!そしてEnterを ターーーーーーーーーーーン!!!!!!!!!!
Webブラウザは出来ました!
次はCommandLineからのステップ実行です。
待機状態まではWebブラウザと一緒なので省略します。
ターミナルからVagrant内に入り、phpで実行。
そしてEnterをまたまた ターーーーーーーーーーーン!!!!!!!!!!
!
キタ━━━━(゚∀゚)━━━━!!
やりました。
今回はここまで。まだまだ色々な設定方法があると思いますが今回はその一つを紹介させていただきました。
またここで紹介した開発ツールはIntelliJでしたがNetBeansやEclipseなどでも出来ると思いますので
ぜひ試してみてください。
こんにちは、フットサル大好きな二児のパパです。 たまにはいい記事書けるようにがんばります。よろしくお願いします~!