猫型iPS細胞研究所

Windows、Linux、iOS、DB、Network

Linux Windows

WindowsのeclipseからLinuxのPHPをリモートデバッグする(2)WindowsのEclipseの設定

投稿日:2013年7月20日 更新日:

前回の
WindowsのeclipseからLinuxのPHPをリモートデバッグする(1)Linuxにxdebuをインストールする
で紹介したxdeugのインストールが前提となります。

ここでリモートデバッグにおいて注意しなくてはならないことがあります。
eclipseでデバッグする際のsrcコードはどうするかという点です。
eclipseでデバッグするためには、当然eclipseにソースコードをインポートする必要があるという点です。

私が調べたところ、Linuxにsambaの設定をしてLinuxのソースコードをWindowsで共有して使用するという方法ですが、上手くできませんでした・・・ :x001:
今までsambaをあまり使っていなかったので/var/www/html/配下のコードを書き込みモードで共有することができなかったのです。

eclipseでコードを編集してデバッグしたら、リモート上でも編集した結果をもってデバッグしたいと思うのは当然の気持ちです。

そこで私がお勧めするのはlinux上のPHPのソースコードを一旦Windowsにコピーしてそれをeclipseに取り込む方法です。
そしてWindows上でファイルを編集した場合は、winscpのミラーリング機能で自動的にlinuxにも反映させるのです。
これでコードの編集はWinodws上で行い、linux上での実行結果をWindows上でもデバッグできるのです。

eclipseの設定

まずはeclipseのダウンロードですが、色々バージョンがあってこまるところです。
私は32ビットのWinodwsXPにzend-eclipse-php-3.2.0.v20130625331-Win32.zip
をダウンロードして入れました。

Zend.comからZend Eclipse PDTをダウンロードできます

デバッグに必要なプラグインが入っているので、任意の場所に解凍するだけで使用できます。

まずは
Winow>Preferences>PHP>debug
 「PHP Debugger」を「XDebug」にします

eclipse1

デバッグとは直接関係ありませんが、
Winow>Preferences>General>Workspace
 Text File Encodeing をOhter:UTF-8
にしておくと文字化けを解消できます。
eclipse2

次に新しいプロジェクトを作成しておきます。
プロジェクトがないとデバッグできないからです。
テーマはリモートデバッグですが、Local PHP Project でOKです。
eclipse3

Settingの「Project Name」はLinux側でWebに公開しているルート配下のディレクトリ名にしておくとよいでしょう。
/var/www/html/web/・・・
なら「Project Nmae」はwebがよいでしょう。
結局プロジェクト名がソースのトップディレクトリになるので、後で管理しやすい名前がいいと思もいます。
もちろん後で変更できます。
「Locaton」はWinodws側のソースファイルの場所です。デフォルトのworkspaceでよいでしょう。
eclipse4

Launch Settingは初めにアクセスするURLになるだけです。
後でテストする際に変更することもあるでしょう。
ログインのURLになるように入れておけば問題ないでしょう。
eclipse5

最後のLibrariesはよくわからないのでとりあえず不要です。

次にLinux側のPHPのソースコードをWindowsにコピーしておきましょう。
出来上がったプロジェクトを右クリックしてImportを選択します。
Generl>Filse Systemを選択して、Linuxからコピーしてきたフォルダを選択し、全てをインポートします。
From directoryはLinuxからコピーしてきたソースコードのディレクトリ。
into folderはプロジェクトを作成したときに指定したソースファイルの場所です。
今回はWorkspace配下のプロジェクト名のフォルダです。

これでlinux上のソースとWindows上のeclipseのプロジェクトソースが一致しているので、
プロジェクトをdebugします。

debugするにはDebug Configrationsが必要です。

Nmaeはデバッグの名前なのでなんでもOKです。

ServerはNewをクリックして、新しいサーバーを作成します。
ここにはlinuxのサーバーのURLを指定しておけばOKです。
これでDebug ConfigrationsのServer > PHP Serverにlinuxサーバーが指定できます。
Fileは初めにアクセスするindex.phpでもBrowseで選択しておきましょう。

重要なのはURLのところです。
Auto Generateのチェックは外しておきます。
Debug時にアクセスするURLになるので、テストをする際は必要に応じて変更しましょう。
eclipse6

次にDebuggerタグも重要です。
DebuggerのServer Debuggerを「XDebug」に変更しておきます。
BreakpointのBreak at First Lineも初めはチェックを入れておきましょう。
上手くデバッグできると、初めてにブレークポイントがなくてもストップしてくれます。
eclipse7

Deploymentは不要です。今回はwinscpのミラーリング機能でソースコードを即時反映させるからです。

Commonタグも特に不要でしょう。
デバッグ単位でEncodeingを指定ができますが、Window>Generalで先ほど指定してあります。

これで準備は完了です。
デバッグしてみてください。
きっと初めのステップで止まってくれます。 :x002:

winscpでミラーリングする

ここまででデバッグはできているはずです。
しかしwindowsのeclipseで変更したソースはデバッグには当然反映されません。
実行しているのはリモートのlinux上のソースだからです。
winscpをのミラーリングでソースの同期をとることで、eclipseの変更をそのままリモートのlinuxに反映できます。

持っていない人はここからダウンロードしておきましょう。

やり方はとても簡単です。
windows上のソースのディレクトリとlinux上のソースのディレクトリを表示させて、
メニューのコマンド>ミラーリングアップロードを選択して実行するだけです。
ファイルの削除とサブディレクトリにチェックを入れておきましょう。
winscp1

winscpには優れた機能がたくさんあります。
ここでは一番簡単な方法を紹介しただけです。
なれてきたら検索してみてください。

以上2回にわたってWindowsのeclipseからLinuxのPHPをリモートデバッグするでした :x002:

Gooleアドセンス用336

Gooleアドセンス用336

-Linux, Windows
-

執筆者:

関連記事

linux

169.254.0.0 は APIPA (Automatic Private IP Addressing)

routeコマンドをしてみて下さい。 # route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use …

linux

ntpdの設定

ntpの設定は/etc/ntp.confで行います。 serverさえ設定してしまえばいいわけですが、 その他設定も少しあります。 INDEX1 restric2 server3 driftfile …

linux

LV(論理ボリューム)の拡張

マウントされているサイズ(/varなど)を拡張する場合には、論理ボリュームを拡張します。 以下の作業はオンラインで可能です。 INDEX1 マウントされている論理ボリュームを確認する2 論理ボリューム …

c# デリゲート(delegate)とは

デリゲートの説明としてよく 処理の委譲とか関数ポインタとかでてきますが、 cはさわりしか知らないので、なかなか理解できませんでした。 結局のところ デリゲートを使用すると 関数を引数に利用できる! と …

linux

digコマンドでDNSを調査する

digコマンドを使用すれば、指定したDNSサーバーに問い合わせができます。 dig @[DNSサーバー] [調べたいドメイン] です。 下記は8.8.8.8(googleDNS)にntp.nict.j …