PHPのデバッグ チェックリスト

<< 目次を表示 >>

ページ位置:  プログラムの動作解析 > ビルドとデバッグ > 動作解析の設定 > デバッグ > PHPのデバッグ >

PHPのデバッグ チェックリスト

PHPのデバッグが上手く動作しない場合のチェックリストです。

 

 

トピック :

項目

説明

必要なシステム

チェック項目

Enterprise Architect

 

  • 動作解析の設定で、プラットフォームがPHP XDebugになっていること
  • PHPのソースコードがクラス図として読み込まれていること
  • 動作解析の設定で、以下の設定内容を状況に応じて適切に変更していること

localpath:%LOCAL%

remotepath:%REMOTE%

 

状況に応じて、これらの値が適切になるように設定しなければなりません。これらの値は、URLとソースコードのフルパスとを変換し、対象のクラスを確定するために利用します。

 

設定の一例は以下の通りです。

 

localpath:c:\code samples\vea\php\sample remotepath:webserver/sample

 

この際の設定は以下の仮定です。

  • webserverはネットワーク上のサーバか、ローカルマシンのサーバです。
  • sampleは共有フォルダ以下のパス名です。

PHP

PHPのスクリプトをデバッグするためには、XDebug拡張が読み込まれるように設定しなければなりません。

 

XDebugのバージョン3.0以降の場合の設定例は以下の通りです。:

  • [xdebug]
  • zend_extension=xdebug.so
  • xdebug.mode=debug
  • xdebug.mode=debug
  • xdebug.start_with_request=yes
  • xdebug.client_host=localhost
  • xdebug.client_port=9003

 

XDebugのバージョン3.0より前のバージョン場合の設定例は以下の通りです。:

  • [xdebug]
  • xdebug.extended_info=1
  • xdebug.idekey=ea
  • xdebug.remote_enable=1
  • xdebug.remote_handler=dbgp
  • xdebug.remote_autostart=1
  • xdebug.remote_host=X.X.X.X
  • xdebug.remote_port=9000
  • xdebug.show_local_vars=1

 

ポート番号は、動作解析の設定で定義した内容と一致しなければなりません。

 

XDebugが接続する先のIPアドレスは、Enterprise Architectの PHP agentが通信を待っているマシンである必要があります。

Apache

Apacheでデバッグする場合には、以下の内容がApacheの設定ファイルであるhttpd.confに含まれなければなりません。

 

LoadModule php5_module "php_home/php5apache2_2.dll"

AddHandler application/x-httpd-php .php

PHPIniDir "php_home"

 

ここで、php_homeはPHPをインストールした位置です。php.iniとapacheのdllが存在しなければなりません。

トラブルシューティング

PHPとApacheがデバッグ中にタイムアウトしないように、必要に応じて設定を変更する必要があるかもしれません。

以下の例は、Enterprise Architect内でデバッグする場合に利用できる設定です。

PHP

ファイル: php.ini

 

; Enterprise Architect prevents PHP timeouts when debugging PHP extensions

 

max_execution_time = 0

 

; Enterprise Architect prevents web server timeouts when debugging PHP extensions

 

max_input_time = -1

 

; Enterprise Architect logs errors

 

display_errors = On

 

; Enterprise Architect displays startup errors

 

display_startup_errors = On

Apache

ファイル: httpd.conf

 

; Enterprise Architect prevents timeouts while debugging php extensions

 

Timeout 60000