Cannot debug with PhpStorm + Vagrant + XDebug - xdebug

I cannot get XDebug to work with PhpStorm and Vagrant on a Windows 7 machine. I've already followed every tutorial on getting this to work but with no luck.
So what I've tried is:
PhpStorm always listens to debug connections
xdebug.ini file with the following:
zend_extension = "..../xdebug.so"
xdebug.remote_enable= 1
xdebug.remote_handler=dbgp
xdebug.remote_host= 33.33.33.10
xdebug.remote_port= 9000
xdebug.remote_connect_back= 1
xdebug.remote_autostart= 1
xdebug.remote_log = "...."
Setup PhpStorm to connect to localhost:8080 and too 33.33.33.10, both with no luck.
The log file always outputs:
I: Checking remote connect back address.
W: Remote address not found, connecting to configured address/port: 33.33.33.10:9000. :-|
E: Could not connect to client. :-(
The firewall (ESET Smart Security) is always turned-off when I try to debug
Set path mappings, didn't work either
I just don't know what to do, but I really NEED to be able to debug.
Thanks for your help!

The problem was very stupid - I forwarded port 9000 in the Vagrantfile, and I didn't have to do so...
Now, actually I see that the only necessary lines in xdebug.ini are:
zend_extension = ...
xdebug.remote_enable = on
xdebug.remote_connect_back = on
The setup is pretty straightforward, if you don't do stupid things...

Make sure you connect to the right url from within PHPStorm. My vagrant box has the ip of 192.168.50.2 for instance, so i have to set the url of my project => 192.168.50.2

I had to set
xdebug.remote_connect_back = '0'
xdebug.remote_host= '10.0.2.2'
so my whole config looks like this:
xdebug.default_enable: '1'
xdebug.remote_autostart: '1'
xdebug.remote_connect_back: '0'
xdebug.remote_enable: '1'
xdebug.remote_handler: dbgp
xdebug.remote_host: '10.0.2.2'
xdebug.max_nesting_level: '400'
Host: Linux
VM: Vagrant with PuPHPet using VirtualBox
nothing special to configure in PhpStorm
found it here: http://jeromejaglale.com/doc/php/xdebug_vagrant_puphpet_phpstorm

Related

Xdebug not working with supervisor as background runner

I currently have an issue that I don't really understand.
Here's the situation:
I'm running PHP7.2 in an Debian based box under Vagrant and Parallels on an Mac.
Config for Xdebug:
zend_extension=xdebug.so
xdebug.remote_enable=1
xdebug.remote_connect_back=1
xdebug.default_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_connect_back = 1
xdebug.remote_host = 192.168.24.1
xdebug.remote_port = 9000
xdebug.idekey=PHPSTORM
xdebug.remote_log="/home/vagrant/base/log/xdebug.log"
Calling the Symfony CLI app works fine.
But as soon as I call it over supervisor Xdebug doesn't respond as it should.
I tried several things but failed.
In PhpStorm I get this message:
Cannot find file '/VMPATH/console' locally.
To fix it, set server name by environment variable PHP_ID_CONFIG and restart debug session
but I can't really find any help in the net on how to fix this issue.
Any help is appreciated!
Try add the line
environment=PHP_IDE_CONFIG="serverName=PHPSTORM"
to your supervisor config block. Example:
[program:my_worker]
directory={{API_PATH}}
command={{API_PATH}}/my_worker.php "verificationWorker.php"
environment=PHP_IDE_CONFIG="serverName=vagrant"
user=www-data
autostart=false
autorestart=true
Detail here
And make sure you execute background script by php with installed xDebug extension.

Xdebug PhpStorm: Waiting for incoming connection with ide key

I've searched a lot for this problem when debugging php using PhpStorm with xdebug, I found 3 or 4 links discussing this problem, but none of them are useful.My Xdebug's version is 2.2.3, and PhpStorm'version is 6.03. I could debug every line step by step except this one
$this->link = mysql_connect($this->dbserver, $this->dbuser, $this->dbpass);
PhpStorm shows this error:Waiting for incoming connection with ide key "14841".
Here are my xdebug configuration:
zend_extension="/usr/lib/xdebug.so"
xdebug.remote_autostart=1
xdebug.show_local_vars=1
xdebug.dump.GET=*
xdebug.dump.POST=*
xdebug.dump.SERVER=*
xdebug.auto_trace=On
; default trace output directory /tmp
xdebug.collect_vars = On
xdebug.trace_output_dir=/tmp
xdebug.collect_params=4
xdebug.collect_return=On
xdebug.profiler_enable=Off
; default trace output directory /tmp
;xdebug.profiler_output_dir=/tmp
;xdebug.profiler_enable_trigger=On
;test.php?XDEBUG_PROFILE
xdebug.remote_enable=On
xdebug.remote_host="localhost"
xdebug.remote_port=9001
xdebug.remote_handler="dbgp"
xdebug.remote_log = "/tmp"
xdebug.remote_connect_back=1
xdebug.idekey=PHPStorm
I add these lines " xdebug.remote_connect_back=1
xdebug.idekey=PHPStorm ", also resisted ide ,it is still the same
i assure that the three parameters are correct.
For me, the debugger never connected and I saw the Waiting for incoming connection with ide key message because I set set my Server configuration to port 9000. This should be set to port 80 (or whatever other port the webserver is listening to! This was confusing to me because it's right next to the Debugger dropdown and I figured it was to set the Xdebug port.
The Debug port is configured in Settings->Languagues & Frameworks->PHP->Debug. Set this to 9000 or whatever you configured php.ini to be.
Just a note, I was using IntelliJ IDEA, but it's all the jetbrains platform.
You wrote:
PhpStorm shows this error:Waiting for incoming connection with ide key "14841".
But you use:
xdebug.idekey=PHPStorm
Those ide keys need to match. PHP Storm is a bit funny about it.
But then you also said:
I could debug every line step by step except this one
$this->link = mysql_connect($this->dbserver, $this->dbuser, $this->dbpass);
How are they different? Is there different behaviour, or just doesn't it stop?
I had a similar issue. In my case it was caused by misunderstanding PHPStorm/IntelliJ PHP debugging modes. There are two modes:
"Local" PHP debugging
"Remote" PHP debugging
When you use the "local" debugging, IDE key is autogenerated
This means, that primitive bookmarklets, created at http://www.jetbrains.com/phpstorm/marklets/ will not work in local mode: the bookmarklet contains a hardcoded IDE key, but PHPStorm will generate a random one!
The solution is to enable "Remote" PHP debugging mode (it is currently called "PHP Remote Debug") in "Run/Debug Configurations" and set the IDE key in the right pane of the create launch configuration.
"DBGp proxy" in global settings is probably not what you want; create a "Remote" debug config and set the IDE key there.
I was having a similar issue in a local installation.
I fixed it by unselecting the setting: Use Path Mappings
Found under the Settings > Languages & Frameworks > PHP > Servers

Setting up phpstorm with xdebug

I have been trying to set up remote (virtual box server) debugging with phpstorm. When I press the debug button phpstorm just waits indefinitely for a connection. I've been looking for a solution for a couple days, and cannot get any varying results.
These are my phpstorm settings:
Host: mywebsite.dev
Port: 9000
Debugger: Xdebug
pathmapping: /public <--> /index.php
These are my xdebug params in php.ini
xdebug.remote_enable=on
xdebug.remote_autostart=off
xdebug.remote_handler=dbgp
xdebug.remote_connect_back=on
xdebug.remote_port=9000
xdebug.default_enable=on
xdebug.remote_mode=req
xdebug.remote_log=/var/log/xdebug/xdebug.log
Please let me know if you need anymore information. Thanks in advance!
This tutorial worked for me in Ubuntu
http://confluence.jetbrains.com/display/PhpStorm/Xdebug+Installation+Guide
I notice your php.ini looks a bit different. Here is mine :
[Xdebug]
zend_extension=<full_path_to_xdebug_extension>
xdebug.remote_enable=1
xdebug.remote_host=<the host where PhpStorm is running (relative to your site!)>
xdebug.remote_port=9000
And that was it.
Answering an old post for the heck of it...
You also need to edit you 20-xdebug.ini file
sudo nano /etc/php5/conf.d/20-xdebug.ini
The line zend_extension=xdebug.so should already be there. Add the following lines :
zend_extension=xdebug.so
xdebug.remote_enable = 1
xdebug.remote_connect_back = 1
xdebug.remote_port = 9000
xdebug.scream=0
xdebug.cli_color=1
xdebug.show_local_vars=1
There might be path mapping issues as well.
If you go in run|web server debug validation … do you get error messages ? If so, that’s a clue to what you still need to solve.
You also have to set the key to your xdebug extension in your browser.

Waiting for the XDebug Session 57% in Eclipse PDT

Browsing the hints when I write this message it seems this is a tough question with all kind of patches, but no clear answer ... Anyway, I try my chance, here it is.
I'm using Eclipse Helios PDT on Ubuntu 10.04, with XDebug and the corresponding section in php.ini as following:
xdebug support enabled
Version 2.0.5
Supported protocols Revision
DBGp - Common DeBuGger Protocol $Revision: 1.125.2.6 $
GDB - GNU Debugger protocol $Revision: 1.87 $
PHP3 - PHP 3 Debugger protocol $Revision: 1.22 $
Directive Local Value Master Value
xdebug.auto_trace Off Off
xdebug.collect_includes On On
xdebug.collect_params 0 0
xdebug.collect_return Off Off
xdebug.collect_vars Off Off
xdebug.default_enable On On
xdebug.dump.COOKIE no value no value
xdebug.dump.ENV no value no value
xdebug.dump.FILES no value no value
xdebug.dump.GET no value no value
xdebug.dump.POST no value no value
xdebug.dump.REQUEST no value no value
xdebug.dump.SERVER no value no value
xdebug.dump.SESSION no value no value
xdebug.dump_globals On On
xdebug.dump_once On On
xdebug.dump_undefined Off Off
xdebug.extended_info On On
xdebug.idekey no value no value
xdebug.manual_url http://www.php.net http://www.php.net
xdebug.max_nesting_level 100 100
xdebug.profiler_aggregate Off Off
xdebug.profiler_append Off Off
xdebug.profiler_enable Off Off
xdebug.profiler_enable_trigger Off Off
xdebug.profiler_output_dir /tmp /tmp
xdebug.profiler_output_name cachegrind.out.%p cachegrind.out.%p
xdebug.remote_autostart Off Off
xdebug.remote_enable Off Off
xdebug.remote_handler dbgp dbgp
xdebug.remote_host localhost localhost
xdebug.remote_log no value no value
xdebug.remote_mode req req
xdebug.remote_port 9000 9000
xdebug.show_exception_trace Off Off
xdebug.show_local_vars Off Off
xdebug.show_mem_delta Off Off
xdebug.trace_format 0 0
xdebug.trace_options 0 0
xdebug.trace_output_dir /tmp /tmp
xdebug.trace_output_name trace.%c trace.%c
xdebug.var_display_max_children 128 128
xdebug.var_display_max_data 512 512
xdebug.var_display_max_depth 3 3
I've been using Eclipse for PHP development without any problem so far, but never used debugging. When I launch the project in debugging mode I get the application correctly launched in the browser in the background, my by Debug/PHPDebug perspective is empty, while in the Eclipse console I have the message in the Title of this posting.
Thanks for any help
If Eclipse is stopping at 57%, then the remote debugging process couldn't be started. This might the case, when...
You didn't enable remote debugging in the file /PHP/php.ini:
xdebug.remote_enable=on
the remote host ip address (client which starts debug session (your IDE)) isn't correct:
xdebug.remote_host=IP_ADDRESS
Instead of defining the remote hosts ip address you can enable "multihost" remote debugging using:
xdebug.remote_connect_back=1
Also checkout the xdebug documentation for all settings: http://xdebug.org/docs/all_settings
I was struggling to setup xdebug and eclipse for an age.
I use ubuntu 12.04 on a 32bit system.
To setup the latest version of eclipse (juno) and the lamp tech stack i can strongly recommend this tutorial. There's a very good guide for setting up virtual hosts, too - script included.
Instead of following their section on installing xdebug, rather use xdebug's custom installation instructions referred to by #hakre in a related post.
Once xdebug shows up in the phpinfo output, you can continue by setting up eclipse for xdebug as described in the tutorial mentioned before.
If it still doesn't work make sure you
have read the answer above
xdebug's port is free and matches eclipse's debug configuration -> server tab -> server section -> configure button (9030 by default!)
and try
cutting the quotes from the zend_extension property within your php.ini file
putting all your xdebug-settings in your php.ini file - i dont have a xdebug.ini file in use.
repeating the filename within eclipse debug-configuration -> server tab -> url section -> last input field as shown below.
I found the problem for me was related to a specific browser, Firefox, and possibly due to an update of java to 7_21.
See my solution here
Eclipse, XAMPP, xDebug - waiting for XDebug session - stays in 57%
I had the same issue and searched for ages trying to fix it! I verified everything with my remote host, my port listening, and my Eclipse settings. I finally found the problem was that I needed to specify the IDE for XDebug in my php.ini, like:
xdebug.idekey=ECLIPSE_DBGP
Try edit the php.ini at: wamp\bin\apache\Apache2.4.4\bin
xdebug.remote_enable = on
xdebug.remote_host="localhost"
xdebug.remote_connect_back=1
I had the ame issue - editing the php folder php.ini when using WAMP seems to be not enough.
I had the exact same problem after I made a custom php build which accidentally replaced the original apache php module:
/usr/lib64/httpd/modules/libphp5.so
/usr/lib64/httpd/modules/libphp5-zts.so
To me, the fix is:
sudo rpm -e --nodeps php
sudo dnf install php
sudo service httpd restart
I found that for me it was the missing xdebug.idekey=ECLIPSE_DBGP in c:>\php\php.ini
Anyway this is my current php.ini configuration for xdebug, note I've not set the remote address:
[xdebug]
zend_extension=C:\php\ext\php_xdebug-2.9.6-7.3-vc15-nts-x86_64.dll
xdebug.remote_enable=1
xdebug.remote_connect_back=1
xdebug.remote_handler=dbgp
;xdebug.remote_host=127.0.0.10
xdebug.remote_autostart=1
xdebug.remote_port=9000
xdebug.show_local_vars=1
xdebug.expose_remotely=always
xdebug.default_enable=1
xdebug.idekey=ECLIPSE_DBGP
My environment:
W10 x64, php7.3.18 non-threadsafe, IIS as webserver

Remote debugging with XDebug and PHPStorm

First things first:
Server is an Apache running on Debian in a VMPlayer
Host is Windows 7
Debugging-Server is XDebug
Files are directly accessible via a shared folder
Important: XDebug is properly configured on Apache and my Win7 firewall as well. I know that b/c I can debug using Eclipse.
So what I am failing at seems to be the basic configuration of PHPStorm.
Let me give you some more details:
IP of Server: 192.168.56.128
IP of my host: 192.168.56.1
the file that I want to debug is index.php:
location on my Win7 host: C:\dev\sf\Symfony\
location on Debian: \mnt\hgfs\sf\Symfony\
URL: 192.168.56.128/Symfony/index.php
No matter what I fiddle together ... I get weired error messages like "Waiting for connection from JetBrains PhpStorm..." or PHPStorm asks me for Mozillas profile.ini, even though I configured Chrome as Default in Web Browsers.
So I will just set up a new project and hopefully someone tells me what is wrong with my configuration.
Run / Edit configurations / Defaults / PHP Remote Debugging:
Server: "Debian"
IDE key: -
Break at first line: yes
Servers:
Name: "Debian"
Host: 192.168.56.128
Port: 80
Debugger: Xdebug
use path mappings: yes
one path mapping configured:
C:\dev\sf\Symfony => /mnt/hgfs/sf/Symfony (also tried /Symfony - b/c PHPStorm shouldn't care about anything above /Symfony !?)
Run / Edit configurations / Defaults / PHP Web Application:
Server: "Debian"
Start URL: /Symfony
Browser: Chrome
Break on first line: yes
Now I choose: Run / Debug ... / 1.index.php
And I get asked for: Mozilla's profile.ini ... but I can't find it
Where is it ... ?
I already got so far that PHPStorm started Chrome. But maybe I first sort this out. So how can I get Firefox up and running? I also use Firefox with Eclipse ... no questions asked for a profile.ini.
Okay, there are three things I'd like to share with you. It's not the full recipe but the key ingredients that were first confusing me are:
The important sections to configure are "Servers" and "PHP Remote Debugging".
To configure "PHP Remote Debugging" you have to first add a new dataset using the [+] in the top left corner. The panel you get from just clicking on the "PHP R D"-button just keeps the default settings!
Absolute path regarding the VM actually means the absolute path starting from root (\mnt\hgfs\sf\Symfony). This was confusing to me cause I am still not sure why PhpStorm cares about directory levels above the shared folder. but it does.
If you are still having problems, there are two blog posts by the makers on how to set things up correctly.
First should work in most cases and requires zero-configuration other than a working xdebug install
Second details all of the configuration settings in detail
To 'see' the profile.ini in the PHP Storm 'Select File' Dialog simply rightclick inside of it and choose 'Show hidden files' then (in WIn7) move to C:\Users\YOURUSERNAME\AppData\Roaming\Mozilla\Firefox or the equivalent in your OS
Ensure that remote debugging is enabled in php.ini
xdebug.remote_enable = 1
Your server "192.168.56.128" should be in PHP-> Servers
Add PHP Web Application Debug Configuration, and use added server
Set a breakpoint and start debugging using this configuration

Resources