如何配置 XDebug 以分析所有请求、POST、GET、Ajax,无论是否使用查询字符串参数?
当前配置(如下)仅为没有查询字符串参数的 GET 请求和 POST 请求创建配置文件 (cachegrind.out) 文件。
/etc/php5/apache2/conf.d/20-xdebug.ini
zend_extension = /usr/lib/php5/20121212/xdebug.so
xdebug.profiler_enable_trigger = 1
xdebug.profiler_enable = 0
xdebug.profiler_append = 0
conf.d/my.conf
<Directory "/var/www/html/sub">
# Limit profiling to files in this directory
RewriteEngine On
RewriteRule (.*.php) $1?XDEBUG_PROFILE=1 [QSA,L]
</Directory>
优麒麟 14.04.5 LTS
PHP 版本 5.5.9-1ubuntu4.21
XDebug 版本 2.5.1
问题的根源是 POST 请求的配置文件被下一个请求(客户端重定向)覆盖。 解决方案是使用不同的探查器输出文件名
参考: https://bugs.xdebug.org/view.php?id=1445
xdebug.profiler_output_name=cachegrind.out.%s
非常感谢XDebug团队。