xhprof 安装

xhprof 安装过程以及使用,主要记录整个过程的坑

Linux 安装 

系统 centos

支持 git、phpize

git 地址: https://github.com/longxinH/xhprof.git

git项目地址:https://github.com/longxinH/xhprof

因为本人服务器上支持git 所以直接使用git 将xhprof clone下来了 执行命令 git clone  https://github.com/longxinH/xhprof.git 当然了,执行clone的目录位置凭大家喜好

克隆下xhprof后,根据自行的目录结构,(我安装在了根下面)执行命令 cd /xhprof/extension 

进入extension目录后就可以进行编译安装了执行我们最熟悉的命令 phpize

执行phpize后继续执行命令,./configure --with-php-config=/path/to/php7/bin/php-config, 需要注意的是php-config的地址根据自己的实际情况,可以使用find / -name php-config进行搜索

执行之后,继续执行命令 make && sudo make install ,如果不报错的话,那么替你感到高兴的是,你成功了一半了,接下来我们需要打开php.ini文件进行配置,也就是安装扩展,此时恰巧,你也不知道自己的php.ini文件在哪里,同样的你可以执行刚刚的find命令进行查找

找到php.ini之后执行vim 打开,将下面这一段复制进去

[xhprof]
extension = xhprof.so
xhprof.output_dir = /tmp/xhprof
复制进去之后,保存,进行php的重启
重启之后,xhprof 在Linux上的安装基本上就完成了,但是还有最重要的一点,就是我们看重他的那一点,页面式的性能分析报告
在此之前首先分析git 下来的 xhprof包的目录结构

 如图中所示,xhprof_html则是页面式性能分析报告的展示

xhprof_lib则是xhprof进行代买分析的核心

xhprof使用须知:

xhprof性能分析,可以在框架的入口文件中加入,同样的可以在我们需要的具体的某个方法中使用

使用方法:

1、在方法开始地方增加代码如下

xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY); ------->打开调试开关

//你需要调试的代码

在你的代码return之前加入

$xhprof_data = xhprof_disable();
$XHPROF_ROOT =realpath(dirname(dirname(dirname(__FILE__))) .'/..'); ---->此处路径根据自己的实际情况设置
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_lib.php";-------> 这两个include很明显的可以看出,是引用的xhprof包中的东西,所以,我们需要将git 下来的xhprof中的
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_runs.php";------> xhprof_lib放置到自己的项目框架中
$xhprof_runs = new XHProfRuns_Default();
$run_id = $xhprof_runs->save_run($xhprof_data, "apiSearch");
echo "http://xhprof.zl/xhprof_html?run=$run_id&source=apiSearch
"; ----> 这里就是分析之后查看性能报告的地址,具体的域名或者是访问地址需要自己创建,这也是下面一个问题创建报告访问地址
创建性能分析报告访问地址
由上面的目录我们知道,xhprof_html为性能报告的代码包,所以及其简单的就是,我们需要创建一个nginx.conf进行访问就可以了,设置个域名进行访问,但是不要忘记吧域名替换到上面提到的echo那
我在自己的服务器上安装的是宝塔,所以,创建站点,就很方便了
问题一

fopen(): open_basedir restriction in effect. File(/xhprof/xhprof_log/5fa904008283e.apiSearch.xhprof) is not within the allowed path(s): (/www/wwwroot/www.itmzl.com/youzan_server/:/tmp/:/proc/)

原文地址:https://www.cnblogs.com/mzli/p/13949477.html