我正在尝试使用XHProf,但是每次运行它时,我都会收到可怕的php错误。
Warning: Invalid argument supplied for foreach() in xhprof_compute_inclusive_times() (line 1670 of /var/www/drupal/sites/all/modules/XHProf/xhprof.inc).
Warning: Invalid argument supplied for foreach() in xhprof_compute_flat_info() (line 1644 of /var/www/drupal/sites/all/modules/XHProf/xhprof.inc).
Warning: Invalid argument supplied for foreach() in theme_xhprof_overall_summary() (line 367 of /var/www/drupal/sites/all/modules/XHProf/xhprof.module).这里解决了这个问题,因为临时文件夹不存在,而我的文件夹却存在。
我正在使用Drupal 7运行一个新的UbuntuServer13.04。
按照pear的说明安装使用这里的xhprof。我还向php.ini添加了一个临时目录,这是我手动创建的。
extension=xhprof.so
xhprof.output_dir="/var/tmp/xhprof"我已经安装了devel,我还安装了XHProf模块。
在admin/config/development/xhprof中,我启用了对所有页面视图和drush请求的分析。
在遵循xhprof链接时,我会得到上面的错误。

发布于 2013-10-10 18:31:24
天哪蝙蝠侠。那真是令人难以置信的沮丧。这是一个让xhprof工作的指南。(注意:我对Linux非常陌生。我不确定我使用的权限是否安全,或者是否有更好的方法。我只会在测试环境中这样做。)
重要的是:它不会告诉你如何解释它。我不知道该怎么做,我只是很高兴它起作用了。
Mac还是Linux?
这是可能的。
窗户?
可能不会。要在windows上运行xhprof,必须有一个已编译的dll。这个线程中有一个指向它的链接,但是当我试图在XAMPP上使用它时,它始终存在兼容性问题。
我认为它是用不同版本的Apache编译的。
上工作
在麦克身上有可能。以下是两个有用的链接:
http://www.lullabot.com/blog/article/installing-xhprof-mamp-and-php-52-mac-os-106-snow-leopard http://www.midwesternmac.com/blogs/jeff-geerling/getting-xhprof-working-well
但我还没做呢。我设法让它在UbuntuServer13.04上工作,尽管我认为任何最新版本的Ubuntu都能工作。
我在VirtualBox上安装了服务器.VirtualBox是免费的,但是学习如何设置它可能需要一点时间。
我将假设我们有一个功能齐全的Ubuntu。
首先,我们需要安装pear。我们将使用它来安装XHProf。
sudo apt-get install pear我们随后使用了phpdev,这也是必要的。
sudo apt-get install php5-dev如果这些命令不起作用,而且我弄错了,那么直接执行以下命令:
sudo pecl install -f xhprofUbuntu会告诉您您缺少什么,并给您安装它的提示。一旦获得了所有的依赖项,就安装xhprof。
您可能会在安装xhprof时出错,它会尝试下载测试版而失败。在这种情况下,请尝试:
sudo pecl install -f xhprof-beta希望现在安装了xhprof。
现在我们需要配置它。打开位于php.ini的/etc/php5/apache2/php.ini,并在扩展部分下添加以下两行:
extension=xhprof.so
xhprof.output_dir="/var/tmp/xhprof"第二行设置输出目录。如果这个文件夹不存在,您必须创建it.When,您已经使用
sudo service apache2 restart现在我们需要检查一下这是否有效。
试验1:
输入php -m
如果您在列表中看到xhprof,就可以开始了。如果没有,请不要担心,试着用它来检查它是否有效:
转到您的webroot /var/www/并创建一个php文件,其中只有:
phpinfo();将其保存为phpinfo.php。在浏览器中打开它,您将看到PHP信息。搜索xhprof,如果您看到这个,那么它正在运行。

一起工作
我无法让它和Drupal模块一起工作。因此,我将告诉您如何让它与开发模块一起工作。
首先,我从这里那里借用了一些配置。我并没有真正遵循这部分,但它的工作是如此的礼物马和诸如此类。
使用以下命令创建一个新的配置文件:
sudo nano /etc/apache2/conf.d/xhprof.conf并插入以下代码。
alias /xhprof_html "/usr/share/php/xhprof_html/"然后我们可能需要创建一个指向我们的xhprof_html文件夹的符号链接。所以以防万一:
-s /usr/share/php/xhprof_html /var/www/xhprof_html
这将在webroot中创建一个指向现有xhprof文件的文件夹。然后,您可以在浏览器中打开http://mywebsitehere.com/xhprof,查看您所做的所有运行。
然后重启apache。现在是时候进行一个小小的开发配置了。转到devel设置,启用xhprof并设置:
xhprof directory = /usr/share/php
XHProf URL = /xhprof_html现在,在每个页面的底部,您应该会看到一个指向xhprof的小链接。

点击它应该会让你看到这样的页面。你的任务完成了。祝贺你!

如果这不起作用,而且您正在获得运行错误,这可能是因为Drupal没有写入我们前面设置的tmp文件夹的权限,所以请输入:
sudo chown -R www-data /var/tmp/xhprof希望这能奏效。我们说完了。好啊!
除非你想要作图函数。谢天谢地,这就像:
sudo apt-get install graphviz
sudo service apache2 restart现在你应该有作图功能了。希望这能帮上忙!
https://drupal.stackexchange.com/questions/88359
复制相似问题