web-dev-qa-db-ja.com

XHProf(Ubuntu)のインストールと構成

問題

XHProfを使用しようとしていますが、実行するたびに恐ろしいphpエラーが発生します。

Warning: Invalid argument supplied for foreach() in xhprof_compute_inclusive_times() (line 1670 of /var/www/drupal/sites/all/modules/XHProf/xhprof.inc).
Warning: Invalid argument supplied for foreach() in xhprof_compute_flat_info() (line 1644 of /var/www/drupal/sites/all/modules/XHProf/xhprof.inc).
Warning: Invalid argument supplied for foreach() in theme_xhprof_overall_summary() (line 367 of /var/www/drupal/sites/all/modules/XHProf/xhprof.module).

問題は解決しました ここ 一時フォルダは存在しないためですが、私の場合は存在します。

セットアップサーバー側

Drupal 7.で新しいUbuntu Server 13.04を実行しています。

here の指示に従ってpearを使用してxhprofをインストールします。また、手動で作成した一時ディレクトリをphp.iniに追加しました。

extension=xhprof.so
xhprof.output_dir="/var/tmp/xhprof"

Drupalセットアップ

私は両方のdevelをインストールし、XHProfモジュールもインストールしました。

admin/config/development/xhprof、私はすべてのページビューとドラッシュリクエストのプロファイリングを有効にしました。

Xhprofリンクをたどると、上記のエラーが発生します。

enter image description here

18
Dominic Woodman

いい神バットマン。それは信じられないほどイライラさせられました。これがxhprofを動作させるためのガイドです。 (注:私はLinuxを使い始めたばかりです。使用するアクセス許可が安全かどうか、またはよりよい方法があるかどうかはわかりません。テスト環境でのみ実行します。)

重要:それを解釈する方法については何も教えてくれません。どうすればいいのかわかりませんが、うまく機能しているだけで満足しています。

XHProfを動作させる

1。実行しているオペレーティングシステムは何ですか?

MacまたはLinux?

それが可能だ。

ウィンドウズ?

おそらく違います。 Windowsでxhprofを実行するには、コンパイル済みのdllが必要です。この中にリンクがあります thread ですが、XAMPPで使用しようとすると、互換性の問題が常にありました。

別のバージョンのApacheでコンパイルされたと思います。

2。 Ubuntuで動作させる

Macでも可能です。 2つの便利なリンクを次に示します。

http://www.lullabot.com/blog/article/installing-xhprof-mamp-and-php-52-mac-os-106-snow-leopardhttp:// www.midwesternmac.com/blogs/jeff-geerling/getting-xhprof-working-well

しかし、私はそれをしていません。私はなんとかUbuntu Server 13.04で動作させることができましたが、Ubuntu Serverの最新バージョンはどれでも動作すると思います。

VirtualBoxにサーバーをセットアップしました。 VirtualBox は無料ですが、設定方法を学ぶには少し時間がかかる場合があります。

3.XHProfのインストール

Ubuntuサーバーが完全に機能していると仮定します。

まず、pearをインストールする必要があります。これを使用してXHProfをインストールします。

Sudo apt-get install pear

これに続いて、phpdevも必要です。

Sudo apt-get install php5-dev

これらのコマンドが機能せず、間違っている場合は、次の手順に進んでください。

Sudo pecl install -f xhprof

Ubuntuは不足しているものを通知し、インストールを促すプロンプトを表示します。すべての依存関係を取得したら、xhprofをインストールします。

Xhprofのインストールでエラーが発生する可能性があります。ベータ版をダウンロードしようとして失敗します。その場合は、次のことを試してください。

Sudo pecl install -f xhprof-beta

うまくいけば、xhprofがインストールされました。

次に、それを構成する必要があります。 /etc/php5/Apache2/php.iniにあるphp.iniを開き、拡張セクションの下に次の2行を追加します。

extension=xhprof.so
xhprof.output_dir="/var/tmp/xhprof"

2行目は、出力ディレクトリを設定します。このフォルダーが存在しない場合は、作成する必要があります。完了したら、Apacheを再起動してください

Sudo service Apache2 restart

4。 XHProfが実行されているかどうかの確認

それが機能したかどうかを確認する必要があります。

テスト1:

php -mを入力してください

リストにxhprofが表示されていれば、問題ありません。そうでない場合でも、心配しないでください。代わりに、これが機能しているかどうかを確認してください。

ウェブルート/var/www/に移動し、次のものだけを含むphpファイルを作成します。

phpinfo();

Phpinfo.phpとして保存します。これをブラウザーで開くと、PHP情報が表示されます。xhprofを検索します。これが表示されていれば、実行されています。

enter image description here

5。 Drupalで動作させる

Drupalモジュールでは機能しません。代わりに、develモジュールで機能させる方法を説明します。

最初に here から借りたいくつかの設定。私はこの部分にはあまり従いませんでしたが、ギフト用の馬などすべての機能を果たします。

次のコマンドで新しい設定ファイルを作成します。

Sudo nano /etc/Apache2/conf.d/xhprof.conf

次のコードを挿入します。

alias /xhprof_html "/usr/share/php/xhprof_html/"

次に、おそらくxhprof_htmlフォルダーへのシンボリックリンクを作成する必要があります。したがって、念のためこれを設定してください:

ln -s/usr/share/php/xhprof_html/var/www/xhprof_html

これにより、既存のxhprofファイルを指すフォルダーがwebrootに作成されます。次に、ブラウザーで http://mywebsitehere.com/xhprof を開いて、実行したすべての実行を確認できます。

次に、Apacheを再起動します。さて、少しdevel設定の時間です。開発設定に移動し、xhprofを有効にして設定します。

xhprof directory = /usr/share/php

XHProf URL = /xhprof_html

これで、各ページの下部にxhprofへの小さなリンクが表示されます。

enter image description here

クリックすると、次のようなページが表示されます。完了です。おめでとう!

enter image description here

これが機能せず、実行エラーが発生する場合は、おそらくDrupalに、前に設定したtmpフォルダーへの書き込み権限がないため、次のように入力します。

Sudo chown -R www-data /var/tmp/xhprof

そしてうまくいけばそれはうまくいきます。終わったね。フーラー!

グラフ機能が必要でない限り。ありがたいことに、それは次のように簡単です。

Sudo apt-get install graphviz
Sudo service Apache2 restart

そして今、あなたはグラフ関数を持っているはずです。うまくいけば、それが役立ちます!

35
Dominic Woodman