【brew】创建一个php71的xhprof安装包

【brew】创建一个php71的xhprof安装包

xhorof php性能分析工具

原创文章,转载请注明出处: {#ZC_BLOG_HOST#}?id=34

工具:

php >= 7.0: https://github.com/longxinH/xhprof

php < 7.0 : https://github.com/phacility/xhprof

1、创建文件 php71-xhprof.rb

1
$>touch /usr/local/Homebrew/Library/Taps/homebrew/homebrew-php/Formula/php71-xhprof.rb

2、选择你喜欢的编辑器打开上面创建的文件,然后将如下内容复制进去并保存

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# file /usr/local/Homebrew/Library/Taps/homebrew/homebrew-php/Formula/php71-xhprof.rb

require File.expand_path("../../Abstract/abstract-php-extension", __FILE__)

class Php71Xhprof < AbstractPhp71Extension
  init
  desc "XHProf is a function-level hierarchical profiler for PHP and has a simple HTML based user interface."
  homepage "https://github.com/longxinH/xhprof"
  url "https://github.com/longxinH/xhprof/archive/v1.2.tar.gz"
  sha256 "a0026e6047512ee289e59b188a40a6517aace40d4c65f7f23714aa4f0458089c"
  head "https://github.com/longxinH/xhprof.git"

  depends_on "pcre"

  def install
    Dir.chdir "extension" do

      ENV.universal_binary if build.universal?

      safe_phpize
      system "./configure", "--prefix=#{prefix}", phpconfig
      system "make"
      prefix.install "modules/xhprof.so"
    end

    prefix.install %w[xhprof_html xhprof_lib]
    write_config_file if build.with? "config-file"
  end
end

3、使用命令开始安装

1
$>brew install homebrew/php/php71-xhprof

4、编辑配置文件

1
2
3
4
5
6
7
; file /usr/local/etc/php/7.1/conf.d/ext-xhprof.ini

[xhprof]
extension="/usr/local/opt/php71-xhprof/xhprof.so"

; 我的配置是设置为我的家目录
xhprof.output_dir="/Users/reatang/.xhprof"

5、将xhprof的web页面添加到nginx配置中(如:创建xhprof.conf),并重启nginx

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# file /usr/local/etc/nginx/servers/xhprof.conf
server {
    listen 80;
    server_name xhprof.local; # 需要填入 /etc/hosts
    index index.php index.html index.htm;
    charset utf-8;
    root "/usr/local/Cellar/php71-xhprof/1.2/xhprof_html/";

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }
    location ~ /\.ht { deny all; }

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

	location ~ \.php {
         fastcgi_pass 127.0.0.1:9000; # 如果用的是Laravel的 valet,则写:unix:/Users/reatang/.valet/valet.sock
         try_files $uri /index.php = 404;
         fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
         include fastcgi_params;
    }
}

6、重启 nginx,重启php-fpm

7、可以看一看 https://github.com/longxinH/xhprof 的示例代码进行使用操作

注意:

可能需要安装图片工具:

1
$>brew install graphviz

p.s:做了一个laravel5.5的测试,无法直视

laravel55.png

确实是一个hello world 12000+的调用

image.png