Windows7+EclipseからLinuxサーバー上のCakePHPアプリをリモートデバッグする方法です。
以下の環境で動作確認しています。
- 開発クライアントPC
Windows7
Eclipse for PHP Developers Version:3.0.2(Indigo)
- 開発サーバー
CentOS 6.2
PHP 5.3
xdebug 2.1.4
開発Webサーバー(CentOS)
# yum install php-pecl-xdebug
/etc/php.d/xdebug.ini
; Enable xdebug extension module zend_extension=/usr/lib64/php/modules/xdebug.so xdebug.remote_enable=1 xdebug.remote_connect_back=1 ;xdebug.remote_log="/tmp/xdebug_log"
xdebug.remote_connect_back=1とすると、任意のPCからリモートデバッグできるようになります。
xdebug.remote_logでログファイルのパスを指定するとxdebugのログが出力されます。リモートデバッグがうまく動作しないときに参考になります。
なお、上記のxdebug.iniはリモートデバッグするのに必要最低限の設定です。
必要に応じて他の項目を指定してください。
Eclipse
Window -> Preferences
Eclipse全体の設定です。
PHP -> Executables
Windows7側にインストールしたphp.exeのパスを指定します。
xampp等を使うのがお手軽です。
PHP -> PHP Servers
- Server
Base URL: 開発Webサーバー側のベースURL
Local Web Root: 開発WebサーバーのBase URLに対応するクライアントPC側の物理パス
- Path Mapping
Path on Server: 開発Webサーバー上の物理パス
Path in Workspace: クライアントPC上の物理パス
(WorkspaceまたはFileSystemのいずれかで指定します)
デバッグ設定
Debug Configurationsから設定します。
- Server
Server Debugger: “XDebug”
PHP Server: PHP Serversで設定済みのものから選択します
File: クライアントPC側のapp/webroot/index.phpを指定します。
※cakephpルート直下のindex.phpを指定するとrequireが正しく処理されません。
URL: Auto Generateで問題がある場合は、上のFile項目で指定したパスに相当する開発Webサーバー側のURLを指定します。