9
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

eclipseでPHPの開発環境を構築する。デバッグ(Xdebug)でブレークポイントを付けてステップ実行できるようにする

Last updated at Posted at 2019-07-31

eclipseでPHPの開発環境を構築する

eclipseを使ってPHP開発を行う為の設定をしていきます
ブレークポイントを付けてソース上の好きなところで一時停止してデバッグできるようにします
PHPerでeclipseを使っている人は少数かと思いますが、参考までに

必要なものをダウンロードする

まずは必要なものをダウンロードしましょう

Javaのインストール

eclipseはJava上で動きます
下記からJavaをダウンロードします
https://jdk.java.net/archive
解凍します
環境変数作成
名前:JAVA_HOME 値:解凍してできたフォルダのパス
環境変数修正
名前:PATH 値:解凍してできたフォルダ内のbinフォルダを追記
これでJavaのインストールは完了です

xamppのインストール

下記からxamppをダウンロードします
https://sourceforge.net/projects/xampp/files/
インストールします

eclipseのインストール

下記からeclipseをダウンロードします
http://mergedoc.osdn.jp/
解凍します
Windowsの場合7-Zip https://sevenzip.osdn.jp/を使って解凍します。そうしないと、パス長制限によりフォルダ名、ファイル名が正しく解凍されません

設定をする

eclipseの設定

Java、xampp、eclipseをインストールしたら設定を行っていきましょう
eclipseを起動します
a.png

  1. メニューバーのウインドウ→設定をクリック
    a.png

  2. Webブラウザーをクリック→好きなブラウザを選択→適用
    b.png

  3. インストール済みのPHPをクリック→追加をクリック
    c.png

  4. 参照からxampp内のphpを選択して次へを押下
    d.png

  5. デバッガーにXdebugを選択し完了を押下
    nginx、php-fpmを使っている人はphp-fpmのポートを9000でない値にするか、デバッガーのポートを9000でない値にするかどちらかにしてください。ポートはSELinuxで許可されているポートにしてください
    e.png

  6. サーバーをクリック→Default PHP Serverをクリック→編集をクリック
    f.png

  7. webサーバーのポートフォワードを80でない値にしていたり、ホスト名を変えていたりする場合、ベースURLを変更してください→デバッガータブを押下
    g.png

  8. デバッガータブでXdebug選択→完了
    nginx、php-fpmを使っている人はphp-fpmのポートを9000でない値にするか、デバッガーのポートを9000でない値にするかどちらかにしてください。ポートはSELinuxで許可されているポートにしてください
    h.png

  9. デバッグ→最初の行でブレーク外す→適用
    i.png

  10. デバッガーを選択→Xdebugを選択→構成をクリック
    j.png

  11. リモートセッションの受信でプロンプトを選択
    nginx、php-fpmを使っている人はphp-fpmのポートを9000でない値にするか、デバッグポートを9000でない値にするかどちらかにしてください。ポートはSELinuxで許可されているポートにしてください
    k.png

  12. 適用して閉じるをクリック
    l.png

php.iniの設定

デバッグできるようにphp.iniを修正しましょう
nginx、php-fpmを使っている人はphp-fpmのポートを9000でない値にするか、xdebug.remote_portのポートを9000でない値にするかどちらかにしてください。ポートはSELinuxで許可されているポートにしてください
xdebugのバージョンが合わない場合、下記から適切なものを落としてきましょう
https://xdebug.org/download.php

windowsの場合

同一windows上でeclipseとphpを動作させている想定です
php.iniに下記を追記

XDebug2系の場合

[XDebug]
;php_xdebug.dllのパスはxamppをインストールしたフォルダによって変えてください
zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
xdebug.remote_connect_back = 0
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "localhost"
xdebug.remote_mode = "req"
xdebug.remote_port = 9000
xdebug.remote_autostart = 1
;xamppをインストールしたフォルダによって変えてください
xdebug.trace_output_dir = "C:\xampp\tmp"

XDebug3系の場合

[XDebug]
;php_xdebug.dllのパスはxamppをインストールしたフォルダによって変えてください
zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
xdebug.discover_client_host = false
xdebug.client_host = localhost
xdebug.client_port = 9000
xdebug.mode = debug
xdebug.start_with_request = yes
;xamppをインストールしたフォルダによって変えてください
xdebug.trace_output_dir = "C:\xampp\tmp"

vagrant、docker tool box、vagrant上にdockerをインストールしている場合

ホストOSでeclipseを動かしゲストOSでphpを動かしている想定です
vagrantやdockerコンテナ内のphp.iniに下記を追記してください

XDebug2系の場合

[XDebug]
;xdebug.soの場所が違う場合、変えてください
zend_extension = /usr/lib64/php/modules/xdebug.so
;dockerのphp:<version>-apacheイメージの場合下記にあると思います
;dockerのphp:<version>-apacheイメージにxdebugをインストールした場合、
;zend_extensionを書かなくてもdocker-php-ext-xdebug.iniが自動で作成されその中に
;zend_extensionが書かれていると思います
;zend_extension = /usr/local/lib/php/extensions/no-debug-non-zts-20180731/xdebug.so
xdebug.remote_connect_back = 0
xdebug.remote_enable = 1
xdebug.remote_host = 10.0.2.2
xdebug.remote_port = 9000
xdebug.remote_handler = dbgp
xdebug.remote_mode = req
xdebug.remote_autostart = 1

XDebug3系の場合

[XDebug]
;xdebug.soの場所が違う場合、変えてください
zend_extension = /usr/lib64/php/modules/xdebug.so
;dockerのphp:<version>-apacheイメージの場合下記にあると思います
;dockerのphp:<version>-apacheイメージにxdebugをインストールした場合、
;zend_extensionを書かなくてもdocker-php-ext-xdebug.iniが自動で作成されその中に
;zend_extensionが書かれていると思います
;zend_extension = /usr/local/lib/php/extensions/no-debug-non-zts-20180731/xdebug.so
xdebug.discover_client_host = false
xdebug.client_host = 10.0.2.2
xdebug.client_port = 9000
xdebug.mode = debug
xdebug.start_with_request = yes

Docker for Windows、Docker for Macの場合

ホストOSでeclipseを動かしゲストOSでphpを動かしている想定です
dockerコンテナ内のphp.iniに下記を追記してください

XDebug2系の場合

[XDebug]
;xdebug.soの場所が違う場合、変えてください
;dockerのphp:<version>-apacheイメージにxdebugをインストールした場合、
;zend_extensionを書かなくてもdocker-php-ext-xdebug.iniが自動で作成されその中に
;zend_extensionが書かれていると思います
;zend_extension = /usr/local/lib/php/extensions/no-debug-non-zts-20180731/xdebug.so
xdebug.remote_connect_back = 0
xdebug.remote_enable = 1
xdebug.remote_host = host.docker.internal
xdebug.remote_port = 9000
xdebug.remote_handler = dbgp
xdebug.remote_mode = req
xdebug.remote_autostart = 1

XDebug3系の場合

[XDebug]
;xdebug.soの場所が違う場合、変えてください
;dockerのphp:<version>-apacheイメージにxdebugをインストールした場合、
;zend_extensionを書かなくてもdocker-php-ext-xdebug.iniが自動で作成されその中に
;zend_extensionが書かれていると思います
;zend_extension = /usr/local/lib/php/extensions/no-debug-non-zts-20180731/xdebug.so
xdebug.discover_client_host = false
xdebug.client_host = host.docker.internal
xdebug.client_port = 9000
xdebug.mode = debug
xdebug.start_with_request = yes

動作確認

webサーバーを起動して、公開フォルダにphpファイルを置きましょう
公開フォルダに置いたphpファイルと同じディレクトリ・ファイル構成でphpファイルをeclipseのプロジェクトに配置します
eclipseのPHPプロジェクトはメニューバーのファイル→新規→プロジェクトで
新規プロジェクトウインドウを開き
PHP→PHPプロジェクトを選択→次へボタンクリック→プロジェクト名を入力し完了ボタンをクリックでできます
(PHPプロジェクトでないとブレークポイントで止まりません)
今回の動作確認ではtestという名前のPHPプロジェクト直下にindex.phpを置いてみます。webサーバーの公開フォルダにはtestフォルダを作成しその中に同じindex.phpを置きました
phpファイルを右クリック→デバック→PHP Web アプリケーションをクリック
m.png

入力可能なセレクトボックスがでますので、自分のwebサーバーのURLを入力しOKをクリック
これでPHPを実行できます
n.png

phpファイルの行番号をダブルクリックしてブレークポイントを付けていればそこで止まります
ブレークポイントを付けずに実行した方は、ブレークポイントを付けて、ブラウザを再読み込みしてみて下さい
a.png

ブレークポイントで止まった後の操作は下記です
b.png

ブレークポイントで止めるとその時点の変数の値が変数ビューで見れます。変数ビューの値の部分を書き換えれば、変数に好きな値を格納できます
eclipseでビューを表示する方法は、メニューバーのウインドウ→ビューの表示から好きなビューを表示できます。変数ビューが表示されていない人はそこから表示させてください
c.png

ブレークポイントで止めて、式ビューにPHPのワンライナーを書くと、その時点の変数の値を使用してワンライナーを実行できます
d.png

eclipseを使う上で絶対に覚えておきたいショートカット
(1) ctrl + shift + r : リソース検索(ファイル名検索し、開けます。ワイルドカード使用可)
(2) ctrl + k : 下に向かって検索(エディタ内で検索したい文字列を選択状態にしてctrl + k)
(3) ctrl + shift + k : 上に向かって検索(エディタ内で検索したい文字列を選択状態にしてctrl + shift + k)
(4) ctrl + o : メソッド検索(エディタ内でctrl + oでそのファイル内に定義されている関数を検索しそこへ移動できる。ワイルドカード使用可)
(5) F3 : 宣言を開く(関数をクリック(クリックしたら放していい。キャレットが関数部分にあればいい)し、F3を押すと、その関数が定義されている場所に移動できる)

エクスプローラーの双方向矢印アイコンをクリックし有効にするとエクスプローラーとエディタがリンクするようになります
e.png

一度デバッグをするとデバッグの構成に保存されます
o.png

PHP Webアプリケーションのところに先ほどのデバッグが入っているので、デバッグするファイルやURL、サーバーの変更をここでできます。
デバッグボタンをクリックすればデバッグが開始されます。
また、PHP Webアプリケーションをダブルクリックすると新しいデバッグの構成を作成できます
p.png

デバッグの構成へのショートカットとして虫アイコンがあり、
虫アイコンの右の▼をクリックすると、直近で実行したデバッグの構成が出てきます。
また、デバッグの構成をクリックすれば、先ほどのデバッグの構成の設定ウインドウが立ち上がります
q.png

次の記事

eclipseでLaravel開発環境を構築する。デバッグでブレークポイントをつけて止める。(WindowsもVagrantもdockerも)

9
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?