TL;DR
大いなる勘違いをしていたので訂正します。
Xdebugのポートは9001にするけど、PHPStomeのXdebug用ポート設定は9000のままにするんだ!
Xdebugのポートを9001にして、PHPStomeのXdebug用ポート設定も9001にするんだ!
9000番はphp-fpmが使っている可能性があるぞ!
環境
Vagrant: 2.2.0
ゲストOS: CentOS 7.6.1810 (Core)
Apache: 2.4.6
PHP: 5.6.38
Xdebug:2.5.5
ホストOS: Windows 10 Pro 64bit ver. 1903
PHPStorm:2019.2.1 RC
Pleiades: 2019.08.21
Chrome: 76.0.3809.100 (Official Build) 64ビット
Xdebug helper: 1.6.1
前提
- Vagrantの仮想環境にOS、Apache、PHP、Xdebugがインストール済み
- WindowsにPHPStorm、Chrome、Xdebuger helperがインストール済み
- ソースコードはゲストOSにホストOSと同じものをアップロード済み
PHP の Xdebug 設定
Xdebugインストール時にphpのXdebug用設定ファイルが作成されたので、値を追記します。
php.iniへの追記でも大丈夫かもです(未検証)。
zend_extension = /usr/lib64/php/modules/xdebug.so ; Xdebugモジュールのパス
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_host = 192.168.33.1 ; デバッグ接続するPCのIPアドレス
xdebug.remote_port = 9001 ; デフォルトは 9000
xdebug.idekey = "PHPSTORM"` ; PHPStormとのセッションクッキー名
PHPStrom側の設定
- メニューより[ファイル]→[設定]を開きます。
- [言語 & フレームワーク]→[デバッグ]を選択します。
- [Xdebug]→[デバッグ・ポート]の値をデフォルト値「9000」から~~変更してはいけません
「9001」に変更します。iniファイルのうまく動作しなくなります~~うまく動作します!。xdebug.remote_port
と合わせると
- [言語 & フレームワーク]→[サーバー]を選択します。[+]でサーバーを追加します。
- [名前]に本設定の名前を付けます。「vagrant_server」としました。
- [ホスト]にドメイン or IPアドレスを入力します。「192.168.33.10」としました。Vagrantfileで設定しているものと同じIPアドレスです。
- [サーバ上の絶対パス]にVagrant仮想環境へアップロードした絶対パスを入力します。
- メニューより[実行]→[構成の編集]を選択します。
- 左上の[+]から、「PHP Remote Debug」を選択し、設定を追加します。
- [名前]に本設定の名前を付けます。「test_project」としました。
- [構成]→[サーバ]コンボボックスより先ほど作成したサーバー「vagrant_server」を選択します。
- [構成]→[Ide キー(セッション id)]にiniファイルで指定した「PHPSTORM」を入力します。ダブルクォーテーション(")は不要です。
Xdebug helperの設定
- Chomeのメニューより[設定]→[機能拡張]を選択します。
- Xdebug helperの[詳細]→[機能拡張のオプション]を選択します。設定画面が開きます。
- [IDE Key]の「Eclipse」を「PhpStorm」に変更し、IDEキーを「PHPSTORM」に変更します。
- [Save]ボタンをクリックして保存します。
以上の設定でブレークポイントが機能します。
Xdebugのポート番号とPHPStomeのポート番号を一致させると動かないとか意地悪ですねぇ…
私がどうかしてました。ガセ情報を流してスミマセン。😓
謝辞
本記事は @atchy@github 様の記事「Vagrantに構築した環境へPHPStorm + Xdebug でデバッグする」を参考に作成されました。
ありがとうございます!