Visual Studio CodeでXdebug、Vagrantじゃないよ!IDCFのKUSANAGIだよ!

弊社?御用達のナウでヤングなレンタルサーバー!ロリポップ!のPHP設定にも項目があるんで、できるんだろうなぁとは思っていたリモートデバッグ、Vagrant上の仮想サーバーではなく、リアルガチなインターネット上のサーバーでの話しです。

何言ってんだこいつって思われるかもしれませんが、Visual Basicな人間なのでサーバーで動いてるプログラムがローカルでデバッグできるってのが、理屈は分かっていても、なんか不思議っていうか~。実際やってみると意外と簡単で、そしてちょっと感動です。

今まで必要に迫られなかったんでやったことなかったんですが、今回、試しにEC-CUBE 3.0.10をIDCFのKUSANAGIで動かしてたところ、とあるプラグインがVagrant上では問題ないのにKUSANAGIでは止まるっていう現象に遭遇して、リアルガチなリモートデバッグに挑戦した次第です。ちなみにログにそれらしき箇所はなく、index_dev.phpも真っ白っていう状況でした。

 

実際やったのは、ちょっと前なんでうろ覚えですが、IDCFクラウドのKUSANAGIでリモートデバッグする場合の注意点を参考に書きます。

まず、xdebugのインストールが簡単なphp-fpmに切り替えました。

kusanagi php-fpm

xdebugをインストールするには

yum –enablerepo=epel,remi,remi-php56 install php-pecl-xdebug

設定ファイルの編集は

vi /etc/php.d/15-xdebug.ini

その中身は

; Enable xdebug extension module
zend_extension=xdebug.so

xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_connect_back = 1
xdebug.remote_port = 9200

; see http://xdebug.org/docs/all_settings

Xdebug用のブックマークレットを作ってるなら、autostartは不要です。詳しくは分かりませんがIDE keyに関係なくスタート、ストップできました。

portが9200なのは、php-fpmが9000を使ってるからです。

 

続いて、ポートの開放です。環境によっては簡単ではないかもしれません……社内とか。上記の9200がデバッグを行うPCに到達する必要がありますので、頑張って開放してください。ルーターとかセキュリティソフトとかをいじります。

 

最後にVisual Studio Codeでlaunch.jsonに今回のサーバーの設定を追加して準備完了です。設定はポート番号変えるくらいであとはVagrantのときと一緒です。

{
“name”: “Listen for XDebug IDCF”,
“type”: “php”,
“request”: “launch”,
“serverSourceRoot”: “/home/kusanagi/your-profile/eccube”,
“localSourceRoot”: “${workspaceRoot}”,
“port”: 9200
},

serverSourceRootはDocumentRootではありません。Visual Studio Codeで開いてるフォルダがサーバーのどのフォルダに対応するかの指定です。

 

これでビタ~っとブレイクしてくれるはずです。