我是调试的新手,终于找到了一些时间来玩它.但我无法让调试器在PHPStorm(2.1)中运行.
我在Mac(Snow Leopard)上使用MAMP PRO(2.0.1).XDebug已安装(默认为MAMP - 2.1.0)并处于活动状态.
我遵循的其中一个教程就是这个:http: //blog.jetbrains.com/webide/2011/02/zero-configuration-debugging-with-xdebug-and-phpstorm-2-0/
我用这个工具生成书签:http: //www.jetbrains.com/phpstorm/marklets/
在PHPStorm中,我单击"开始监听PHP调试连接"按钮,在Web浏览器中,我使用"启动调试器"链接.然后我刷新网页,期待在PHPStorm中发生一些事情.但没有任何反应.
应该发生什么事,对吧?
我认为它可能与我正在使用的虚拟主机(在MAMP PRO中创建)有关.当我正在开发一个项目时,我正在使用像dev.companyname.com这样的URL
它可以与不同的虚拟主机一起运行,还是必须使用"localhost"?我怎样才能让这个东西起作用?
我从未使用过Xdebug,但我想开始.我正在使用Ubuntu Linux并且已经能够:
phpinfo()和var_dump() 在崇高的设置:
"settings": {
"xdebug": { "url": "http://your.web.server" }
}
Run Code Online (Sandbox Code Playgroud)这是出了什么问题:
我究竟做错了什么?
我正在尝试使用Sublime Text 2设置Xdebug以在我的本地计算机上调试PHP,但我无处可去.我用PHP 5.4运行MAMP.我在php.ini的末尾输入了这个:
[xdebug]
zend_extension="/Applications/MAMP/bin/php/php5.4.4/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so"
xdebug.remote_enable=On
xdebug.remote_host="localhost"
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"
xdebug.remote_autostart=1
Run Code Online (Sandbox Code Playgroud)
Xdebug.so扩展随MAMP一起提供,我已经验证它位于php.ini文件中指定的位置.我可以在PHP信息中看到Xdebug信息.
在Sublime Text 2中,我安装了这个包,并将项目中的设置更改为:
{
"folders":
[
{
"path": "/Applications/MAMP/htdocs"
}
],
"settings": {
"xdebug": { "url": "http://localhost" }
}
}
Run Code Online (Sandbox Code Playgroud)
我可以按SHIFT和F8调出Sublime Text 2中插件的菜单,并可以添加或删除断点(代码行左侧会出现一个灰点).当我点击"开始调试"时,它会打开一个浏览器,其中"?XDEBUG_SESSION_START = sublime.xdebug"字符串会附加到网址上.但我的断点没有做任何事情.
我已经尝试添加xdebug_break();到我的代码中,看看是否会停止程序,但事实并非如此.浏览器和IDE似乎根本没有连接......
有任何想法吗?
我正在尝试在我的AMPPS上启用Xdebug.我使用过Xdebug并遵循给定的指示:
.
在第6点,我运行make编译xdebug库的命令.然后检查我运行的一切是否顺利make test.我发现了这些错误:
Failed loading ~/Dev/Testing/xdebug-2.2.6/modules/xdebug.so: dlopen(~/Dev/Testing/xdebug-2.2.6/modules/xdebug.so, 9): no suitable image found.
Did find:
~wrong architecture
Failed loading ~/Dev/Testing/xdebug-2.2.6/modules/xdebug.so: dlopen(~/Dev/Testing/xdebug-2.2.6/modules/xdebug.so, 9): no suitable image found.
Did find:
~/Dev/Testing/xdebug-2.2.6/modules/xdebug.so: mach-o, but wrong architecture
Run Code Online (Sandbox Code Playgroud)
我做错了什么......?这是否是安装/启用Xdebug的理想方式....?如果没有任何turorial ..?
我正在尝试安装XDebug。我正在使用64位的Windows7。我的PHP版本是5.6.3(使用phpinfo();获得了它)。我将xdebug文件放在php文件夹下的ext文件夹中(我将文件重命名为php_xdebug.dll)。
我将下面的代码放在php.ini文件中,然后重新启动apache。
[XDebug]
zend_extension = "D:\XAMPP\php\ext\php_xdebug.dll"
xdebug.profiler_append = 0
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir = "D:\XAMPP\tmp"
xdebug.profiler_output_name = "cachegrind.out.%t-%s"
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "127.0.0.1"
xdebug.trace_output_dir = "D:\XAMPP\tmp"
xdebug.remote_autostart=on
xdebug.remote_enable=on
xdebug.remote_connect_back=1
xdebug.remote_port=9000
xdebug.remote_mode=req
xdebug.idekey="netbeans-xdebug"
Run Code Online (Sandbox Code Playgroud)
但我不能见下文的,而我是想看看使用phpinfo();
谁能说出问题在哪里?
在官方php站点的下载中列出了一个调试包。
它是否打算供php核心/运行时的开发人员使用,从而调试php本身?还是针对一般的php网站开发人员,从而调试您网站上的* .php文件(使用xdebug等)?
有关如何使用VSCode在Vagrant(Homestead)上设置XDebug的指南
版本:
我试图在Microsoft VS Code上运行PHP代码。当我单击启动时,唯一发生的是调试控制台中显示“ spawn php ENOENT”的错误。
为了解决这个问题,我将XDebug的dll文件放入ext文件夹。我将php.ini-development复制到了一个名为php.ini的新文件中,并将其添加到文件末尾。
zend_extension="[file path]"
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
这没有改变。
然后,我为防火墙添加了入站规则,以允许端口9000上的入站连接。但是,什么都没有改变。我怎样才能解决这个问题。
我有一个带有xdebug的Docker容器,当我运行脚本时,我需要形成我从PhpStorm收到的Docker容器,消息如下:
Cannot parse server name for external Xdebug connection.
To fix it create environment variable PHP_IDE_CONFIG on the remote server.
Windows: set PHP_IDE_CONFIG="serverName=SomeName"
Linux / Mac OS X: export PHP_IDE_CONFIG="serverName=SomeName".
Run Code Online (Sandbox Code Playgroud)
但我已经设置了这些环境变量,如下面的屏幕截图所示:
这些是我对PhpStorm的设置:
环境来自phpinfo():
PHP变量来自phpinfo():
我也尝试export用带引号和不带引号的env变量,但结果是一样的......
报价:
XDEBUG_CONFIG="remote_host=192.168.1.110"
PHP_IDE_CONFIG="serverName=docker-server"
Run Code Online (Sandbox Code Playgroud)
没有引号:
XDEBUG_CONFIG=remote_host=192.168.1.110
PHP_IDE_CONFIG=serverName=docker-server
Run Code Online (Sandbox Code Playgroud)
ifconfig en1 inet来自我的MacOS命令的结果,我正在运行Docker和PhpStorm
您还可以在需要的情况下检查以下文件:
任何帮助都感激不尽!
似乎如果我添加
environment:
XDEBUG_CONFIG: "remote_host=192.168.1.110"
PHP_IDE_CONFIG: "serverName=docker-server"
Run Code Online (Sandbox Code Playgroud)
进入我php位于docker-compose.yml内的服务,它解决了这个问题,但给我留下了一个很大的问题.
因为我有:
env_file:
- ./etc/environment.yml
- ./etc/environment.development.yml
Run Code Online (Sandbox Code Playgroud)
在里面,./etc/environment.development.yml我有: …
我刚刚将Ubuntu更新到版本18.04,并且我具有7.2版的PHP,如果执行命令“ php -v”,我会得到以下结果
root@laptop1:/etc/apache2/sites-enabled# php -v
PHP 7.2.3-1ubuntu1 (cli) (built: Mar 14 2018 22:03:58) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.2.3-1ubuntu1, Copyright (c) 1999-2018, by Zend Technologies
with Xdebug v2.6.0, Copyright (c) 2002-2018, by Derick Rethans
root@laptop1:/etc/apache2/sites-enabled#
Run Code Online (Sandbox Code Playgroud)
但是,如果phpinfo()通过网络浏览器在php文件中运行命令,则会得到以下信息:它告诉我我具有7.1版的PHP,并且未激活Xdebug。
因此,Xdebug不适用于我的PhpStorm IDE。我不知道最好的选择是删除所有已安装的PHP版本,并保留不最新的7.0或7.1版本。