弊社?御用達のナウでヤングなレンタルサーバー!ロリポップ!の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で開いてるフォルダがサーバーのどのフォルダに対応するかの指定です。
これでビタ~っとブレイクしてくれるはずです。