标签: xdebug

在生产服务器上启用XDebug会使PHP变慢吗?

标题几乎说明了一切......这是一个坏主意吗?我想获得XDebug在服务器上提供的增强调试消息.

[编辑]只是为了清楚.我知道存在安全风险.也许我应该补充我的问题,并给出更准确的理由我为什么要这样做.

我们的生产服务器也提供测试平台.有时我们使用它来测试尽可能接近生产的环境.我正在寻找的主要是使用XDebug的增强功能var_dump().

这不是高流量应用的应用服务器,性能不是很大的问题.如果表现会受到XDebug的明显影响,我只是很好奇.

此外,我想我只能为定义测试站点的VirtualHost启用它.

php performance xdebug production-environment

31
推荐指数
3
解决办法
2万
查看次数

Xdebug停止工作,我在哪里寻找错误?

我安装了Xdebug,一切都很好,直到它突然停止工作.phpinfo()为所有变量提供了一个很好的XDebug输出.

php -m | grep deb
Run Code Online (Sandbox Code Playgroud)

还提供两次XDebug(对于Zend和PHP),所以再次看起来很好.我的php.ini有这些行:

zend_extension=/usr/lib/php5/20090626/xdebug.so
;extension=xdebug.so
xdebug.remote_host=localhost
xdebug.remote_enable=on
xdebug.remote_port=9001
xdebug.remote_handler=dbgp
xdebug.remote_connect_back=1
Run Code Online (Sandbox Code Playgroud)

然而,当运行此代码时,应检查XDebug(来自Netbeans文档),它只是卡住了.所以没有IDE正在使用XDebug.

<?php
$address = '127.0.0.1';
$port = 9001;
$sock = socket_create(AF_INET, SOCK_STREAM, 0);
socket_bind($sock, $address, $port) or die('Unable to bind');
socket_listen($sock);
$client = socket_accept($sock);
echo "connection established: $client";
socket_close($client);
socket_close($sock);
Run Code Online (Sandbox Code Playgroud)

另外,根据XDebug的安装,我走了两步.我的配置有什么问题?谢谢.

php ubuntu xdebug response

30
推荐指数
2
解决办法
3万
查看次数

调试IDE与XDebug的端口连接:"等待连接"

前言

像许多人一样,我花了更多时间来调试IDE与XDebug的连接,而不是使用XDebug来调试我的程序.我已经让它重复工作,但每隔一段时间我就会遇到常见的"等待连接"问题.我无法本地化导致XDebug工作或失败的原因.我已经使用ubuntu两年了; 我既不是菜鸟,也不是strace guru.我究竟做错了什么?如何更好地调试IDE与XDebug的连接?


建立

  • Ubuntu 10.10
  • Netbeans 6.9.1
  • 带有Suhosin-Patch的PHP 5.3.3-1ubuntu9
  • 使用xdebug.org上的定制安装说明脚本从源代码构建的带有debugclient的Xdebug v2.1.0
  • Apache Apache/2.2.16
  • /etc/php5/apache2/php.ini和/etc/php5/cli/php.ini都有:
    • zend_extension = /usr/lib/php5/20090626+lfs/xdebug.so
      xdebug.remote_enable=1
      xdebug.remote_handler=dbgp
      xdebug.remote_mode=req
      xdebug.remote_host=127.0.0.1
      xdebug.remote_port=9000
      xdebug.remote_log=/var/log/xdebug.log
      xdebug.extended_info=1
      xdebug.idekey="netbeans-xdebug"
      

程序

问题

我无法解释导致问题的原因或问题何时显现.它开始于我尝试调试我的项目时,这会导致我选择的开发浏览器(Chrome)使用参数打开我的项目的URL XDEBUG_SESSION_START=netbeans-xdebug.这会导致页面在chrome中正常呈现,而Netbeans仅报告"等待连接".

调试XDebug

首先,用"等待连接"的消息还活着,我会尝试用netstat来挖过来端口9000,去这样:

$ netstat -an | grep 9000
tcp6       0      0 :::9000                 :::*                    LISTEN     
Run Code Online (Sandbox Code Playgroud)

我关闭了我的IDE,并尝试使用两个文件来帮助弄清楚发生了什么:{webroot}/index.php包含<?php phpinfo(); ?>,并{webroot}/dbgtest.php包含XDebug安装检查脚本:

<?php
$address = '127.0.0.1';
$port = 9000;
$sock = socket_create(AF_INET, SOCK_STREAM, 0);
socket_bind($sock, $address, …
Run Code Online (Sandbox Code Playgroud)

php ide netbeans netstat xdebug

29
推荐指数
2
解决办法
2万
查看次数

Xdebug和无分析输出

这是与PHP中的XDebug分析类似的问题- 无法获得输出但我的是在Windows上,我有指定的完整路径(这解决了他的问题)

即使我启用了探查器,我也没有得到任何输出.下面是xdebug设置的副本(我已经缩进了所有未被注释的选项.) - 请注意xdebug工作正常,因为我已经获得了标准的xdebug错误.如果它有任何区别我使用xampp,cakephp,php 5.3

任何帮助将不胜感激.

[XDebug]
zend_extension = "C:\xampp\php\ext\php_xdebug.dll"

;xdebug.auto_trace = 0
;xdebug.collect_includes = 1
;xdebug.collect_params = 0
;xdebug.collect_return = 0
;xdebug.collect_vars = "Off"
;xdebug.default_enable = "On"
;xdebug.dump.SERVER = REMOTE_ADDR,REQUEST_METHOD
;xdebug.dump.SERVER = REMOTE_ADDR,REQUEST_METHOD
;xdebug.dump.COOKIE = ""
;xdebug.dump.FILES = ""
;xdebug.dump.GET = ""
;xdebug.dump.POST = ""
;xdebug.dump.REQUEST = ""
;xdebug.dump.SERVER = ""
;xdebug.dump.SESSION = ""
;xdebug.dump_globals = 1
;xdebug.dump_once = 1
;xdebug.dump_undefined = 0
;xdebug.extended_info = 1
;xdebug.file_link_format = ""
;xdebug.idekey = "" …
Run Code Online (Sandbox Code Playgroud)

php profiling cakephp xdebug

28
推荐指数
1
解决办法
1万
查看次数

phpize将无法在Mac OS X Lion上运行

我尝试安装xdebug但我得到关于'phpize'的关注错误消息.我怎么能解决这个问题?

leny:~ nick$ sudo pecl install xdebug
Password:
downloading xdebug-2.1.2.tgz ...
Starting to download xdebug-2.1.2.tgz (304,229 bytes)
............done: 304,229 bytes
66 source files, building
running: phpize
Configuring for:
PHP Api Version:         20090626
Zend Module Api No:      20090626
Zend Extension Api No:   220090626
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.

ERROR: `phpize' failed
Run Code Online (Sandbox Code Playgroud)

php macos xdebug pecl

26
推荐指数
2
解决办法
3万
查看次数

循序渐进:如何对客户端IDE进行Xdebug故障排除连接

背景

使用Xdebug与PHP和Komodo IDE以及Eclipse PDT.

Xdebug安装在服务器上并正常工作.这是确认的,因为Xdebug代码命令在插入服务器上的PHP文件时按预期工作.

问题

连接到客户端工作站不起作用,很难确定原因,因为它失败了多个IDE.

如果您知道Xdebug已安装并在服务器上运行,但客户端无法连接,那么请逐步检查清单.

任何人都可以帮助添加到这个以制作全面的故障排除清单吗?

具体来说,是否有任何简单的方法来确保网络流量到达客户端,并且以IDE期望查看数据的方式正确格式化?

  • SSH进入Web主机并尝试访问客户端:

    • 可以主持到达客户端吗?(ping -c 5 xxx.xxx.xxx.xxx)
    • 可以托管到达9000端口?(nmap -p 9000 xxx.xxx.xxx.xxx)
    • 如果以上两个成功,输出应该是什么?
    • 如果上述两个失败,下一个故障排除步骤是什么?
  • 验证客户端上基于软件的防火墙的设置

  • 验证linux主机上的iptables设置
  • 验证硬件防火墙b/t客户端和主机

目标

目标是找到一些解决方案,其中客户端计算机上的人员至少可以确认某些东西是否到达客户端而无需确定IDE是否是问题,因为IDE是另一个可能引入问题的复杂程度.

php ide network-programming xdebug

26
推荐指数
4
解决办法
5106
查看次数

PHPStorm Xdebug总是打破第一线

我已使用以下配置设置Xdebug:

[xdebug]
zend_extension="/usr/local/Cellar/php55-xdebug/2.2.5/xdebug.so"
xdebug.remote_enable= "On"
xdebug.remote_host = "127.0.0.1"
xdebug.remote_port = 9000
xdebug.remote_autostart = "Off"
xdebug.profiler_enable = "On"
xdebug.profiler_output_dir = "/tmp"
xdebug.idekey="PHPSTORM"
Run Code Online (Sandbox Code Playgroud)

并使用Xdebug toggler插件进行"远程调试" 进行safari.

但是在PHPStorm中它总是在第一行打破,即使我没有设置断点.我查看了设置并找到了与此相关的设置.但是我没有取消选中那些.但即使重启后它仍会在第一个文件的第一行中断.

PHPStorm设置

如何禁用此行为?

php breakpoints xdebug phpstorm

26
推荐指数
4
解决办法
8136
查看次数

使用Xdebug调试Codeception测试

我用Codeception的ApiGuy写了一些API测试.现在我想在我的PhpStorm 7中设置断点以进行测试调试,但是不知道如何在之后启动调试会话$ vendor/bin/codecept run.我知道--debug选项,但这不是我想要的.

你有什么主意吗?提前致谢!

php testing xdebug codeception

25
推荐指数
3
解决办法
8343
查看次数

XAMPP tmp文件夹超大

我通过Windows任务计划程序每隔2分钟运行一些php文件,但我的驱动器上的空间不足的时候我会收到通知D:.

检查后我发现在XAMPP tmp文件夹中D:\XAMPP\tmp有很多名称类似于的文件:cachegrind.out.1381478803-D__xampp_htdocs_Real_Estate_App_index_php每个文件的大小超过144 MB.

这些文件有内容:

==== NEW PROFILING FILE ==============================================
version: 1
creator: xdebug 2.2.3
cmd: D:\xampp\htdocs\Real Estate App\index.php
part: 1
positions: line

events: Time

fl=php:internal
fn=php::header
3 0

fl=php:internal
fn=php::define
45 0

...
Run Code Online (Sandbox Code Playgroud)

我明白这是因为xdebug引起的,但是如何阻止这个过程我不知道.Mybe有人有同样的问题吗?有任何想法吗?

php apache xampp logging xdebug

25
推荐指数
2
解决办法
1万
查看次数

PHP作曲家xdebug警告

PHP新手.处理PHP项目并启用xdebug以便能够调试我的php应用程序.生产服务器未启用xdebug,因为它由另一个团队处理.在我的本地机器上,当我运行作曲家时,它给了我一个警告说

You are running composer with xdebug enabled. This has a major impact on 
runtime performance.
Run Code Online (Sandbox Code Playgroud)

我在开发时不想禁用xdebug.只是想确认在开发环境中运行xdebug应该对在生产服务器上安装应用程序的库/性能的作曲家没有影响.

php xdebug composer-php

24
推荐指数
3
解决办法
3万
查看次数