bz0のにっき

quick and dirty prototype

Vagrant+PHP+NetBeans XDebugの設定

PHPデバッグの効率化・ソースコードリーディング促進の為に
XDebugを入れてみました。

環境

CentOS6.5
PHP5.6
Vagrant1.8.4
xdebug 2.5.0
netbeans8.0

Vagrant

IP:192.168.33.10
SSH:127.0.0.1:2222

サーバ側の設定

xdebugのインストール

yum -y install php-devel php-pear
pecl install xdebug
エラーの対処

PHP7で「pecl」をやるとエラーが起きた。

# pecl install xdebug
Parse error: syntax error, unexpected 'new' (T_NEW) in /usr/share/pear/PEAR/Frontend.php on line 91

PEARをアップグレードします。

# wget http://pear.php.net/go-pear.phar
# php go-pear.phar

PECL error on launch - "Parse error" · Issue #123 · gplessis/dotdeb-php · GitHub

php.ini設定

/etc/php.ini

zend_extension=/usr/lib64/php/modules/xdebug.so

[XDebug]
xdebug.remote_autostart=On
xdebug.remote_enable=On
xdebug.remote_host=192.168.33.1
xdebug.remote_port=9000
xdebug.remote_log=/var/log/xdebug.log
xdebug.remote_mode=req
xdebug.idekey=netbeans-xdebug
xdebug.remote_handler=dbgp

zend_extensionで指定するxdebug.soのパスは
xdebugインストール完了のログに書いてあるのでそれを指定します。

Build process completed successfully
Installing '/usr/lib64/php/modules/xdebug.so'
install ok: channel://pecl.php.net/xdebug-2.5.0

xdebug.remote_hostには、VagrantのホストのIPを設定しますが
「192.168.33.10」を「192.168.33.1」にして下さい。

apacheの再起動

service httpd restart

NetBeansの設定

ツール > オプション > PHP > デバッグ
f:id:bz0:20170201011159p:plain

プロジェクト > 実行構成
f:id:bz0:20170201011438p:plain

リモート接続
f:id:bz0:20170201011615p:plain

ファイアウォールの許可

xdebugで利用しているポートを許可します。
(デバッグ実行すると、下記が表示されるので「アクセスを許可」でもOKです)
f:id:bz0:20171003234244p:plain

NetBeansデバッグ実行

デバッグ実行してみると、下記のように
設置したブレークポイントで止まってくれるようになります。

f:id:bz0:20170201012438p:plain