0

プロファイリングの目的で、AWS クラウドのリモート サーバーに Xdebug をインストールしようとしています。phpinfo() を使用してチェックした Xdebug をインストールし、サーバーでプロファイリング オプションを有効にする設定をいくつか保持しました。有効になっていることを確認しました。

pro filer の出力ログをリモート サーバーのディレクトリに保存しています。Kcachedgrind を使用してこれらのファイルを開きたいと思います。だから私はKcachesgrindをインストールしました。

PHP.ini ファイルで使用した設定は以下のとおりです。

zend_extension="/opt/lampp/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so"
xdebug.profiler_output_dir = "/opt/lampp/htdocs/profiler/logs"
xdebug.profile_output_name = cachegrind.out.%t-%s
xdebug.remote_enable=On
xdebug.remote_host="ip-10-125-11-57"
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"
xdebug.show_local_vars=On
xdebug.collect_return=On
xdebug.collect_params=4
xdebug.profiler_enable=On
xdebug.profiler_enable_trigger=1

上記の設定では、xdebug.remote_host という名前のファイルが表示されます。通常は localhost ですが、リモート サーバーにいるので、サーバーのホスト名をそこに保持しました。Kcachegrind を使用してファイルを開こうとすると、以下のエラーが発生します。

Kcachegrind: Can't connect to X server
4

2 に答える 2

2

基本的に、2 つの適切なオプションがあります。

  1. リモート サーバーからローカル コンピューターにファイルをダウンロードし、そこでデバッグします。毎回ファイルをダウンロードする必要があることに悩まされている場合は、何らかの方法でタスクを自動化してください。

  2. コマンドライン ユーティリティを使用してファイルを評価します (xdebug のドキュメントには ct_annotate が記載されています)。こちらを参照してください: http://xdebug.org/docs/profiler

オプション1を強くお勧めします。

Kcachegrind は GUI (Graphical User Interface) を備えたプログラムであることに注意してください。つまり、ウィンドウやボタンなどがあります。リモート サーバーは通常、GUI ソフトウェアを必要としないため、Windows やボタンなど、インストールされているもの (X サーバーや KDE などはありません) はサポートされていません。TeTeT ソリューションは理論的には可能ですが、リモート サーバーに X をインストールして vnc 経由で接続しないでください。速度が遅く、多くのハード ディスク容量とメモリを消費し、初心者にとっては学習曲線が急峻です。

于 2014-07-18T10:48:38.730 に答える
0

サーバー上でそれを本当にデバッグしたい場合は、X とそのデスクトップをインストールし、vnc 経由で接続する必要があります。

おそらく、デバッグ ファイルとプロファイル ファイルをローカル システムにコピーして、そこで検査することもできます。

于 2013-06-03T13:30:08.320 に答える