Heim >Backend-Entwicklung >PHP-Tutorial >Tideways, xhprof und xhgui erstellen eine nicht-invasive Überwachungsplattform für PHP

Tideways, xhprof und xhgui erstellen eine nicht-invasive Überwachungsplattform für PHP

步履不停
步履不停Original
2019-06-18 15:23:092549Durchsuche

Tideways, xhprof und xhgui erstellen eine nicht-invasive Überwachungsplattform für PHP

Umgebungsvorbereitung

Stellen Sie vor der Installation sicher, dass die folgende Software korrekt installiert wurde

  • PHP
  • Nginx
  • Mongodb

PHP-Mongodb-Erweiterung installieren

$ sudo pecl install mongodb

PHP-Konfigurationsdatei hinzufügen

[mongodb]
extension=mongodb.so

PHP-Tideaways-Erweiterung installieren

Allgemeine Kompilierung und Installation

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

Hinzufügen

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

Installieren Sie xhgui-branch (chinesische Version von xhgui) in der PHP-Konfigurationsdatei

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

Ändern Sie die xhgui-branch-Konfigurationsdatei

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

Starten Sie mongodb und legen Sie den xhgui-Index fest. Der Befehl lautet wie folgt:

$ 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-Konfigurationsreferenz für den lokalen virtuellen Host

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;
    }
}

Stellen Sie die zu analysierende Site ein und fügen Sie direkt die folgenden Elemente hinzu Fügen Sie die Nginx-Konfiguration der zu analysierenden Site hinzu und verwenden Sie sie. Stellen Sie einfach sicher, dass die Konfiguration wirksam wird.

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

Referenzkonfiguration

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";
}

Oder Sie können die PHP-Konfigurationsdatei ändern, um dem PHP-Programm vor der Ausführung mitzuteilen, welche Dienste aufgerufen werden sollen

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

Weitere technische Artikel zu PHP finden Sie unter Bitte besuchen Sie die Spalte PHP-Tutorial, um mehr zu erfahren!

Das obige ist der detaillierte Inhalt vonTideways, xhprof und xhgui erstellen eine nicht-invasive Überwachungsplattform für PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn