ITの隊長のブログ

ITの隊長のブログです。Rubyを使って仕事しています。最近も色々やっているお(^ω^ = ^ω^)

10分じゃできなかった!orz xdebugのインストール

スポンサードリンク

http://www.flickr.com/photos/87891920@N00/3299632622
photo by Steve Wilhelm



macのsublimetext3にxdebugをインストールしたときのまとめです。


sublime text は軽くてすごく使いやすいんですけども、もっとコーディングのスピードを上げられないかな。と思いまして、色々効率化を施策を試行錯誤。


あれ? そういえば、eclipseみたいに実行中に配列の中身とか確認できないな。と、思ったわけです。


いま自分のデバッグの仕方として、$this->log()(CakePHP)、print_r()、var_dump()等など。。。。


これらも便利なんですけど、一旦記述して、実行して、書きなおして・・・ってフローが面倒い。


これを無くすだけでも、もっと早くなると思ったので、探してみました。そして、Xdebugと出会ったというわけです。


早速インストール作業に入りました。ちなみに、2時間かかりました。(’Д`;


環境

$ sw_vers
ProductName:	Mac OS X
ProductVersion:	10.10.2
BuildVersion:	14C1514
$ apachectl -v
Server version: Apache/2.4.9 (Unix)
Server built:   Sep  9 2014 14:48:20
$ 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」で検索する)


f:id:aipacommander:20150406160217p:plain

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時間(´Д`;