XDebug setting for debugging PHP in Vagrant

 

はじめに

前回、Vagrantを使ってVirtualBoxにCENTOSのPHP開発環境を構築しました。さらにそこから一歩踏み込んでIDEツール(PHPSTORM)で仮想マシン内のWEBサーバーで動くphpプログラムをデバッグする環境を作ります。

 
【VAGRANT+VIRTUAL BOX】ローカル環境にLAMP環境を構築する

 

 

準備

  • Vagrant+VirtualBox+LAMP環境
  • PHPSTORM

リモートデバッグの仕組みを理解するにはこちらのサイトが参考になります!

 

 

WEBサーバー側の設定

サーバー側の設定はローカル側のデバッガツールと同期できるようにXDEBUGを導入します。 すでに構築済みのVitrualBoxのLAMP環境に接続します。 コマンドプロンプトを立ち上げてVagrantコマンドでSSH接続します。

 

 

準備

vagrant ssh

 

レポジトリの追加

EPELリポジトリ

yum install epel-release

または

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

Remiリポジトリ

rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

 

 

PHPのバージョンアップ

 

古いバージョンの削除

rpm -qa | grep php

既に古いバージョンがインストール済みの場合、削除しなくてもアップデートされるが、一応消しておく。

yum remove php-*

 

PHP5.6をインストール

yum install --enablerepo=remi,remi-php56 php php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt

 

 

pearをインストール

Xdebugを導入するにはpeclが必要です

sudo yum install php-pear

 

 

xdebugのインストール

xdebug ver2.5.5をインストールします。
phpのバージョンが5.6以上で動作します

sudo pecl install -a xdebug

 

 

php.iniを編集

xdebugをPHPで認識できるようにします。

 

xdebugの設定を追加

zend_extension=xdebug.so 
xdebug.remote_enable=on 
xdebug.remote_autostart=on 
xdebug.remote_handler=dbgp 
;VM の private_network が 192.168.33.xxx の場合の設定 
xdebug.remote_host=192.168.33.1 
xdebug.remote_port=9001 
;デフォルトの9000だとたまにエラーになる場合がある 
xdebug.idekey="phpstorm"

 

 

再起動&確認

php -i | grep xdebug
# xdebug support => enabled
systemctl restart httpd

 

 

参考

インターネット越しのクラウドサーバーをデバッグする方法が紹介されています