I'm using Ubuntu 16.04 and I have my projects on a plain Apache 2 with PHP 7.3. I have installed Xdebug but for some reasons I can't make it stop at the breakpoint.
Am I missing some configs here? I tried calling xdebug_get_code_coverage(); function to check if I do have Xdebug installed and yes the function does exist.
I also have the PhpStorm configs set.
I have these entries on all my php.ini files. apache2, cli and fpm. just to make sure
[Xdebug]
zend_extension=/usr/lib/php/20180731/xdebug.so
xdebug.default_enable=1
xdebug.idekey=PHPSTORM
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_port = 9000
xdebug.remote_connect_back=1
My listener is also turned on and my breakpoints are set:
But when I hit http://localhost/info/test.php?XDEBUG_SESSION_START=1
its not stopping on the breakpoints.
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.
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.
PhpStorm cannot see xdebug but it is installed. In my browser xdebug works fine. Where is the problem?
The error:
Connection with 'xdebug' was not established. Validate installation.
php.ini
[xdebug]
xdebug.idekey=PHPSTORM
zend_extension="/Applications/MAMP/bin/php/php5.4.10/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so"
xdebug.default_enable=1
xdebug.coverage_enable=1
xdebug.profiler_enable = 1
xdebug.profiler_output_dir = "/tmp"
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_autostart=1
phpinfo in phpstorm:
PHP version: 5.4.10
Loaded extensions: bcmath, bz2, calendar, Core, ctype, curl, date, dom, ereg, exif, fileinfo, filter, ftp, gd, gettext, hash, iconv, imap, json, ldap, libxml, mbstring, mcrypt, mysql, mysqli, openssl, pcre, PDO, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, Reflection, session, SimpleXML, soap, sockets, SPL, sqlite3, standard, tokenizer, XCache, xml, xmlreader, xmlwriter, xsl, yaz, zip, zlib
First, are you using MAMP (free) or MAMP Pro?
Turns out there is a difference between the php.ini file you edit from MAMP and the php.ini file that PhpStorm uses in the interpreter.
The MAMP Pro php.ini file resides in /Library/Application Support/appsolute/MAMP PRO/conf/php.ini and doesn't have a PHP installation (which PhpStorm needs when setting the interpreter). If you run phpinfo(); this is the file you will see data from.
When you set PhpStorm to the necessary location here /Applications/MAMP/bin/php/php5.4.x/bin it looks at the php.ini file there, not the one that MAMP Pro uses (above). So if you want PhpStorm to see the debugger, you need to add the code to that php.ini file.
For help setting up the interpreter for MAMP and PhpStorm refer to the documentation here
HELPFUL HINT: When checking to see if xdebug is installed make sure to run the --version command in terminal from the MAMP php location. Otherwise you'll end up seeing the default OSX PHP info which wouldn't have xdebug installed by default.
Example: run this in the PhpStorm terminal to see if it works /Applications/Mamp/bin/php/php5.4.4/bin/php --version
MAMP using different php.ini if you run it from terminal, try this code to find the php.ini
php -i | grep php.ini
After that add the code for activate the xDebug
[xdebug]
zend_extension="/Applications/MAMP/bin/php/php5.4.10/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so"
xdebug.remote_enable=true
xdebug.remote_port=9000
xdebug.profiler_enable=1
xdebug.remote_host=localhost
xdebug.profiler_output_dir="/Applications/MAMP/tmp/xdebug"
xdebug.max_nesting_level=1000
If this work, please consider accept the answer for the benefit the others.
This is because Mac OS X has php installed by default. There are two ini files for MAMP PRO.
PhpStorm will run the default php which you do not add the xdebug function to it.
Read this post for the solution
http://devnet.jetbrains.com/message/5466653
Pay attention to the STEP 5
===================================
okay, if it do not work, I thought u may not pay enough attention to the article, It do helpful and explain the reason, read i again ?
I had similar problem.
I did:
Installed xdebug by following the steps here.
Found out which version of PHP does my PHPStorm use.
Created a new entry in the corresponding php.ini file of the /path/to/xdebug/modules/xdebug.so.
and I was able to solve my problem. xdebug is working now.
I had a similar issue in that it worked then it did not.
In my case, the cause turned out to be an miss placed .htaccess file in the root of the project.
The .htaccess file (repeated below) was there from a previous set of testing and was intended to stop XDebug from working. It sure did.
php_value xdebug.remote_autostart 0
php_value xdebug.remote_enable 0
php_value xdebug.profiler_enable 0
I just renamed the file and like magic, all was good.
Up until recently, I've been writing code in PHP (via Notepad++) and debugging by checking the logs in IIS (gotta love that web-platform installer); I've since decided to update to a more efficient code-writing / testing environment, and after playing around for several moments with PHPStorm, decided to purchase it and give it a try. Since then, I have realized that in so far as tutorials and walk-throughs are concerned, PHPStorm is coming up a little short. Having given the manual a glance (RTFM, I know), and come up wanting, I'd like to ask if anyone out there would like to hand hold me through setting up PHPStorm with XDebug so I can stop hating myself for not studying the underlying systems well enough, and get back to coding.
TLDR; Could someone post a detailed walk-through for setting up PHPStorm + XDebug? Assume maximum level of stupidity on my part (I"m usually more than capable in the ASP.NET world, but I am approaching the intelligence level usually associated with some forms of sea-faring sponge in the PHP world).
The environment is Windows 7 Ultimate (64-bit) with IIS & PHP installed.
I've found a more modern and easier solution partially based on CrasyCoder's post.
The steps you need to do are the following:
If your brand new php installation doesn't contain php.ini, rename the php.ini-development to php.ini
Install xdebug with help of the wizard: http://xdebug.org/wizard.php Follow its recommendations literally.
Put in your php.ini the string: xdebug.remote_enable=1
Go to PhpStorm's settings: settings->php. Select or reselect directory containing php. Make sure you see 'Debugger: Xdebug x.x.x' string (where x.x.x stands for installed version)
Install an extension for your favorite browser from here: http://xdebug.org/docs/remote
From the main menu (not the settings window) go to 'Run->Edit configurations' and add new 'PHP Built-in Web Server' configuration. Point the 'Document root' to your project's directory. Note the port number.
Chrome browser: enable the extension pressing on the little bug in the rightmost side of the omnibox and selecting the Debug option. Other browsers' extensions should work similarly.
In PhpStorm's menu enable the 'Run -> Start Listen for PHP Debug connections' option.
Set a breakpoint in your code in PhpStorm.
Run (not debug) the configuration you created in step 6.
In your browser go to localhost:port where 'port' is the port from step 6. Your PhpStorm should stop on the breakpoint and you can start squashing bugs in your code.
Considering that:
Steps 1-5 are made once per php installation.
Step 6 is made once per PhpStorm project.
Steps 7-8 are made once per debuggin session.
Steps 9-11 are made each program run.
It's really simple to get Xdebug working with PhpStorm, just follow this guide carefully. (NOTE: Updated version of the guide is here)
For more advanced topics read this.
1. install xdebug module (MAC installation steps)
1.1.1. check what PHP version u r using php --ini (see the loaded file)
1.1.2. brew search xdebug
1.1.3. brew install phpXX-xdebug
1.1.4. see details: php -i | grep xdebug
1.2. restart server
1.3. configuration
1.3.1. sudo find /usr -name 'xdebug.so'
1.3.2. copy the path of the exact one you need
example: /usr/local/Cellar/php56-xdebug/2.3.2/xdebug.so
1.3.3. edit the extension related configuration file which should be injected to the main php.ini automatically:
subl /usr/local/etc/php/5.6/conf.d/ext-xdebug.ini
1.3.4. add the zend_extension to be = the path copied above
[xdebug]
zend_extension="/usr/local/Cellar/php56-xdebug/2.3.2/xdebug.so"
Normal file should have something like this:
[xdebug]
zend_extension="/usr/local/Cellar/php56/5.6.4/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"
xdebug.remote_autostart=1
xdebug.profiler_enable=1
xdebug.profiler_output_dir="~/xdebug/phpstorm/tmp"
xdebug.idekey=PHPSTORM
2. check your PHP version
php --ini
3. setup the IDE settings
preference > languages and framework > PHP >
3.1. set the language level to the correct PHP version of this project
3.2. set an interpreter (set the parent directory of where the bin directory of PHP executable is loaded)
3.2.1. click the … button > click the + button > other local > set PHP Excitable path,
to find the path type in the terminal: $ which php
example: /usr/local/Cellar/php56/5.6.5/bin/php
4. restart phpstorm
5. now let’s make it work
5.1. run > edit configuration > click the green + button on the left > select b. php web application
5.2. name: anything example ur {application name - debugger}
5.3. server: localhost (browse > + > name: whatever | host: localhost or 127.0.0.1)
5.4. click ok
5.5. start url: the link of ur project homepage: http://127.0.0.1:80/SomethingNew/
5.6. click ok
6. now set the break point and click debug
I had quite some troubles when I touched XDebug remote debugging the first time yesterday.
A few general hints, you are overflown with various tutorials and guides anyway.
Your XDebug configuration on PHP/Aache side:
xdebug.remote_enable=1
xdebug.remote_port=9000
xdebug.idekey=PHPSTORM
xdebug.remote_connect_back=1
You need to either use remote_connect_back as given above (be careful, this means other people can debug your server too while it is enabled) or you specify your IP address (remote_host).
On Client Side you need to have your router forward the Port 9000 !
You need to allow PHPStorm for incoming connections in your Firewall (was not enabled by default on Windows 8 for me). Either open Port 9000 or the app itself.
On PHPStorm make sure to go into Debug configuration and not use the default debug (PHPUnit!) Use "PHP remote debug" (Run/Debug Configurations -> The PLUS sign on upper left)
You will need to tell PHPStorm the absolute path of your project on the webserver, if you make an error here (and forget that) you will get a prompt anyway.
Now Debug your project in PHPStorm while having "Listen for connections" enabled and put a breakpoint into your code.
With your webbrowser open your website/php file while having a cookie enabled that starts the debugger. (cookie is the best approach in most cases). You can use a bookmark (google for phpstorm debugging bookmark) or an extension.
Even following the guides, I missed several of the above points. I hope I could save some hours of struggling :)
If you don't need remote debug, you can easily debug your project.
First check your php.ini settings.
Be sure that your xdebug dll exists and the settings are on.
xdebug.remote_enable = on
xdebug.profiler_enable = on
xdebug.profiler_enable_trigger = on
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir = "c:/wamp/tmp"
xdebug.show_local_vars=0
Then go to Run menu in top navbar. Then select edit configurations and add new configuration ( do not change your default settings for another project )
Click add new item button.
After adding new php web application
If you do not have any server ( generally points the localhost with 80 port on windows or linux ) click the button shown as below.
Add a new server with xdebug.
Then click ok and check your configuration
Finally, you will see the configuration at the right side of ide.
Click RUN or DEBUG button.
install xdebug on your local PHP - actually update your php v with xdebug included:
https://floyk.com/en/post/how-to-update-php-version-on-your-macbook-macos-sierra
setup your xdebug.ini
zend_extension=/usr/local/php5/lib/php/extensions/no-debug-non-zts-20180731/xdebug.so
[xdebug]
xdebug.remote_enable=on
xdebug.default_enable=on
xdebug.remote_autostart=off
xdebug.remote_port=9000
xdebug.remote_host=localhost
xdebug.profiler_enable_trigger=1
xdebug.profiler_output_name=xdebug-profile-cachegrind.out-%H-%R
xdebug.var_display_max_children = 128
xdebug.var_display_max_data = 512
xdebug.var_display_max_depth = 3
xdebug.remote_enable = 1
xdebug.idekey = PHPSTORM
xdebug.show_error_trace = 1
xdebug.file_link_format = phpstorm://open?%f:%l
Install Xdebug helper to your Chrome browser:
Install Xdebug helper
in your PhpStorm go to Settings/Preferences->Languages & Frameworks->PHP->Debug
Update your Automatically detect IDE IP if needed, and press OK
You are done.
More detailed "step by step" guide you can find here:
https://floyk.com/en/post/how-install-php-with-xdebug-on-mac-os