問題
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リンクをたどると、上記のエラーが発生します。
いい神バットマン。それは信じられないほどイライラさせられました。これが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を検索します。これが表示されていれば、実行されています。
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への小さなリンクが表示されます。
クリックすると、次のようなページが表示されます。完了です。おめでとう!
これが機能せず、実行エラーが発生する場合は、おそらくDrupalに、前に設定したtmpフォルダーへの書き込み権限がないため、次のように入力します。
Sudo chown -R www-data /var/tmp/xhprof
そしてうまくいけばそれはうまくいきます。終わったね。フーラー!
グラフ機能が必要でない限り。ありがたいことに、それは次のように簡単です。
Sudo apt-get install graphviz
Sudo service Apache2 restart
そして今、あなたはグラフ関数を持っているはずです。うまくいけば、それが役立ちます!