NetBeansIDEによるデバッグ機能付きPHPWeb開発環境の構築方法を備忘録として記しておきます。
以下の0~5の内容を順に実施します。
0.開発環境で導入するパッケージの確認
- CentOS
- Apache HTTP Server
- PHP
- XDebug
- Java SE Development Kit
- NetBeansIDE(PHP版)
1.CentOSをインストール
OSであるCentOSを普通にインストールします。
インストール時にパッケージをカスタマイズできるので、 その際にApacheとPHPをインストールすることもできます。
インストール後に別途ApacheとPHPをインストールする場合は、以下のコマンドyumを実行します(>はプロンプト)。
OSのbitによって、32bitならi686、64bitならx86_64にパッケージ名を適宜読み替えます。
この説明は、32bitOSを仮定して行います。
>yum install httpd.i686
>yum install php.i686
尚、yum search <パッケージ名>でcentosのリポジトリにあるパッケージを検索できます。
例:>yum search httpd.i686 ←Apacheのパッケージを検索
2.XDebugのインストールと設定
これはデフォルト設定のcentosリポジトリ内にはないので、以下のファイルをダウンロードし、rpmコマンドを使って インストールします(x.x.x-xはバージョン番号)。
php-pecl-xdebug-x.x.x-x.el6.i686.rpm
>rpm -i php-pecl-xdebug-x.x.x-x.el6.i686.rpm
尚、epelリポジトリを追加すれば、yumによるインストールが1と同様の操作でできるようになります。
インストールしたら、以下の場所にxdebug.iniファイルが作成されていることを確認します。
ファイルが無い場合は、『xdebug.ini』の名称でファイルを作成します。
場所:/etc/php.d/xdebug.ini
xdebug.iniファイルを、以下の内容に編集して保存します。
———————————————
; Enable xdebug extension module
zend_extension=/usr/lib/php/modules/xdebug.so
xdebug.idekey=netbeans-xdebug
xdebug.remote_enable=On
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
———————————————
3.Java SE Development Kitをインストール
ORACLE社のサイトからJava SE Development Kitを取得し、インストールします(xxxxはバージョン番号)。
jdk-xxxx-linux-i586.rpm
>rpm -i jdk-xxxx-linux-i586.rpm
4.NetBeansIDEのインストール
Netbeans.orgのサイトからNetBeansIDEを取得します(x.x.xはバージョン番号)。
netbeans-x.x.x-ml-php-linux.sh
Netbeans.orgのサイトのプラットフォームで『Linux(x86/x64)』を選択し、『NetBeans IDE ダウンロードバンドル』のPHP列下の『ダウンロード』ボタンを押します。
ダウンロードしたら、shファイルのディレクトリで以下を実行し、インストールウィザードに従って完了させます。
>./netbeans-x.x.x-ml-php-linux.sh
5.NetBeansIDEでのデバッグ実行の確認
NetBeansIDEを起動し、PHPのプロジェクトを1つ作り、phpinfo()メソッドをソースに記載し、PHP情報を表示できるようにします。
phpinfo()の行にブレークポイントを設定します。
デバッグ実行ボタンを押して、そのブレークポイントでデバッガが停止することを確認します。
これにて環境構築は終了です。
今回はローカルPC上にWebサーバーを立てる方法のため、XDebugによるデバッグで使用するポート(例では9000ポート)へのファイアウォールの許可設定は不必要です。
リモート接続にしたい場合は、指定ポートを開ける設定をする必要があります。
NetBeansIDEがXDebugにてデバッグできない場合、NetBeansIDEのウインドウの下部にあるステータスバーに、『接続を待っています…』メッセージが表示され続けます。
デバッグできずに上記のメッセージが表示された場合は、XDebugのリモートポート番号、ファイアウォールの許可設定、SELinuxの有効/無効を疑ってみると良いと思います。
特に、SELinuxは有効にしておくと嵌りやすいので、不要でしたら無効にしておくのが無難です。
簡単ですが、これにて終わります。