ATOM
Vagrant

Atom+Xdebug+Vagrantでデバッグ環境の構築

More than 1 year has passed since last update.


Atom+Xdebug+Vagrantの構築

忘れそうなのでメモ

環境

Vagrant 1.8.1

CentOs-6.6-64


Vagrant側


Xdebug(php、pear、Xdebug)のインストール

$ sudo yum install epel-release

$ sudo rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
$ sudo yum install -y --enablerepo=remi,remi-php56 php php-devel php-pear php-pecl-xdebug

インストールは完了、続いて設定を行います。


xdebug.iniの修正

$ emacs etc/php.d/xdebug.ini

下記を追加

zend_extension=xdebug.so


php.iniの修正

$ cp etc/php.ini etc/php.ini.org

$ sudo emacs etc/php.ini

下記を追記します。

php.iniでzend_extensionを指定すると

Cannot load Xdebug - extension already loaded

xdebug.iniと重複してしまうとダメなので、xdebug.iniのzend_extensionを削除して、こっちに記述しても問題ないです。

xdebug.remote_enable=1

xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=127.0.0.1 ←Vagrantのhost(vagrant ssh-congfigで確認)
xdebug.remote_connect_back=1
xdebug.remote_port=9000
xdebug.remote_autostart=true


上記の設定を確認

$ php -i |grep xdebug

xdebug
xdebug support => enabled


xdebug.remote_autostart => On => On
xdebug.remote_connect_back => On => On
xdebug.remote_cookie_expire_time => 3600 => 3600
xdebug.remote_enable => On => On
xdebug.remote_handler => dbgp => dbgp
xdebug.remote_host => 127.0.0.1 => 127.0.0.1
xdebug.remote_log => no value => no value
xdebug.remote_mode => req => req
xdebug.remote_port => 9000 => 9000


(上記のetc/php.iniで設定したXdebug設定が反映されているか確認)


apache再起動

$ sudo apachectl restart

以上でVagrant側の設定等は完了。


ローカル側

atomのinstall packagesからphp-debugを入れます。

https://atom.io/packages/php-debug


php-xdebugの設定

$ emacs ~/.atom/config.cson

以下を追加

  "php-debug":

ServerPort: 9000
PathMaps: [
"remotepath;localpath"
"/vagrant/app_name;/Users/your_name/app_name"
]

PathMaps: Vagrant上にあるパス;ローカルのパス に指定してください。

ServerPort:9000 上記のxdebug.remote_portの設定と合わせます。

以上で終了です。 :grin:

atomの左下のPHP Debugボタン、もしくはpackages→PHP-debugからtoggle debugging からデバッガ画面を表示、エディタ行左らへんをクリックでブレイクポイントを打てば確認可能。

利用方法は一般的なデバッガ同様で、step over、step in、step outなどができます。

正常に動作している場合は、Atomのphp-debugの画面でListening on port remote_port…がConnectedにパカパカ切り替わるので、そこで動作確認してください。


参考

http://qiita.com/magaya0403/items/ca876c9a66ecf1ac78d2

http://www.skyarch.net/blog/?p=3508

http://endoyuta.com/2014/03/03/phpstorm-vagrant%E3%81%AE%E4%BB%AE%E6%83%B3%E3%83%9E%E3%82%B7%E3%83%B3%E3%82%92%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%E3%83%87%E3%83%90%E3%83%83%E3%82%B0%E3%81%99%E3%82%8B/

http://taminif.blogspot.jp/2015/10/mac-php-atom-php-debug.html