Topics
Prev Next

PHP Debugger Checklist

This topic provides a troubleshooting guide for debugging PHP scripts in Enterprise Architect.

Check Points

Check Point

Details

See also

System Requirements

  • Apache HTTP Web Server version 2.2
  • PHP version 5.3 or above
  • XDebug version 2.1.1

http://httpd.apache.org/ http://windows.php.net/ http://www.xdebug.org/download.php

Enterprise Architect

  • The model has an Analyzer Script configured to use the PHP XDebug platform
  • PHP source code has been imported into the model (for recording and testpoints)
  • When the PHP XDebug platform is selected from the 'Analyzer Script' dialog, default runtime settings are listed in the 'Connection' field:

        localpath:%LOCAL%

        remotepath:%REMOTE%

Either define local paths for these default variables or edit the script to provide actual paths.

For example: local source, remote source

     localpath:c:\code samples\vea\php\sample

     remotepath:webserver/sample

  • 'webserver' is a network or local share
  • 'sample' is a folder below share

PHP

In order to debug PHP scripts in Enterprise Architect, it is a requirement that the PHP is configured properly to load the XDebug extension.

Settings similar to these should be used:

  • [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

The IP address X.X.X.X refers to and should match the host specified in the model Analyzer Script.

The IP address is the address XDebug connects with and the same address the Enterprise Architect PHP agent listens on.

Apache

For debugging using Apache, these lines should be present in the Apache configuration file, httpd.conf:

     LoadModule php5_module "php_home/php5apache2_2.dll"

     AddHandler application/x-httpd-php .php

     PHPIniDir "php_home"

The value "php_home" is the PHP installation path (the path where php.ini and apache dll exist).

Troubleshooting

To prevent both PHP and Apache timeouts during a debugging session, these settings might require modification.

The settings were used while developing the PHP Debugging agent in Enterprise Architect.

PHP

File: 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

File: httpd.conf

; Enterprise Architect prevents timeouts while debugging php extensions

Timeout 60000