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

步履不停
Freigeben: 2023-04-06 21:04:01
Original
2499 Leute haben es durchsucht

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
Nach dem Login kopieren

PHP-Konfigurationsdatei hinzufügen

[mongodb]
extension=mongodb.so
Nach dem Login kopieren

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
Nach dem Login kopieren

Hinzufügen

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

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
Nach dem Login kopieren

Ä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',
     ...
);
Nach dem Login kopieren

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 } )
Nach dem Login kopieren

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;
    }
}
Nach dem Login kopieren

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";
Nach dem Login kopieren

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";
}
Nach dem Login kopieren

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"
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage