准备工作
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. XXS level8

    (1)查看PHP源代码 <?php ini_set("display_errors", 0); $str = strtolower($_GET["keyword&q ...

  2. mysql命令行使用

    连接数据库   mysql -P 端口号 -h 远程机地址/ip -u 用户名 -p mysql -uroot -p123456 修改数据库密码 mysqladmin -uroot -p123456 ...

  3. Arch Linux 的AUR用户软件仓库

    ==== Arch 官方软件仓库, 共10998个(20190325), 使用pacman搜索安装. https://www.archlinux.org/packages/ Core 核心软件包, 2 ...

  4. js生成的验证码

    例1 <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title&g ...

  5. tmpfs临时文件系统,是一种基于内存的文件系统

    在Linux系统内存中的虚拟磁盘映射,可以理解为使用物理内存当做磁盘,利用这种文件系统,可以有效提高在高并发场景下的磁盘读写,但是重启后数据会丢失. 1.查看tmpfs路径 (系统默认开启,大小约为物 ...

  6. laravel 路由分組

    laravel 路由分組 Route::group(['prefix' => 'admin'], function () { $namespacePrefix="\\App\\Http ...

  7. Spring Cloud(Dalston.SR5)--Zuul 网关-微服务集群

    通过 url 映射的方式来实现 zuul 的转发有局限性,比如每增加一个服务就需要配置一条内容,另外后端的服务如果是动态来提供,就不能采用这种方案来配置了.实际上在实现微服务架构时,服务名与服务实例地 ...

  8. JavaScript获取mp4文件MIME编码格式,用于判读是否是h.264,解决在线播放只有声音问题

    测试网址:https://gpac.github.io/mp4box.js/test/filereader.html js库:mp4box.js 不能在线播放的:audio/mp4; codecs=& ...

  9. MySQL Point in Time Recovery the Right Way

    In this blog, I’ll look at how to do MySQL point in time recovery (PITR) correctly. Sometimes we nee ...

  10. STM32定时器时间的计算方法

    本文出自:https://wenku.baidu.com/view/e3bdfb7601f69e31433294c4.htmlSTM32定时器时间的计算方法STM32中的定时器有很多用法:(一)系统时 ...