macのsublimetext3にxdebugをインストールしたときのまとめです。
sublime text は軽くてすごく使いやすいんですけども、もっとコーディングのスピードを上げられないかな。と思いまして、色々効率化を施策を試行錯誤。
あれ? そういえば、eclipseみたいに実行中に配列の中身とか確認できないな。と、思ったわけです。
いま自分のデバッグの仕方として、$this->log()(CakePHP)、print_r()、var_dump()等など。。。。
これらも便利なんですけど、一旦記述して、実行して、書きなおして・・・ってフローが面倒い。
これを無くすだけでも、もっと早くなると思ったので、探してみました。そして、Xdebugと出会ったというわけです。
早速インストール作業に入りました。ちなみに、2時間かかりました。(’Д`;
環境
- mac version
$ sw_vers ProductName: Mac OS X ProductVersion: 10.10.2 BuildVersion: 14C1514
- apache version
$ apachectl -v Server version: Apache/2.4.9 (Unix) Server built: Sep 9 2014 14:48:20
- php version
$ php -v PHP 5.5.14 (cli) (built: Sep 9 2014 19:09:25) Copyright (c) 1997-2014 The PHP Group Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies with Xdebug v2.3.2, Copyright (c) 2002-2015, by Derick Rethans
Xdebugをインストール
私はコンパイルからやりました。
xdebugをMAC OSXにインストールする方法。xdebug.so | WebEssentials
ここと同様なことを実施しますと、うまくいきます。
ちょっとだけ補足すると、保存パスは下記へ保存してください(macの場合)
$ ls /usr/lib/php/extensions/no-debug-non-zts-20121212/
また、ダウンロードするファイルは、色々あるので迷うと思いますが、VCってやつはWindows用らしいので、macの皆さんはsourceのtgzをダウンロードしてください。
php.iniに設定
php.iniの最後に下記設定を追加
[xdebug] zend_extension="/usr/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so" xdebug.profiler_output_dir="/tmp/xdebug/" xdebug.profiler_enable=On xdebug.remote_enable=On xdebug.remote_host="localhost" xdebug.remote_port=9000 xdebug.remote_handler="dbgp" xdebug.idekey="sublime.xdebug"
ちなみに、「profiler_output_dir」は任意ですが、もし存在しないディレクトリであれば、作成しておいてください。
$ sudo mkdir /tmp/xdebug $ sudo chmod 777 /tmp/xdebug
設定変更したらApacheを再起動
んで、ターミナルで、phpのバージョン確認か、phpinfo()でxdebugが適応されているか確認します。
- ターミナルの場合
$ php -v PHP 5.5.14 (cli) (built: Sep 9 2014 19:09:25) Copyright (c) 1997-2014 The PHP Group Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies with Xdebug v2.3.2, Copyright (c) 2002-2015, by Derick Rethans
- phpinfo()の場合(ブラウザの検索で「xdebug」で検索する)
sublime text 側での説明
パッケージコントローラ -> install -> xdebug client をインストールします。
インストールがうまくいったら、右クリックのモーダルか、画像のようなTools -> Xdebugが選択できるようになる。
インストールが完了したら、デバッグしたいプロジェクトをsublime Text で開きます。
プロジェクト上にsublime text 用のプロジェクトファイル(xxx.sublime-project)を作成します。
新規ファイルを用意して、下記内容を保存する。
{ "folders": [ { "path": "." } ], "settings": { "xdebug": { "close_on_stop": true, "super_globals": true, "debug": true, "break_on_start": true, "url": "http://localhost:8080/" } } }
ちなみに、ほとんど意味はわかっておりません(∩´∀`)∩ワーイ
urlだけかな? urlの値はwebサーバからアクセスする値に変更してください。(ポートも含みます)
/etc/bashrcファイルに追記
これもよくわかりませんが、下記ファイルに下記内容を追記
$ sudo vim /etc/bashrc # User specific aliases and functions export XDEBUG_CONFIG="idekey=sublime.xdebug" # 自分は真ん中ぐらいに追記しました
ブレークポイントをソース上に付与して、Debugg Start !!
macであれば、「Command + F8」で、指定の行にブレークポイントをうつことができます。
指定したあとに、Tools -> Xdebug -> Start Debugging(Launch Browser) を、選ぶとブラウザが起動して読み込みすると思います。
で、読み込みでずっと止まっていたら、一旦 sublime text の画面に戻ってください。
すると・・・
でてた!!
やったね。これでいい感じにデバッグできそうやで!
Xdebugの使い方はまだわかんないけど、使いながら覚えていこうと思う。
なんかすらすらできたような感じだけど、2時間掛かりましたからね。2時間(´Д`;