首頁  >  文章  >  後端開發  >  Tideways、xhprof 和 xhgui 打造 PHP 非侵入式監控平台

Tideways、xhprof 和 xhgui 打造 PHP 非侵入式監控平台

步履不停
步履不停原創
2019-06-18 15:23:092497瀏覽

Tideways、xhprof 和 xhgui 打造 PHP 非侵入式監控平台

環境準備

安裝之前確保已經正確安裝了以下軟體

  • PHP
  • Nginx
  • Mongodb

安裝PHP mongodb 擴充功能

$ sudo pecl install mongodb

PHP 設定檔中新增

[mongodb]
extension=mongodb.so

安裝PHP tideaways 擴充功能

常規編譯安裝

$ 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-branch 設定檔

$ 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 } )

mongodb 並啟動xhgui-branch 設定檔

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

mongodb 並啟動xhgui-branch 設定檔

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

mongodb 或設定xhgui 索引,指令如下:

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

xhgui 本機虛擬主機配置參考

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

針對要分析的網站進行設置,直接在要分析網站的nginx 配置中增加下列項目,然後使配置生效就可以了。 rrreee參考配置rrreee或也可以在修改PHP 設定文件,告訴PHP 程式在執行前要呼叫的服務

rrreee###更多PHP相關技術文章,請訪問######PHP教程######欄位進行學習! ###

以上是Tideways、xhprof 和 xhgui 打造 PHP 非侵入式監控平台的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn