PHP統合環境 PDT2.1インストール(Windows編)

これまでPHPについては仕様等は書いたり、ちょっとソースをいじるだけでしたが、本格的にコーディングする機会はありませんでした。今回、オープンソースのLMSに手を加えていこうと思い、デバッカが統合された環境としてPDTをインストールしてみました。
以前からいじってみようと思い、Eclipse3ではじめるPHP5プログラミング入門EclipsePDT対応を買っておいたのですが、本通りやってもまるで駄目。サポートサイト見ても何も役に立たない。改訂版が出ているのでちょっと確認してみたが、あまりよろしくない。
いろいろ調べてみて動作するようになったので、以下にポイントを書いておきます。

必要なソフトウェア

PDT本体

http://www.eclipse.org/pdt/downloads/
PDT 2.1 SR-2 All In Onesをダウンロード。
c:\tools\eclipseフォルダに解凍。

日本語化

Pleiades を適応する。
http://mergedoc.sourceforge.jp/
最新版(1.3.x)をダウンロード。
解凍すると「pugins」「fetures」フォルダがあるのでeclipseのフォルダに上書きコピー。
eclipse.iniファイルに以下の行を追加

-javaagent:plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar

この時点でeclipseを起動するとメニュー日本語になっているはず。

Xampp

http://www.apachefriends.org/jp/xampp-windows.html
XAMPP Windows版 1.7.3のEXE形式をダウンロード。
exeを実行し、デフォルトのままでインストール。

・appcheの起動確認
ブラウザでhttp://localhost/が見えることを確認。
もし、見えない場合はapacheが起動されているかxamppのコンパネで確認。
一度、停止してから再起動した時に、busyでrunningにならない場合はport80が別アプリで利用されている可能性が高い。

netstat -ano

でポート80のlisten状況を確認する。80が使われている場合はプロセスIDからアプリを特定する。
プロセスはtasklistコマンドかタスクマネージャーで確認する。
参考:
http://www.atmarkit.co.jp/fwin2k/win2ktips/236portcheck/portcheck.html
Skypeなどがよくぶつかるらしい。(私自身はskypeは未使用)
PIDが4など若い場合はSystemであることが多く、この場合は特定が難しい。
開発者のマシンの場合、IISSQL Server
Reporting Servicesで或可能性が高い。サービスを停止してnetstatコマンドで確認していく。
(私の場合はSQL Reporting Servicesだった)
言語を選択するとXAMPPのメニュー画面が表示される。こちらから様々な管理ツールへアクセス可能。

設定

デバッカxdebugの設定

XAMPPにはあらかじめインストールされているので設定のみ行えば良い。
●C:\xampp\php\php.ini
[XDebug]のいくつかの行を有効にする。
昔のバージョンに比べて設定が増えているが、とりあえず昔のバージョンにあったもののみ検索して有効にする。
zend_extensionは[PECL]に移動してあるので注意。
apache配下のphp.iniは設定する必要はない。(デフォルトで存在しない)

[PECL]
zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
[XDebug]
xdebug.remote_autostart=off
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=localhost
xdebug.remote_port=9000

phpinfo()でxdebugの項目が表示されれば有効になっている。
xamppのメニュー画面にphpinfo()が用意されているので、それにより確認可能。

Eclipseの設定

「ウィンドウ」−「設定」で行うが設定項目に日本語は極力使用しないように!!
日本語を使うと設定が壊れる場合があります。
設定が壊れた場合はworkspace/.metadataフォルダを削除してから再設定を行う。
(前記の書籍では日本語で設定している。この通り行うとファイルが破損する。新版では英語で設定しているが特記されていない。念のため、日本語の使用は避けた方がよいかと・・・)

ワークスペースの選択
デフォルトにしておく。
文字コード
今ならばUTF8を標準としたほうがよいので、変えておく。
[一般]-[ワークスペース]

・テキスト・ファイル・エンコード
その他ーUTF-8

PHPサーバー指定
[設定]-[PHP]-[PHPサーバー]
新規で作成する。この時、名前に日本語使うとエラーとなり設定ファイルが壊れます。

・名前
workspace server
・document root
http://localhost/workspace

作成したらデフォルトにする。

PHP実行ファイル
[設定]-[PHP]-[PHP実行ファイル]
Webのみの場合は設定しなくてもよい?

・名前
php.exe
・実行可能ファイル・パス
C:\xampp\php\php.exe
PHPデバッカ−
XDebug

デバッグ設定
[設定]-[PHP]-[デバッグ]

PHPデバッガ
XDebug
・サーバ
workspace server
PHP実行可能ファイル
php.exe

PHPマニュアルの設定
[設定]-[PHP]-[PHPマニュアル]
 日本語のhelpのURLとWindows Help形式のマニュアルを追加しておく。

  1. OnlineのUEL
    1. http://jp.php.net/manual/ja/
  2. CHMのダウンロード先
    1. http://jp.php.net/get/php_manual_ja.chm/from/a/mirror

apacheの設定

利用するworkspace配下がapacheからhttp://localhost/workspaceとしてアクセスできるように設定しておく

●C:\xampp\apache\conf\httpd.conf

Alias /workspace/ "C:/Users/ユーザのフォルダ/workspace/"
<Directory "C:/Users/ユーザのフォルダ/workspace/">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>

設定後、apacheを再起動

動作確認

実行

[新規]-[PHP新規プロジェクト]でworkspace配下にプロジェクトを作成する。
[新規]-[PHPファイル]でPHPのファイルを作成する。(phpinfo.php等)
以下のコードを書き込む。

<?php
$x=10;
$y="20";
$z = $x+$y;
echo $x. "+" . $y . "=" . $z;
?>

作成したPHPファイル上で右クリックで[実行]-[PHP Webページ]を実行
実行されない場合は「apacheの設定」の設定を見直す。

デバッグ

3行目にブレイクポイントを指定。
作成したPHPファイルで右クリックで[デバッグ]-[PHP Webページ]を実行
画面がデバッグパースペクティブに変わり、1行目で停止する。(設定によっては1行目で停止しない。)
F6でステップオーバ実行となる。F6を実行する度に変数がモニタリングされる事を確認。

感想

以前の現場でプログラマー達は一切統合化環境を使わず、エディタのみでコードを記載し、デバッグもプリント文でこなしていました。
その方が効率が良いと言っていましたが、やはり統合環境を使った方が効率が良さそうですね。
Cの頃、デバッガを覚えるのが面倒だという人が多く、print文でひたすらデバッグしていた人達の事を思い出してしまいました。