ホームページ >バックエンド開発 >PHPチュートリアル >Tideways、xhprof、xhgui は PHP 用の非侵入型モニタリング プラットフォームを作成します

Tideways、xhprof、xhgui は PHP 用の非侵入型モニタリング プラットフォームを作成します

步履不停
步履不停オリジナル
2019-06-18 15:23:092518ブラウズ

Tideways、xhprof、xhgui は PHP 用の非侵入型モニタリング プラットフォームを作成します

環境の準備

インストール前に、以下のソフトウェアが正しくインストールされていることを確認してください

  • PHP
  • Nginx
  • Mongodb

PHP mongodb 拡張機能のインストール

$ sudo pecl install mongodb

PHP 構成ファイルの追加

[mongodb]
extension=mongodb.so

PHP タイダウェイ拡張機能のインストール

一般的なコンパイルおよびインストール

$ git clone https://github.com/tideways/php-xhprof-extension.git
$ cd /path/php-xhprof-extension
$ phpize
$ ./configure
$ make
$ sudo make install

PHP 構成ファイルに追加

[tideways]
extension=tideways_xhprof.so
; 不需要自动加载,在程序中控制就行
tideways.auto_prepend_library=0
; 频率设置为100,在程序调用时可以修改
tideways.sample_rate=100

xhgui-branch (xhgui の中国語版) をインストール

$ git clone https://github.com/laynefyc/xhgui-branch.git
$ cd xhgui-branch
$ php install.php

xhgui-branch 構成ファイルを変更

<?php
return array(
     ...
    &#39;extension&#39; => 'tideways_xhprof',
     ...
    'save.handler' => 'mongodb',
    'db.host' => 'mongodb://127.0.0.1:27017',
    'db.db' => 'xhprof',
     ...
);

mongodb を起動し、xhgui インデックスを設定します。コマンドは次のとおりです。

$ mongo

> use xhprof
> db.results.ensureIndex( { 'meta.SERVER.REQUEST_TIME' : -1 } )
> db.results.ensureIndex( { 'profile.main().wt' : -1 } )
> db.results.ensureIndex( { 'profile.main().mu' : -1 } )
> db.results.ensureIndex( { 'profile.main().cpu' : -1 } )
> db.results.ensureIndex( { 'meta.url' : 1 } )

xhgui ローカル仮想ホスト構成リファレンス

server {
    listen       80;
    server_name  xhgui.test;
    root         /Users/yaozm/Documents/wwwroot/xhgui-branch/webroot;

    # access_log  /usr/local/var/log/nginx/access.log;
    error_log  /usr/local/var/log/nginx/error.log;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
        index  index.php index.html index.htm;
    }
}

分析対象のサイトに設定し、次の項目を直接追加します分析するサイトの nginx 設定に変更し、設定が有効になることを確認してください。

$ fastcgi_param PHP_VALUE "auto_prepend_file=/path/xhgui-branch/external/header.php";

リファレンス構成

server {
    listen       80;
    server_name  laravel.test;
    root         /Users/yaozm/Documents/wwwroot/laravel/public;

    # access_log  /usr/local/var/log/nginx/access.log;
    error_log  /usr/local/var/log/nginx/error.log;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
        index  index.php index.html index.htm;
    }
     # 添加 PHP_VALUE,告诉 PHP 程序在执行前要调用的服务
    fastcgi_param PHP_VALUE "auto_prepend_file=/path/wwwroot/xhgui-branch/external/header.php";
}

または、PHP 構成ファイルを変更して、実行前に呼び出すサービスを PHP プログラムに指示することもできます

; Automatically add files before PHP document.
; http://php.net/auto-prepend-file
auto_prepend_file = "/path/wwwroot/xhgui-branch/external/header.php"

PHP 関連の技術記事の詳細については、 PHP チュートリアル 列にアクセスして学習してください。

以上がTideways、xhprof、xhgui は PHP 用の非侵入型モニタリング プラットフォームを作成しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。