我使用webgrind,它会产生大量的缓存文件.
如何在服务器关闭或类似之后自动清除这些文件.我在windows7机器上使用WAMP安装.
这可能听起来很傻,但我不知道如何在wamp上暂时禁用webgrind.webgrind在执行脚本时是否也增加了相当大的开销?
PS:webgrind在上述语句中与xdebug互换使用.
我已经安装xdebug上PHP,但现在我不能让notepad++ DBGp插件工作.
我有最新wamp的版本Win7和wwww文件夹位于分区:d:\www.
我编写了一个测试文件test.php:
<?php
$test = "3";
echo $test;
?>
Run Code Online (Sandbox Code Playgroud)
我尝试使用以下链接在Web浏览器中打开它:
http://localhost/test.php?XDEBUG_SESSION_START=test
Run Code Online (Sandbox Code Playgroud)
但是DBGp不会连接.我有没有尝试过IDE_Key.
我已多次浏览文档,但无法找到/解决问题.希望有人能够知道原因.
以下是一些屏幕截图:
谢谢


我已经安装了Xdebug,我可以确认phpinfo()它已正确安装.我已经采取了所有提出的google"netbeans xdebug install等" 网站中给出的所有步骤.
它仍然无法在Netbeans中运行.有人可以提供任何建议吗?
这是我的php.ini调试部分......
[xdebug]
zend_extension = /usr/lib/php5/20090626/xdebug.so
xdebug.remote_enable = 1
xdebug.remote_mode = "req"
xdebug.remote_handler = dbgp
xdebug.remote_host = 127.0.0.1
xdebug.remote_port = 9000
xdebug.idekey = "netbeans-xdebug"
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激!
我非常绝望并且没有想法:
我为Laravel 3项目配置了xdebug和PhpStorm.在Mac OS X Apache上本地运行项目,因此PhpStorm和Web应用程序在同一台机器上运行.配置虚拟主机,以便localhost.lt指向Laravel的公共目录.
php.ini中的相关xdebug条目:
zend_extension = /usr/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so
[xdebug]
xdebug.idekey="PHPSTORM"
xdebug.remote_enable=1
xdebug.profiler_enable=1
xdebug.remote_log=/var/log/xdebug_remote.log
xdebug.remote_connect_back=1
Run Code Online (Sandbox Code Playgroud)
确认扩展已加载.
设置PHP Web应用程序调试/运行配置,没有任何路径映射,因为没有符号链接,Web服务器和PhpStorm上的文件夹完全相同(因为Web服务器在同一台机器上).
当通过从IDE的"调试"发射,xdebug_remote.log正确地显示,我们已经在应用程序/库的一个文件中设置的断点:
<- breakpoint_set -i 5 -t line -f
file:///Users/RalfR/src/livetime/application/libraries/LiveTime.php -n 676
->
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="5" id="9230016"></response>
Run Code Online (Sandbox Code Playgroud)
但是,当我们单击从LiveTime.php库调用该函数的链接时,不会触发断点.日志显示:
<- stack_get -i 6 ->
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="stack_get" transaction_id="6"><stack where="{main}" level="0" type="file" filename="file:///Users/RalfR/src/livetime/public/index.php" lineno="14"></stack></response>
<- run -i 7 ->
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="run" transaction_id="7" status="stopping" reason="ok"></response>
<- run -i 8
Log closed at 2013-04-22 21:03:57
Run Code Online (Sandbox Code Playgroud)
与许多框架一样,Laravel使用.htaccess mod_rewrite通过public/index.php来管道所有内容.可能这是导致PhpStorm/xdebug无法捕获application/libraries/LiveTime.php中的断点的原因,因为xdebug似乎从未执行过LiveTime.php脚本?
如果是这样,我们如何解决这个问题呢?
我的情况如下:
我有一个VM(Ubuntu服务器13.04)与PHP 5.4.9-4ubuntu2.2,nginx/1.2.6,php5-fpm和Xdebug v2.2.1.
我正在使用PhpStorm 6.0.3开发一个应用程序(我在VM上部署).
我的问题是,每当我尝试启动调试会话时,IDE都不会从Web服务器获取连接请求(因此,会话永远不会启动).
我查看了很多关于xdebug配置的建议,但没有发现任何有用的东西.
我最近意识到,如果我通过浏览器自己设置XDEBUG_SESSION cookie(感谢FireCookie),我可以调试我的应用程序...所以我的猜测是有一些东西阻止网络服务器将cookie发送回客户端.
问题是,我在不同的项目中使用相同的IDE配置,该项目部署到不同的基于CentOS的VM(使用lighttpd),并且工作得很好.
我试图将我当前的项目部署到这样的VM(将Web服务器更改为NginX)并且它工作正常(不幸的是我丢失了该VM并且无法检查配置:().
所以...这是我的NginX配置:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
server_name localhost;
location / {
try_files $uri $uri/ /dispatch.php;
}
#
location ~ \.php$ {
root /var/www/bresson/web;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index dispatch.php;
fastcgi_param SCRIPT_FILENAME /var/www/$fastcgi_script_name;
include fastcgi_params;
#fastcgi_pass 127.0.0.1:9009;
}
}
Run Code Online (Sandbox Code Playgroud)
fpm config(/etc/php5/fpm/pool.d/www.conf):
listen = /var/run/php5-fpm.sock
Run Code Online (Sandbox Code Playgroud)
xdebug.ini:
zend_extension=/usr/lib/php5/20100525/xdebug.so
xdebug.remote_port=9000
xdebug.remote_enable=On
xdebug.remote_connect_back=On
xdebug.remote_log=/var/log/xdebug.log
Run Code Online (Sandbox Code Playgroud)
任何想法将不胜感激.谢谢!
编辑:
我尝试的另一件事是从php开始一个会话,我看到会话cookie创建没有任何问题...
第二编辑:
我想我找到了问题所在:URI.
我写了另一个脚本,以尝试配置参数和东西(更简单的一个),它工作正常!
所以最终我认为问题是查询参数(即:) XDEBUG_SESSION_START=14845没有达到我的脚本.
问题是我的起始URI,它是形式的/images/P/P1/P1010044-242x300.jpg.通过一些虚拟主机配置,我应该能够将其路由到类似的东西/dispatch.php/images/P/P1/P1010044-242x300.jpg,并使用URI的其余部分作为参数.所以...我本身没有找到解决方案,但现在我有一个可行的解决方法(指向我的起始URL /dispatch.php),这将暂时做到这一点.谢谢
我设置php.ini和Debug config在phpstorm.尝试在phpstorm事件日志中调试php脚本输出:
"Error running script.php: Port 9000 is busy"
Run Code Online (Sandbox Code Playgroud)
php.ini的结尾:
[XDebug]
zend_extension="/usr/lib/php5/20090626+lfs/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_port="9000" (the default port is 9000)
xdebug.profiler_enable=1
xdebug.profiler_enable_trigger = 1
xdebug.profiler_output_dir="/etc/php5/xdebug/profiler_output_dir"
Run Code Online (Sandbox Code Playgroud)
pStorm中的调试端口也设置在9000. netstat -na输出上:
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN
Run Code Online (Sandbox Code Playgroud)
如果我设置到其他端口怎么办?例如设置它10001似乎做的工作.或者只是如何让它正常工作.我不确定我是否理解它是如何xDebug工作的.它就像Debug("script.php")(Shift+F9)在phpstorm中运行并在文件中设置断点?
有人有想法吗?
编辑:
来自:http: //xdebug.org/docs/remote
xdebug.remote_port
Type: integer, Default value: 9000
The port to which Xdebug tries to connect on the remote host. Port 9000 is the default for both the client …Run Code Online (Sandbox Code Playgroud) 我最近安装xdebug在我的服务器上,但限制它用于我们的测试站点,该站点使用它自己的php.ini文件.
例如,测试站点php.ini位于:
/home/test_site/public_html/subdomain_name/php.ini
Run Code Online (Sandbox Code Playgroud)
在这个php.ini文件里面我有以下xdebug:
[XDebug]
zend_extension = /usr/local/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so
xdebug.profiler_append = 0
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir = /home/test_site/xdebug
xdebug.profiler_output_name = "cachegrind.out.%s-%u.%h_%r"
Run Code Online (Sandbox Code Playgroud)
现在,事情是,xdebug 工作正常,没有问题.
但是,在我们的主站点上,它也有自己的php.ini文件,例如位于:
/home/main_site/public_html/php.ini
Run Code Online (Sandbox Code Playgroud)
在这个文件里面,我什么都没有xdebug.
现在,我最近在cpanel中设置了一个cron,用于main site:
php -f /home/main_site/public_html/cron_jobs/main_cron.php > /home/main_site/public_html/logs/main_cron.log 2>&1
Run Code Online (Sandbox Code Playgroud)
现在,在检查日志文件中的cron输出后,我得到输出:
Failed loading xdebug.so: xdebug.so: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)
当主站点甚至不能加载xdebug时,为什么会出现此错误?
这让我很烦,主要是因为它工作正常然后所有突然断点都停止了破坏,当我检查调试器时它只是在等待传入连接.
我的流浪汉机器正在运行 private_ip: 192.168.13.37
我的xdebug.ini配置如下:
zend_extension=/usr/lib/php5/20090626+lfs/xdebug.so
xdebug.remote_enable = on
xdebug.remote_connect_back = on
xdebug.remote_port = 9020
Run Code Online (Sandbox Code Playgroud)
这些是我的PHPstorm调试设置:

我在PHPstorm中设置了一个流浪服务器,其主机dev.website.com指向Windows主机文件中的正确IP,端口为80,文件夹映射正确.
我也有PHP应用程序设置使用解释的服务器,其中一个启动URL /.
我点击了开始监听PHP调试连接,然后点击绿色小臭虫图标开始调试.这将使用以下查询字符串启动项目?XDEBUG_SESSION_START = 18359但是当我在调试窗口中查看PHPstorm时它会说waiting for incoming connection with ide key 18359
任何想法如何让它再次运作?
编辑 添加的xdebug日志:pastebin
我在sublime文本中为php设置xdebug,xdebug继续记录与无法连接相关的错误:
Log opened at 2016-08-18 21:06:01
I: Connecting to configured address/port: localhost:9988.
E: Could not connect to client. :-(
Log closed at 2016-08-18 21:06:01
Run Code Online (Sandbox Code Playgroud)
我希望通过访问http://localhost:9988我的浏览器直接调试可能有所帮助,但它只是显示谷歌浏览器错误页面:"localhost拒绝连接".也许错误存在于另一端,那个数据无法推送到sublime文本客户端,我不知道.Sublime文本xdebug确实在我运行tests/etc时显示消息"Reloading /var/log/xdebug/xdebug.log",所以它似乎知道正在运行的php代码,只是没有得到任何进一步.
所以,我从未想过我必须调试xdebug本身,但是:我如何调试xdebug到代码编辑器连接?如果这是nginx,我会开始调试虚拟主机,但因为它是xdebug ......我不知道从哪里开始调试缺少连接的应用程序?
我在ubuntu linux 14.04上.
这是我的xdebug.ini conf,如果相关:
[xdebug]
xdebug.default_enable=1
xdebug.remote_enable=1
xdebug.remote_autostart=1
xdebug.remote_host="localhost"
xdebug.remote_handler="dbgp"
xdebug.remote_port=9988
xdebug.remote_mode = req
xdebug.overload_var_dump=0
xdebug.idekey = sublime.xdebug
xdebug.remote_log="/var/log/xdebug/xdebug.log"
;https://github.com/martomo/SublimeTextXdebug
Run Code Online (Sandbox Code Playgroud)
Xdebug安装:
apt-cache policy php-xdebug
php-xdebug:
Installed: 2.4.0-5+donate.sury.org~trusty+1
Candidate: 2.4.0-5+donate.sury.org~trusty+1
Version table:
*** 2.4.0-5+donate.sury.org~trusty+1 0
500 http://ppa.launchpad.net/ondrej/php/ubuntu/ trusty/main amd64 Packages
100 /var/lib/dpkg/status
Run Code Online (Sandbox Code Playgroud)
模块有效:
php -m | grep -i xdebug …Run Code Online (Sandbox Code Playgroud) 我在VirtualBox VM上运行我的Symfony应用程序.PHP正在使用XDebug运行,并且已正确配置.我知道这一点,因为其他人已设法使其与同一个VM的快照一起工作.
当我尝试在VS Code XDebug中配置时,我使用以下内容 launch.json
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9000
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9000
}
]
}
Run Code Online (Sandbox Code Playgroud)
但是当我点击"开始调试:侦听XDebug"时,我收到以下错误:
错误:听EADDRINUSE ::: 9000
我试图杀死正在使用该端口的进程......令我惊讶的是,这是我尝试连接的虚拟机.
我在这个配置中错过了什么?