Vagrant(CentOS7) + PhpStorm デバッグやり方

広告

大規模な開発や、オブジェクトを扱うような開発だといくらPHPでもエディタで限界を感じる時がある。
そんなワケで最近PhpStormを使用することになりました。
今回はPhpStormでデバッグモードを実行するまでの手法を残しておこうと思います。

前置き


以下、実行環境での説明となります。
・Vagrant内の環境はsynced_folderで設定
=>ローカルWindowsのファイルを仮想環境(CentOS7)と同期させている
・仮想環境でLAMP環境が整っていること + PhpStormがインストールされてること

デバッグまでやることはざっくり以下3ステップ。
①Xdebugダウンロード
②phpiniの設定
③PhpStormの設定

Windowsns内にすべて開発環境をそろえている方は以下記事が参考になります。
Windows PhpStorm デバッグ やり方

それではやっていきます。


Xdebugを利用できるかチェック


導入大前提になりますが、そもそもXdebugが利用できるかチェックしましょう。

まずphpinfoをブラウザに表示します。
ここでDebug Buildが「no」になっている非デバッグ版のPHPであればXdebugを利用できます。




Xdebugの導入


Xdebugダウンロード


$ yum -y install --enablerepo=remi-php72 php-xdebug

ちなみにPHPはRemiレポジトリから7.2をインストールしてます。
そのため適宜、ver箇所は差し替えてください。

ダウンロードができたか確認してみましょう!
php.dフォルダに追加されているはずです。

$ ls -l /etc/php.d
[root@localhost php.d]# ls -l /etc/php.d
total 188
-rw-r--r--. 1 root root 37848 Oct 31 14:05 15-xdebug.ini // !!これ!!
-rw-r--r--. 1 root root 50 Oct 22 09:19 20-bcmath.ini
-rw-r--r--. 1 root root 44 Oct 22 09:19 20-bz2.ini
-rw-r--r--. 1 root root 54 Oct 22 09:19 20-calendar.ini
-rw-r--r--. 1 root root 48 Oct 22 09:19 20-ctype.ini
-rw-r--r--. 1 root root 46 Oct 22 09:19 20-curl.ini
-rw-r--r--. 1 root root 44 Oct 22 09:19 20-dom.ini
-rw-r--r--. 1 root root 46 Oct 22 09:19 20-exif.ini
-rw-r--r--. 1 root root 54 Oct 22 09:19 20-fileinfo.ini
-rw-r--r--. 1 root root 44 Oct 22 09:19 20-ftp.ini
-rw-r--r--. 1 root root 42 Oct 22 09:19 20-gd.ini
-rw-r--r--. 1 root root 52 Oct 22 09:19 20-gettext.ini
-rw-r--r--. 1 root root 48 Oct 22 09:19 20-iconv.ini
-rw-r--r--. 1 root root 46 Oct 22 09:19 20-json.ini
-rw-r--r--. 1 root root 54 Oct 22 09:19 20-mbstring.ini
-rw-r--r--. 1 root root 52 Oct 22 09:19 20-mysqlnd.ini
-rw-r--r--. 1 root root 44 Oct 22 09:19 20-pdo.ini
-rw-r--r--. 1 root root 46 Oct 22 09:19 20-phar.ini
-rw-r--r--. 1 root root 48 Oct 22 09:19 20-posix.ini
-rw-r--r--. 1 root root 48 Oct 22 09:19 20-shmop.ini
-rw-r--r--. 1 root root 56 Oct 22 09:19 20-simplexml.ini
-rw-r--r--. 1 root root 52 Oct 22 09:19 20-sockets.ini
-rw-r--r--. 1 root root 52 Oct 22 09:19 20-sqlite3.ini
-rw-r--r--. 1 root root 52 Oct 22 09:19 20-sysvmsg.ini
-rw-r--r--. 1 root root 52 Oct 22 09:19 20-sysvsem.ini
-rw-r--r--. 1 root root 52 Oct 22 09:19 20-sysvshm.ini
-rw-r--r--. 1 root root 46 Oct 22 09:19 20-tidy.ini
-rw-r--r--. 1 root root 56 Oct 22 09:19 20-tokenizer.ini
-rw-r--r--. 1 root root 44 Oct 22 09:19 20-xml.ini
-rw-r--r--. 1 root root 56 Oct 22 09:19 20-xmlwriter.ini
-rw-r--r--. 1 root root 44 Oct 22 09:19 20-xsl.ini
-rw-r--r--. 1 root root 50 Oct 22 09:19 30-mysqli.ini
-rw-r--r--. 1 root root 56 Oct 22 09:19 30-pdo_mysql.ini
-rw-r--r--. 1 root root 58 Oct 22 09:19 30-pdo_sqlite.ini
-rw-r--r--. 1 root root 46 Oct 22 09:19 30-wddx.ini
-rw-r--r--. 1 root root 56 Oct 22 09:19 30-xmlreader.ini
-rw-r--r--. 1 root root 47 Sep 9 12:10 40-zip.ini
-rw-r--r--. 1 root root 614 Oct 31 08:21 50-phalcon.ini

15-xdebug.iniが追加されていればOK!


iniファイルの編集


追加された15-xdebug.iniを編集
$ vi /etc/php.d/15-xdebug.ini

最終行に以下を追加します
[XDebug]
xdebug.dump_undefined = 1
xdebug.remote_enable = 1
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_autostart = 1
xdebug.remote_connect_back=1

iniを編集したのでapacheを再起動して設定を反映させます。
$ systemctl restart httpd



PhpStormの設定



Configurationの作成


Configurationの作成が済んでいたらスキップしてください。


PhpStormを開くとまっさらな状態の場合、以下のようになってると思います。
「Add Configuration」を押下して実行形式を作成します。




実行形式を新規追加します。左上のプラスボタンを押下してください。




A)「PHP Web Page」を選択してください。
B) Serverはホストを指定します。※設定値に合わせ適宜変更してください。
C) 実行時のURLを指定します。とりあえずドキュメントルートに指定します。



最後にOKで設定を適用しましょう。

パスのマッピング


止めたい箇所にブレークポイントをはります
※自分はPhalconフレームワークを採用してるため、Phalconエントリーポイントのindex.phpにブレークポイント張ってます。



受話器みたいなアイコンを押下してデバッグモードをONにします(デバッグモードのON/OFFはここで切り替えます)



虫のようなアイコンをクリックします。



PHP Web Pageで設定したWEBページが開きます。
ちなみに以下ポップアップが表示されたら「Accept」を押下してましょう。




ブレークポイント箇所のソースコードが実行されると、デバッグスペースに以下表示されると思います。


ここでは「Cannot find local copy or the file on server /var/www/html/devblog/public/inde.php」と、いわれています。
次画面でローカルパスと仮想環境上にあるソースをマッピングします。
「Click to set op path mappings」リンクを選択しましょう。

まず、「Use path mappings(select if the server is remote or symlinks are used)」にチェックをいれます。
そうすると、以下画像のようにプロジェクトディレクトリが表示されるので、そこから仮想環境上のindex.phpのパスを「Absolute path on the server」に指定しましょう。


これでマッピングは完成です!と、同時に、ブレークポイントでちゃんと止まっているはず(^^♪

ちなみに、パスマッピングの設定は
PhpStormのヘッダメニュー「File」 => 「Setting」 => 「Languages & Frameworks」 => 「PHP」 => 「Debug」 => 「Servers」
からも設定できます。





使いかた


最低限のデバッグモードの使い方をメモします。
A) 次にあるブレークポイントまで処理を進めます。
B) デバッグモードを終了します。
C) 一行進みます
D) 処理(メソッド等)に階層があれば階層内に進みます。
E) このスペースに変数やオブジェクトの中身が表示されます。




以上、これでかなり開発がはかどります!(^_-)-☆
広告


関連記事
Windows PhpStorm デバッグ やり方

Windows PhpStorm デバッグ やり方

PHP 2018-08-26

Profile