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

ntpdの確認

NTP(NetworkTimeProtocol)はサーバー管理には必須の機能の一つです。 ntpdの設定はここでは省略します。 ここでは確認方法を紹介します。 がまずは手動で同期させる方法です。 IN …

apple

Mac用HFS+の外付けディスクをWindowsで共有する

MacとWindowsで、共有の外付けハードディスクを使用したい・・・。 しかしMacで使用しているHFS+というフォーマットの外付けはWindowsではドライブの認識すらしてくれません。 一番簡単な …

PHPでは文字列の比較に==を使用してはいけない

==を使用しても、文字列の比較にはなりません。 必ず「===」もしくは「strcmp」を使いましょう! 否定する場合は「!==」です。 もし「==」とすれば”00″は&#822 …

yum install php-mysql

いつもyumで何をインストールしたらいいかを忘れるのでメモ・・・ 今回はphp.iniの設定等は省略です。 INDEX1 PHPをインストール2 php-mysqlをインストール3 (おまけ)PHPを …

linux

cron

windowsでいうところのタスクにあたります。 定期的にプログラムを実行することに使用します。 編集方法 #crontab -l 登録している一覧を確認 #crontab -e 編集 #cronta …