移動メモ: このログは 2011 年 4 月 7 日に書かれたものです。Eclipse、PHP などのバージョン番号は多数あり、更新が早いため、記事内のバージョンに注意してください。この記事は必ずしも問題の解決に役立つとは限りませんが、問題を解決するためのアイデアや概念を得ることができます。
私は最近 SRTP プロジェクト WebOS に取り組み始めたので、PHP の旅を再開しました。 PHP環境を構築するのにさらに1〜2日かかりました。一言で言えば面倒でした。 Apache+php+mysqlの設定からEclipse+PHP+XDebugの開発環境セットアップ(Zend Debbugerも同時に設定しました)、各種Google、各種チュートリアル投稿、各種質問投稿、ほとんどの人は彼らの言うとおりに問題を解決しましたが、同じ問題が別の方法で解決されたため、ほとんどの場合、Google の広告をクリックすることで利益が得られているだけだと突然感じました。
たくさん検索して、たくさんの問題を解決し、たくさんの洞察を得ましたが、どこから始めればよいのかわかりません。ステップバイステップで見ていきましょう。 Apache+php+mysqlの設定については、別のブログで私の経験をお話します。
まず、私のさまざまなバージョンについて話させてください。検索エンジンの最大の無駄は、多くのものが古いことです。そのため、あらゆる種類の悲劇が発生しているように感じます。モルモット。
オペレーティングシステム: Win7 Ultimate
Eclipse: PHP 開発者向け Eclipse (バージョン: Helios リリース、ビルド ID: 20100617-1415) ここで言っておきますが、私は Pdt を持っていませんが、デバッグプラグインはEclipseとは関係ありません 大きすぎます。
PHP: php5.2.17 TS (スレッドセーフティ) vc6 (公式 Web サイトからダウンロードしたばかり) 公式 Web サイトは 2 つのバージョンに分かれています: vc9 バージョン 5.3.6 と vc6 バージョン 5.2.17 は IIS で使用されます。 vc6 は Apache で使用されます (左側の説明)。各バージョンはスレッド セーフと非スレッド セーフに分かれています (以下のデバッグ プラグインの設定に関連します)。通常はスレッド セーフをダウンロードすることをお勧めします。
XDebug 2.1.1 (公式 Web サイト) には多くのバージョンがありますが、選択に役立つリンクがあります。 (主な 3 つの側面は、TS かどうか、vc6 か vc9、32 ビットか 64 ビットです) 私は PHP 5.2 VC6 TS (32 ビット) を選択します。
Zend デバッガー: これが最も面倒です。に登録する必要があります。ダウンロードすると、Zend Studio が昇格されます。このプラグインは Studio Web Debugger と呼ばれ、Windows バージョンは ZendDebugger-20100729-cygwin_nt-i386.zip と呼ばれます。5_x_x_ と nts に必ず注意してください。 ) TS の場合は、5_2_x_comp (およびその逆の Xdebug) を使用します。さらに、Eclipse での成功をテストするために、dummy.php をルート ドキュメント (http://localhost:8081/dummy.php) にコピーします。
さまざまなバージョンを取得したら、php.ini 設定である設定を開始します。
Eclipse でデバッグするには、PHP スクリプトとしてデバッグする方法と PHP Web ページとしてデバッグする方法の 2 つがあります。
PHP スクリプトとしてのデバッグは、php.exe を呼び出すことで直接解釈され、Apache を開かずにデバッグできます (実際には、Apache とは何の関係もありません)。しかし、欠点も大きく、ブラウザで Web ページを開くことができず、Cookie や投稿などの値 ($_COOKIE、$_REQUEST など) を取得する方法がありません。コマンドラインパラメータを四捨五入することもできますが、非常に不便で使いにくいです)。
PHP Web ページとしてのデバッグは、実際には特別な種類のリモート デバッグです。ブラウザで Web ページを開いて実行し、Cookie やその他の値を動的に取得できます。リモート デバッグ。構成でオンにする必要があります。オンにしないと、ブレークポイントが設定されていても、この種のデバッグは機能しません。その構成については後述する。
OK、Xdebug 設定
[xDebug] ; この行がなくても問題ありません
zend_extension_ts = “C:Program FilesPHPextphp_xdebug-2.1.1-5.2-vc6.dll” ; ts が参照していることに注意してください。スレッドセーフには、このバージョンがあるはずです。ファイルのパス全体を記述するのが最善です。相対パスは非常に問題が多く、問題を引き起こす可能性があります。
xdebug.remote_enable = On ; 実は、公式サイトの設定にはこの一文はなく、これを設定しないとDebugをPHP Webページとして利用することができないので、有効のままになっています。
インターネット上にたくさんの項目がありますが、私はこの 2 つの項目を設定しただけで、インターネット上に記載されている他の項目が何を意味するのかわからないため、設定を持っていません。もちろん、まず公式ドキュメントを確認してください。次に、phpinfo で、どの項目を設定するかがリストされています。
設定が成功したことを示すサイン、phpinfo を確認してください。次の 2 つの項目が表示されます
Xdeug を参照してください
設定項目が非常に多いので、ゆっくり勉強してください
Zend デバッガの設定、php で。 ini
[zend debugger]
zend_extension_ts = “C:Program FilesPHPextZendDebugger.dll”; ts と完全パスにも注意してください。
zend_debugger.allow_hosts=127.0.0.1,192,168.0.4; デバッグを許可するホスト IP、
zend_debugger.expose_remotely=always; は、これを使用して php Web ページとしてデバッグします
同様に、上記の 3 つの項目も設定しました。通常使用されます。
設定が成功したかどうかについては、phpinfo を確認してください。
これで設定は成功です。
Eclipse の設定についてはまだ触れていませんが、PHP スクリプトとしてのデバッグと PHP Web ページとしてのデバッグの原理を理解していれば、Eclipse の設定は Eclipse オプションで設定するだけで非常に簡単になります。 -》php-》デバッグはすぐに完了します。php 実行可能ファイル (php.exe) があり、php サーバーはポート (http://localhost:8081 など) と 2 つのポートに注意します。デバッグ プラグイン (デフォルトは 9000、もう 1 つは 10000) をランダムに変更しないでください。さらに、Zend デバッガーが構成されている場合は、「デバッガーのテスト」をクリックする前に、必ず以前の dummy.php をコピーしてください。次に、php ファイルのブレークポイントをクリックし、ファイル上で右クリックして [デバッグ] を選択して開始します。とても簡単です。
設定プロセス全体でよくある間違いを要約すると:
phpとデバッグプラグインのバージョンが一致しているなど、バージョン間の対応関係が正しくなければなりません。
ts (スレッド セーフ) と nts (非スレッド セーフ) に注意してください。ts でマークされている場合もあれば、nts でマークされていないバージョンもあります。
公式ドキュメントには、Apache では php vc6 バージョンを使用する必要があるとしっかりと記載されていることに注意してください。
2 つのプラグインでは、相対パスが環境変数に関連しているため、zend_extension_ts にフルパスを記述するのが最善です。これは大きな問題です。
デバッグ プラグインの設定の成功は Eclipse とは関係がありません。Eclipse で設定する前に、phpinfo で正常に設定することをお勧めします。
不可解なエラーについてはどうすればよいでしょうか? 最善の方法は、Apache のエラー ログを確認することです。Apache のインストール ディレクトリにある logs/eroror.log ファイルに詳細な記録があり、私はこれを問題解決の究極の手段と呼んでいます。を読んだ後、どこでエラーを探すべきか、どのような問題を探すべきかを理解する必要があります。たとえば、拡張機能「extZendDebugger.dll」のロードに失敗しましたと表示されます。Apache がこの DLL ファイルを見つけられなかったと思いましたか、それとも DLL ファイルが ts か nts かを間違えたのでしょうか。この解決策については、apache+php+mysql に関する別の記事で詳しく紹介します。
余談: オープンソース ソフトウェアは構成が複雑で、バージョンが多く、バージョンの更新も早いですが、ソフトウェアの使用は少し面倒です。特にさまざまなソフトウェアを組み合わせる場合、さらに問題が発生します。では、これらの問題を解決するにはどうすればよいでしょうか? 私たちの一般的なアプローチは、その問題を検索し、解決策とチュートリアルを 1 つずつ読み、ドキュメントを読んだ後でのみ、その理由を知ることができるということを無視することです。公式ドキュメントには何でも書いてあると喜んで上で述べましたが、それは私がモルモットのようにインターネット上のさまざまなチュートリアルを何度も試した結果、最終的に公式ドキュメントがさまざまな問題を解決するのに役立ったからです。今考えると、何か問題があっても怖くありませんし、こうやって段階的に設定していったらどうなるのかと思います。したがって、原点に戻ることが問題解決の根本的な解決策となります。 注:タイトルには最新かつ最も詳細かつ簡潔な言葉を書いたため、私の表現は正確ではない可能性があり、私の考察は包括的ではありません。その理由は、ご不明な点がございましたら、メッセージを残していただき、一緒に解決していきたいと考えているためです。将来的にはより多くの人が迂回路を回避できるようになります。