前段
以前、こちらでPhpStormでxDebugを使う記録を取ってました。
その後、なんか調子悪くなったhomesteadをdestroyしたせいで?
xdebugのインストールとかが吹き飛んだっぽくて、デバッグできなくなってしまいました。
php -m
でモジュール一覧を見ても、Zend Modulesにxdebugが表示されません。
なので、改めて入れ直します。
使えるかどうかの確認
毎回、「どこを確認すればええんや……」となるのでまとめておきます。
各設定が具体的にどうなっていればいいかは以下を参照してください。
PhpStormの設定
- PhpStorm
- Preferences
- Langages & Frameworks
- PHP
- Debug
- Xdebugのポート設定・・・xdebug.iniと同じかどうか
- Servers
- DebuggerをXdebugに設定したサーバーが作成されているかどうか
- Debug
- PHP
- Langages & Frameworks
- Preferences
- Run
- Edit Configurations
- PHP Remote Debug
- 上記サーバーを指定したデバッグ設定が存在するかどうか
- PHP Remote Debug
- Edit Configurations
仮想環境(Homestead)の確認
利用しているphpが7.2です。
(そういえばここの設定もどこかでいじった気がします)
php7.2に対応しているxdebug2.6はbeta版らしく、そのままでは使えません。
うまいこと設定を揃えてやる必要があります。
確認すべきポイントは以下。
設定ファイル
- /etc/php/7.2/mods-available/xdebug.ini
- 各行が存在すること
- zend_extension=/usr/lib/php/20170718/xdebug.so
- xdebug.idekey = "PHPSTORM"
- 各行が存在すること
- /etc/php/7.2/fpm/conf.d/20-xdebug.ini
- /etc/php/7.2/mods-available/xdebug.iniへのシンボリックリンクであること
phpのインストール状況
- php -v
- xdebugが表示されること
あるいは、
- php -m
- Zend Modulesにxdebugが表示されること
やったこと
今回は、Homesteadのdestroyが原因?っぽいので、PhpStorm側の設定は問題なく、仮想環境側のシンボリックリンク、xdebug.iniの追記、phpへのxdebugのインストール、の3点がされていない状況でした。
3点っていうか全部なんですけど。
で、あとは何度かやったことがあるような気のする対応をしました。
- php -iの結果を Xdebug: Support; Tailored Installation Instructions に貼り付ける
- 毎度お世話になります。
- 出てきた手順に沿ってxdebugをインストール
- 今後もdestroyすることはありそうなので、仮想環境の共有フォルダにtoolとか作成してその中で展開しました
tar -xvzf xdebug-2.6.0.tgz
cd xdebug-2.6.0
phpize
./configure
make
cp modules/xdebug.so /usr/lib/php/20170718
# このxdebug.so自体はすでに存在していたんですけどファイルサイズとか違うみたいなんで一応
##
## ちなみにこの手順自体もwizardに表示された内容丸パクリです
## なるべく鵜呑みにしないでwizardを使ったほうがいいです
##
vi /etc/php/7.2/cli/php.ini
# 適当な場所に以下を追加
# zend_extension = /usr/lib/php/20170718/xdebug.so
##
## /etc/php/7.2/mods-available/xdebug.iniの設定とダダ被りですが気にしないことにします
##
ここまでで、php -m
のZend Modulesにxdebugが表示されるようになりました。
502 Bad Gateway
で、喜び勇んでアクセスしようとしたら繋がらなくなってました。
502 Bad Gatewayとのこと。
焦りましたが、サービス再起動で直りました。
sudo service php7.2-fpm restart
xdebugも動くようになってました。