今までPHPは本格的に触ったことはなく、必要があれば、テキストエディタでゴリゴリ書いて、アップロードかVimで直接編集が基本だった。
しかし、今後のことも考えて、PHPのIDE環境を構築してみる。
PHPのIDE環境はいくつかあるが、今回はNetBeans7.3を使うことにした。
ローカル側のOSは、Windows 7 64bit。
Apache, PHP, MySQLなどのインストールにはXAMPPを使用する。
( Windows8.1の場合: PHP開発環境を作る(NetBeans + XAMMP + Windows 8.1) )
XAMPPインストール
まずは、ローカルでにApache, PHP, MySQL 環境を作るためにXAMPPをインストールする。
XAMPPの日本語サイトに行き、最新版のXAMPP 1.8.2 インストーラーをダウンロード。
なんか、ウィルスソフト入ってるからたまに遅くなるかも~とか、WindowsだとUAC働いて正しく動かないかも~って言われるけど、OKでひたすら進める。
そしたらコントロールパネル立ち上がる。
今回はApacheとMySQLだけ起動させて、ApacheのAdminをクリックすると、ページが立ち上がり日本語を選ぶと、
これでインストールは完了。
phpInfo()も動いている。 コントロールパネルからAdminをクリックしてphpMyAdminが動いているの確認できたので、多分MySQLも動いている。
これで、Apache , PHP, MySQLがインストールできた。
NetBeansインストール
次にNetBeansをインストールする。
NetBeansの日本サイトにてNetBeansをダウンロード。
あとは、適当に「はい」「はい」と勧めればOK
ためしに新規プロジェクトを、XAMPPをインストールした公開ページに作ってみる。
まずは、ファイルメニューから新規プロジェクトを選択。
PHPのPHPアプリケーションを選択。
次に、プロジェクト名を任意の名前にして、XAMPPをインストールしたフォルダのhtdocsにソース・フォルダを作成。
PHPのバージョンやエンコーディングは各自環境で任意に決める。
次に、実行構成をローカルWebサイトにし、プロジェクトURLをlocalhostの直下にする。
あとは、次へと押して作成完了。
index.phpのみのプロジェクトができる。
//put your code here
の下に、echoコマンドで適当に文字を入れる。
あとは、左上の緑三角のテストを実行するか、F5を押せばブラウザが立ち上がりページが開く。
これで、作成し、ローカル環境でテスト表示することが可能になった。
XDebug設定
さて、しかしこのままでは、プログラムの途中で止めたり、動作中の変数を確認したりなどの、デバッグができない。
そこで、次にNetBeansでデバッグを行うためにXDebugを設定する。
下記を設定。(NetBenseサイトから抜粋)
1.XAMPP_HOME\php\php.iniを探して開きます。これはXAMPP 1.7.2で唯一のphp.iniファイルです。
2.zend_extension=”XAMPP_HOME\php\ext\php_xdebug.dll”行を探してコメント解除します。
3.xdebug.remote_host=localhost行を探してコメント解除します。設定の値をlocalhostから127.0.0.1に変更します。
4.xdebug.remote_enable=0行を探してコメント解除します。0を1に変更します。
5.xdebug.remote_handler=”dbgp”行を探してコメント解除します。
6.xdebug.remote_port=9000行を探してコメント解除します。
7.php.iniを保存します。
8.XAMPPコントロール・パネル・アプリケーションを実行し、Apacheサーバーを再起動します。
*ちなみに自分の環境では6がなかったので自分で追記した。
Apacheを再起動すると、php5ts.dllが無いだのエラーがでたが、ひとまず立ち上がった。
が、phpInfoにxdebugが見当たらない。
どうやらロード失敗のエラーだったようだ。
調べていると、zend_extension_tsと_tsをつけると読み込める場合もあるとかで変えてみた。
エラーはでなくなったが、やはりXdebugは動作していない模様。
色々調べるうちに、PHPのバージョンなどの違いでXdebugが上手く動かない場合があり、その場合は本家から現状に合うものを再度ダウンロードして配置するとよいらしい。
ということで、Xdebug本家で、自分のPHPバージョンに合うxdebug.dllを落とす。
ちなみにファイルの読み方は、VCがVisualStadioのバージョン情報で、TSがマルチスレッド対応のThreadSafeかどうかとかそんなんらしい。後は32bitか64bitか。
よくわからないので、とりあえず、32bitと64bitとTSとそうでないの4つ落とした。
んで、ext\xdebugというフォルダ作って4つ突っ込んだ。
そして、4つ並べてそれぞれテスト。
;zend_extension = "C:\xampp\php\ext\xdebug\php_xdebug-2.2.3-5.4-vc9.dll"
;zend_extension = "C:\xampp\php\ext\xdebug\php_xdebug-2.2.3-5.4-vc9-nts.dll"
;zend_extension = "C:\xampp\php\ext\xdebug\php_xdebug-2.2.3-5.4-vc9-x86_64.dll"
;zend_extension = "C:\xampp\php\ext\xdebug\php_xdebug-2.2.3-5.4-vc9-nts-x86_64.dll"
どうやら、64bit番は、エラーはでないが動作していないっぽい。
自分のマシンはWindows7 64bit なので、全部64bitにしていたが、ふと見ると、XAMPPのインストーラーって32bitしかないじゃないか・・・。
動作しているプロセスを見ると、xampp-control.exe*32 となっている。
32bitのアプリケーションから64bitのプロセスは基本使えなかったはず・・・。
んで、次にntsとついたThreadSafeじゃないバージョンは、php.dllがありませんとエラーがでて動かない・・・。なんのことやら。
最後に試した32bitのスレッドセーフなものは・・・動作した!!
いやぁ、ハマったハマった。
結局何が原因かいまいちわからなかったけど、同封されているxdebugのバージョンが古かったのかな・・・?
NetBeansでデバッグ
さて、いよいよNetBeansでデバッグ環境を作る。
ツールからオプションを選択し、PHPタブを選択する。
デバッガポートを先ほどXDebugで指定したポート番号にする。(xdebug.remote_port=9000)
これだけで設定は完了。
さて、あとは、好きなところにブレークポイントを入れてみたりして、緑三角の隣のデバッグよう緑三角を押せば、ブレークポイントで止まったり、ステップ実行などができるようになる。
ざっくりだが、これで、PHPの開発環境を作れた。
追記:なれきたらこれもどうぞ
XAMPPのバーチャルホストで複数サイトを管理