Running a script in command line is something we frequently do in Magento 2. For example, when creating new module, we must run setup:upgrade command. We cannot see all the information we need to know.
I know many Magento developers choose PHPStorm as their favorite editor. How we can use PHPStorm to debug Magento 2 command lines?
3 Answers 3
I configured "PHP Remote Debug" in PHPStorm and just add XDEBUG_CONFIG before script to start debugging.
like XDEBUG_CONFIG=idekey=phpstorm bin/magento setup:upgrade
-
How to setup debug in local. I am running php 5.5.15 with xdebug 2.2.3 on windows 10 and xampp . Enable listening and setting in configuration but console debug run without any logsmrtuvn– mrtuvn2016年03月06日 18:49:56 +00:00Commented Mar 6, 2016 at 18:49
-
Hope this documentation help you confluence.jetbrains.com/display/PhpStorm/…KAndy– KAndy2016年03月06日 19:20:45 +00:00Commented Mar 6, 2016 at 19:20
-
1
@KAndy’s answer put me on the right track, but I am developing locally using vagrant and had to do the following to get this to work1
Configure Xdebug:
zend_extension=xdebug.so
xdebug.remote_enable = 1
;remote_connect_back will fail because REMOTE_ADDR header won’t be set
xdebug.remote_connect_back = 1
xdebug.remote_autostart = 1
xdebug.idekey = "PHPSTORM"
;remote_host is ignored when remote_connect_back is enabled & successful; fallback
;Set to your HOST MACHINE IP
xdebug.remote_host=xx.xx.xx.xx
;provides valuable insight if you can’t connect. Remove when done.
xdebug.remote_log="/tmp/xdebug.log"
Set the remote_host IP to the IP address of the host (for me, using the IP address from ifconfig on the guest machine did not work - used IP address acquired from the network settings on the host machine as the remote_host).
Configure PHP Storm
- Set up a server under
Settings -> Languages and Frameworks -> PHP -> Serversif you have not done so already. (See screenshot) Example Server Settings on PHP Storm Run -> Edit Configurationsand add aPHP Remote Debug.- Choose the server you created in #1
- Set the IDE Key to PHPSTORM Configuration Settings
- (Optional)
Settings -> Languages and Frameworks -> PHP -> DebugCheck "Break at first line in PHP Scripts" (this can help debug issues with your path mapping.) Run -> Debug Vagrant(or whatever you named your configuration in Step 2)- Run the script you'd like to debug (
magento setup:upgradein my case)
1I'm using ubuntu/trusty64 for reference
after xdebug 3.0 update
Instead of setting the XDEBUG_CONFIG environment variable to idekey=PHPSTORM, you must set XDEBUG_SESSION to PHPSTORM:
export XDEBUG_MODE=debug XDEBUG_SESSION=1
-
1This worked for me! Please note that you don't have to run this each time with a Magento command, as it's saved in the terminal session. Therefore once you ran the export command, you can then run whatever Magento command afterwards.Smithee– Smithee2025年04月02日 14:15:33 +00:00Commented Apr 2 at 14:15