How To Debug PHP Container With Xdebug And PhpStorm

Written by ifomin | Published 2020/05/20
Tech Story Tags: docker | docker-compose | xdebug | php-debug | devops | php-xdebug | software-development | devops-docker | web-monetization

TLDR How To Debug PHP Container With Xdebug And PhpStorm And Dockerfile. I will setup a very simple PHP page and debug it using xdebug and Phpstorm. I can set a breakpoint, start listening for connections in Php storm. I then reload page and see results from index.php file. I use "glyglyglyph" and "glyphglyphph" to set breakpoint and listen for connections. I am a full stack web developer, tech lead, project manager by Igor Fomin.via the TL;DR App

I will setup a very simple php page and debug it using xdebug and PhpStorm.
Source files can be found here:

1. Create "Dockerfile" file in "docker" folder:

Execute this command from docker folder to build image:
docker build -t php-xdebug-custom -f Dockerfile .

2. Create docker-compose.yml file in "docker" folder:

Here I use "
php-xdebug-custom
" image instead of "
php:7.2-fpm
"

3. Modify php.ini file with xdebug settings:

4. Configure server in PhpStorm:

File -> Settings -> Languages & Frameworks -> PHP -> Servers
Add a new server using + icon, and configure like on the following screenshot:
Make sure to check "Use path mappings" and map php folder to "
/var/www/myapp
"

5. Configure PHP remote debugger in PhpStorm:

Run -> Edit configurations -> PHP Remote Debug
Add a new configuration and give it values like on the following screenshot:

6. Select debug configuration in PhpStorm debug panel

7. Go to /var/www/docker-study.loc/recipe-09/docker/ and execute:

docker-compose up -d
If I now try
myapp.loc/
in browser, I will see results from index.php file.
I can set a breakpoint, start listening for connections in PhpStorm debug panel, and reload page.
Happy debugging!

Written by ifomin | Full stack web developer, tech lead, project manager
Published by HackerNoon on 2020/05/20