Old/Zend Studio/5
全般
デバッグ機能の使い方を教えてください。
Ver 5.5
デバッグ機能全般については 下記のマニュアルをご覧ください。
- クイックスタートガイド(Zend_Studio_QuickStart_Guide.pdf)の「デバッグとプロファイリング」
- ユーザーガイド(Zend_Studio_User_Guide.pdf)の「コードのデバッグと分析」
デバッグ機能のデモンストレーションが下記よりご覧いただけます。
- Zend Studioのメニューバーにあるヘルプ(H)を選択します。
- ヘルプを選択し、表示された一覧内のチップ集(D)を選択します。
- 表示されたダイアログの下にあるデバッグデモ(D)ボタンを押下します。
- 画面の指示に従ってデモンストレーションをご覧ください。
No input file specified. と表示されます。
Ver 〜5.5
デバッグに使用するワークファイル名の設定を何らかの理由で変更、あるいは、削除してしまったことが考えられます。
次の手順を実行後、再度お試しください。
- メニューから、ツール | カスタマイズ を選択し、ダイアログを開きます。
- デバッグ タブをクリックし、デバッグの設定を表示させます。
- デバッグモード をリモートにします。
"ワークファイル名" の欄が入力可能になります。
- "ワークファイル名" に dummy.php と入力し、デバッグモード をローカルに戻します。
- OKを押下し、設定を反映します。
ローカルデバッグ
ローカルデバッグとリモートデバッグの違いを教えてください。
ローカルデバッグは、Zend Studio付属のPHPを使用してWebサーバを介さずにCGIモードでデバッグを実行します。
リモートデバッグは、WebサーバのPHPを用いてデバッグを実行します。
ローカルデバックで、日本語関数(mb_string)の使用やPEARの読込みができません。
Ver 3.5〜5.5
Zend Studioに付属するPHPエンジンは、デフォルト値で作成したPHPエンジンのため、mbstring関連のモジュールやPEARライブラリは含まれていません。
Zend Studioをインストールしたマシンに、Zend CoreをインストールしてPHP環境を作成し、localhost(ip=127.0.0.1) に対してリモートデバッグしてはいかがでしょうか。
ローカルデバック時に使用する php.ini ファイルはどこにありますか。
Ver 3.5〜5.5
ファイルは以下にあります。
PHP4用: <Zend Studioインストールディレクトリ>/bin/php4/php.ini
PHP5用: <Zend Studioインストールディレクトリ>/bin/php5/php.ini
リモートデバッグ
リモートデバッグはZend Core、またはZend Platformが必要と聞きました。Zend Studioとは別に購入が必要ですか。
Ver 5.2〜5.5
Zend Studioには、サーバにインストールするためのパッケージとして、Zend Platformを同梱しています。
リモートデバッグ、プロファイル機能は、Zend Studioのライセンスのみで利用可能です。
それ以外のZend Platformの機能は、30日間の評価が可能です。
Zend CoreとZend Platformの違いに関しては、Old/Zend Core を参照してください。
複数ページにまたがるデバッグの方法を教えてください。
Ver 5.5
ユーザーガイド(Zend_Studio_User_Guide.pdf)の「デバッグURLの実行」をご覧ください。
(入力ページからPOSTデータを渡して次のページに遷移するような連続したページのデバッグが実行可能です。)
リモートデバック実行時、Zend StudioとZend Platform(旧Zend Studio Server)との間に、NAT, Firewallなどが介在している場合にはどのような設定が必要ですか。
Ver 3.5〜5.5
Zend Studioでは、バージョン4.0からトンネリング接続により、Firewall, NATを介してのデバックが可能になっています。
ただし、WebサーバがWindows上にある場合や、バージョン3.5ではサポートされていないため、下記方法をお試しください。
- 全体の流れ
ZendStudioのデバッグ機能は、サーバ側からクライアント側にポート番号10000番(設定にて変更可能)にデバック情報を送信します。
このため、間にルータがある場合は、ルータを挟んで、サーバ側からクライアントがこのポート番号に接続できるよう設定する必要があります。
- ルータ側で行う設定
ルータの外側から、ZendStudioを使用するクライアントのポート番号10000へのアクセスを可能にする設定が必要です。
ルータでは、スタティックNAT, バーチャルサーバ などの名称で、ルータの特定ポートへのアクセスを内部のネットワーククライアントへ転送する機能があります。(ルータによってはその機能が無い場合もあります。)
この機能を利用し、クライアントPCのポート番号10000を外部へ公開してください。
- Zend Studioで行う設定
メニューから、ツール | カスタマイズ | デバック タブにある"クライアントIP"を"カスタマイズ"に設定して、ルータのIPを設定してください。
例
クライアントIP: 192.168.1.13
ルータIP: 219.166.XXX.YYY
だとした場合
ルータ側
219.166.XXX.YYY の Port番号 10000 から 192.168.1.13 の Port番号 10000 への転送設定
クライアント側
クライアントIP を 219.166.XXX.YYY に設定
リモートデバック時に、サーバとの通信にHTTPSは使用できますか。
Ver 3.5〜5.5
使用可能です。
ツール | カスタマイズ | デバック から、デバックURL の http:// の部分をクリックして https:// を選択してください。
その他
CLIバージョンのPHPでコマンドラインスクリプトのデバックを実行することは可能ですか。
Ver 3.5〜5.5
CLIバージョンで実行するPHPスクリプトをCLIバージョンのPHPでデバックする方法で可能です。
以下の手順を実行してください。
- CLIバージョンのあるPHP環境にZend Studio Server(または Zend Platform)をインストールし、リモートデバックが実行できる環境を構築します。
(ツール | カスタマイズ | デバックタブ からリモートデバックを設定し、デバックサーバURLのフィールドでリモートサーバのアドレスを入力します。)
※リモートサーバにローカルマシンを設定することも可能です。
※実行時に読まれる php.ini で Debug Server の設定が読み込まれていることを確認してください。
- サーバマシンの環境変数 QUERY_STRING に次の値を設定します。
start_debug=1&debug_host=<ローカルマシンのホスト名またはIP>&debug_port=<ZDEで設定されているポート番号>&debug_stop=1&no_remote=1
※ZDEで設定されているポート番号は、ツール | カスタマイズ | デバックタブ にあるデバックポート番号の値です。
- クライアントマシンのZDE上で、デバックするファイルを開きます。
- リモートサーバ上で、コマンドラインスクリプトを実行すると、ZDEでデバッグの開始を検出します。
Zend Studioで、デバックURLやプロファイルURLが実行できません。
Ver 3.5〜5.5
デバックURLやプロファイルURL実行時に、デバックサーバに接続できない場合は以下をご確認ください。
- Zend Studio Server(または、Zend Platform)の設定で、デバックを実行しようとするクライアントが許可されたホストに設定されていること。
かつ、拒否するホストに設定されていないこと。
これは、php.iniファイルのディレクティブ "zend_debugger.allow_hosts=" でも確認できます。
- phpinfo関数で出力される内容に、with Zend Debugger vX.Y.Z,という記述があること。
もし、この記述が無い場合は、Zend Studio Server(または、Zend Platform)がインストールできていません。
- dummy.phpというファイルが、Webサーバのドキュメントルートに存在すること。
このファイルは、インストール時に設定されます。
ダウンロード、解凍し、ドキュメントルート直下に置いてください。
- Zend Studioのカスタマイズ画面のデバックタブで、リモートデバックが選択されていて、それがデバックURLで指定したURLと一致していること。
- Zend Studio上のデバックURLで指定したURLがフルパスになっていること。
また、Zend Studioとデバックサーバ間に、NAT, Firewallなどが介在している場合は、別途設定が必要です。
その場合の対処法は後述します。
デバックURLで指定したスクリプトからコールされるスクリプトも、Zend Studioでデバック可能ですか。
Ver 3.5〜5.5
デバックURLダイアログのすべてのデバックを実行を選択することにより可能です。
デバックURLで指定したスクリプトからコールされる任意のスクリプトのみ、デバックすることは可能ですか。
Ver 3.5〜5.5
可能です。
デバックURLダイアログの次の箇所からデバックを開始に、デバックするスクリプトのファイル名までをURLに指定します。
その任意のスクリプトからコールされるスクリプトを引き続きデバックしたい場合は、このページからデバックを続行をチェックし、有効にします。