准备工作
1.xhprof不支持php7,需要php7以下版本
2.php扩展模块xhprof下载地址: http://pecl.php.net/get/xhprof-0.9.4.tgz

xhprof安装

$ php -v #查看php版本 如果为php7的话 会报错 可以进行php降级处理
以下降级处理 前提装的是lnmp集成环境
$ wget http://soft.vpser.net/lnmp/lnmp1.4.tar.gz #下载安装脚本压缩包
$ tar -zxvf lnmp1.4.tar.gz #解压压缩包
$ cd lnmp1.4 #进入lnmp目录
$ ./upgrade.sh php #执行php脚本 输入版本号

  

$ php -v #脚本执行后看php版本 为php5.6.31的话 进行以下步骤
$ php -m # 查看php所有扩展
$ cd /usr/local/php/include/php/ext # 进入php扩展模块目录
$ wget http://pecl.php.net/get/xhprof-0.9.4.tgz #下载模块xhprof包
$ tar -zxvf xhprof-0.9.4.tgz #解压xhprof压缩包
$ mv xhprof-0.9.4 xhprof #修改文件名xhprof-0.9.4 为 xhprof
$ cd xhprof/extension #进入xhprof下的extension目录
$ /usr/local/php/bin/phpize #执行phpize命令
$ ./configure --with-php-config=/usr/local/php/bin/php-config #执行./configure进行编译前配置
$ make && make install #编译安装

  

$ vim /usr/local/php/etc/php.ini #编辑php.ini 在最后一行添加以下内容
[xhprof]
extension=xhprof.so
xhprof.output_dir=/var/xhprof_data

  

$ mkdir -p /var/xhprof_data #创建xhprof临时文件目录
$ chmod 777 /var/xhprof_data
$ systemctl restart php-fpm #重启php
$ php -m #查看php扩展 出现xhprof了 就是扩展安装成功了 $ cd /home/wwwroot/default #进入php的www目录
$ mkdir xhprof #创建xhprof目录
$ cd /usr/local/php/include/php/ext/xhprof #进入php扩展xhprof目录
$ mv examples/ xhprof_html/ xhprof_lib/ /home/wwwroot/default/xhprof #将php扩展xhprof目录的文件 移动到 php的www目录下的xhprof目录

  

访问出现的错误解决方法

访问地址:http://192.168.0.149/xhprof/examples/sample.php
复制最下面的那个地址到地址栏
http:///index.php?run=5a70263b3ca67&source=xhprof_foo

  

访问地址修改为: http://192.168.0.149/xhprof/xhprof_html/index.php?run=5a70263b3ca67&source=xhprof_foo

  

点击 [View Full Callgraph] 出现

根据错误提示有三种 不过一般是这两种

1.we can not find profile data for run_id 5a70263b3ca67
2.you do not have 'dot' image generation utility installed.

  

首先假设是第一种情况 先验证我们的想法

$ cd /var/xhprof_data # 进入存放xhprof临时文件的地方
$ ls # 查看列表 如果为空的话 说明没有写东西进去
$ vim /usr/local/php/etc/php.ini # 468行 修改为 display_errors = On
$ systemctl restart php-fpm #重启php|

这时再访问地址

我们需要修改nginx配置文件的openbase_dir选项

$ vim /usr/local/nginx/conf/fastcgi.conf #在最后一行添加 fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/:/var/xhprof_data";
$ systemctl restart nginx #重启nginx

然后再打开地址 http://192.168.0.149/xhprof/examples/sample.php  再把最下面的地址复制出来 放到地址栏访问

继续点击 [View Full Callgraph] 出现

函数去除后 可能会报这个错

sh:dot:command not found 解决办法:

$ yum -y install graphviz

效果ok结果:

参考资料:

http://www.zhimengzhe.com/php/338363.html

http://www.cnxct.com/you-do-not-have-dot-image-generation-utility-installed/

xhprof 安装详解的更多相关文章

  1. Linux ssh登录和软件安装详解

    阿哲Style   Linux第一天 ssh登录和软件安装详解 Linux学习第一天 操作环境: Ubuntu 16.04 Win10系统,使用putty_V0.63 本身学习Linux就是想在服务器 ...

  2. 【转】Linux下Android ADB驱动安装详解

    原文网址:http://blog.csdn.net/zhenwenxian/article/details/5901350 Linux下Android ADB驱动安装详解 概述 最近由于内置的合作商比 ...

  3. scribefire 多博客管理利器 安装详解

    scribefire 多博客管理利器 安装详解 一.ScribeFire介绍 ScribeFire 是 Firefox (火狐浏览器)上著名的博客写作工具,目前已跨平台支持多浏览器(Firefox,C ...

  4. CentOS 6.5的安装详解

    CentOS 6.5的安装详解 主流: 目前的Linux操作系统主要应用于生产环境, 主流企业级Linux系统仍旧是RedHat或者CentOS 免费: RedHat 和CentOS差别不大,Cent ...

  5. Linux下tomcat的安装详解

    Linux下tomcat的安装详解 来源: ChinaUnix博客 日期: 2007.01.21 22:59 (共有0条评论) 我要评论 一,安装前的准备:1,Linux版本:我的是企业版.(至于红帽 ...

  6. Phoenix和SQuirrel安装详解

    Phoenix安装详解 描述 现有hbase的查询工具有很多如:Hive,Tez,Impala,Shark/Spark,Phoenix等.今天的主角是Phoenix. phoenix,中文译为“凤凰” ...

  7. zabbix agent安装详解

    安装 Installing repository configuration package Zabbix 2.2 for RHEL5, Oracle Linux 5, CentOS 5: rpm - ...

  8. zabbix server安装详解

    简介 zabbix(音同 zæbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以 ...

  9. Oracle Database 12c Release 2安装详解

    第1章 Oracle Database 12c Release 2安装详解 1.1 下载方法 oracle官网https://www.oracle.com 1)打开官方网站,找到下载连接 2)选择更多 ...

随机推荐

  1. linux基础之用户登录信息查看命令

    用户登录信息查看命令 1.who命令 同一个账号通过不同终端登录也属于不同的登录信息,这里不同的终端包含虚拟终端和模拟终端,因为一个用户通过一个终端登录属于一个session 基本介绍 打印当前系统上 ...

  2. 使用loadrunner监控apcahe

    一般要修改的内容在Httpd.conf文件中已经存在,如果不存在请自行添加相应内容. (1)修改Apache中Httpd.conf文件, (2)添加ExtendedStatus,设置ExtendedS ...

  3. mongo 索引,速度

    (如有打扰,请忽略)阿里云ECS大羊群,2U4G低至1.4折,限实名新用户,需要的点吧https://promotion.aliyun.com/ntms/act/vm/aliyun-group/tea ...

  4. java-Collection集合、List集合、Vector集合和迭代器Iterator、ListIterator的使用

    1.对象数组的概述和使用 * A:案例演示 * 需求:我有5个学生,请把这个5个学生的信息存储到数组中,并遍历数组,获取得到每一个学生信息. * Student[] arr = new Student ...

  5. goaccess geoip 测试

      goaccess 是一个很不错的日志实时统计分析工具,我们可以用来方便的分析nginx apcahe iis 等的日志信息 对于geoip 的支持是需要源码编译的,所以基于官方docker 镜像添 ...

  6. Dynamics 365 CRM 添加自定义按钮

    在添加自定义按钮之前,我们需要下载这个工具 RibbonWorkbench, 它是专门针对自定义命令栏和Ribbon区域. 下载之后是一个zip压缩包. 怎样安装RibbonWorkbench: Se ...

  7. [visual studio]visual studio 2017激活码

    企业版:NJVYC-BMHX2-G77MM-4XJMR-6Q8QF 专业版:KBJFW-NXHK6-W4WJM-CRMQB-G3CDH

  8. Guava 1:概览

    一.引言 都说java是开源的,但是除了JDK外,能坚持更新且被广泛认可的开源jar包实在是不可多得.其中最显眼的自然是guava了,背靠google自然底气十足,今天就来解开guava的面纱,初探一 ...

  9. MySql Scaffolding an Existing Database in EF Core

    官方文档详见:https://dev.mysql.com/doc/connector-net/en/connector-net-entityframework-core-scaffold-exampl ...

  10. Linux下usb设备驱动详解

    USB驱动分为两块,一块是USB的bus驱动,这个东西,Linux内核已经做好了,我们可以不管,我们只需要了解它的功能.形象的说,USB的bus驱动相当于铺出一条路来,让所有的信息都可以通过这条USB ...