猫型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

ntpq -pの見方

ntpdを起動してもすぐには同期されません。 同期の状態を確認するのに使用するコマンドが ntpq -p です。 # ntpq -p remote refid st t when poll reach …

linux

E173: 編集すべきファイルが x 個あります

viでE173: 編集すべきファイルが x 個あります と表示されたことはないでしょうか・・・。 vi file.txt ] とタイプミスのために2つのファイルが開いただけでした・・・ 入門vi 第6 …

windows

Windowsのネットワークユーザーの変更・指定(netコマンド)

Windowsでは別サーバーの共有ディレクトリを参照する際にはユーザー名やパスワードを入力します。 そのユーザー名やパスワードは、参照しようとしているPCに登録されているユーザー名やパスワードです。 …

windows

連続していないパーティションの変更

Windows8を使用しています。 コンピューターの管理>ディスクの管理を使うと、 簡単にパーティションサイズの変更ができます。 しかしここで落とし穴がありました。 連続していないパーティションは結合 …

linux

viで行を削除する

INDEX1 カーソルのある行から削除する2 指定した行を削除する3 特定の行で、カーソルの前後を削除する カーソルのある行から削除する ノーマルモードで dd でカーソルのある行を削除できます。 数 …