2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Homesteadでxdebugが使えなくなったり502 Bad Gatewayとか言われたときの対応記録

Last updated at Posted at 2018-05-23

前段

以前、こちらでPhpStormでxDebugを使う記録を取ってました。

その後、なんか調子悪くなったhomesteadをdestroyしたせいで?
xdebugのインストールとかが吹き飛んだっぽくて、デバッグできなくなってしまいました。
php -mでモジュール一覧を見ても、Zend Modulesにxdebugが表示されません。

なので、改めて入れ直します。

使えるかどうかの確認

毎回、「どこを確認すればええんや……」となるのでまとめておきます。
各設定が具体的にどうなっていればいいかは以下を参照してください。

PhpStormの設定

  • PhpStorm
    • Preferences
      • Langages & Frameworks
        • PHP
          • Debug
            • Xdebugのポート設定・・・xdebug.iniと同じかどうか
          • Servers
            • DebuggerをXdebugに設定したサーバーが作成されているかどうか
  • Run
    • Edit Configurations
      • PHP Remote Debug
        • 上記サーバーを指定したデバッグ設定が存在するかどうか

仮想環境(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も動くようになってました。

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?