- Phpstorm Docker Xdebug Not Working
- Docker-compose Intellij Debug
- Phpstorm Xdebug Docker
- Phpstorm Docker-compose Php Version Not Installed
To follow this tutorial, you must have the Xdebug extension installed on your container. In my example, I will use a Docker image of TheCodingMachine created by David Négrier. If you are starting a project, I recommend you to download one of our images here TheCodingMachine Docker PHP images
Several environment variables are available for you to configure the Docker Compose command-line behavior. They begin with COMPOSE or DOCKER, and are documented in CLI Environment Variables. Compose, orchestration, environment, env file. Codeigniter docker-compose phpstorm xdebug docker-desktop. Improve this question. Follow edited Mar 27 at 19:44. Asked Mar 26 at 21:09. 3,828 8 8 gold badges 41 41 silver badges 68 68 bronze badges.
I have a PHP project based on Drupal and I use docker-compose to test it locally. In docker-compose.yaml I have a bind mount: volumes: -./modules/custom/test. Run Docker-Compose via PHPSTORM. Click Docker Button in PHPSTORM toolbar; Connect to Docker; Run all docker container; Twig configuration Allow autocomplete for objects Preferences Languages & Frameworks PHP Symfony Twig / Template: Namespace: main; Path: src/Resources/views. It's the next video in a series about the usage of PHPUnit and various interpreters in PhpStorm. Here Gary Hockin, PhpStorm Developer Advocate, explains how.
docker-compose.yml file looks like this:
PHP_EXTENSION_XDEBUG environment variable is specific to the
thecodingmachine/php. It automatically configures Xdebug for the container.
Keep in mind that PHPStorm opens port 9000 (by default) so Xdebug can connect to it. Our PHP container has Xdebug installed and Xdebug will try to connect to PHPStorm on port 9000 by default.
Out of the box, everything should be fine...
... except if port 9000 is already taken by another program on your host (your machine running PHPStorm).
Port 9000 can be already used. In particular, if you are using PHP-FPM, the default port for PHP-FPM is 9000.This directly conflicts with the XDebug port.
If you want to use another port for Xdebug, follow the instructions below.
I recommend to use port 10000 instead.
Otherwise, just keep the default configuration port.
Registering your container server in PHPStorm
First, click on edit configurations, on the top right of PHPStorm window.
Then, follow the explanation in picture. All numbers are explained below.
(1) Click on add button
(2) Confirm it by clicking on
PHP Web Page
(3) Define a name for your project
(4) Click on
... to add a debug server
(5) Once it's done, you are on debug server page. Click on '+' button to create a new one.
(6) Define a server name like
(7) Add your host on port 80 using Xdebug
(8) Don't forget to click on
Use path mappings
(9) We need to add path mapping. Indeed, from the point of view of Xdebug, the PHP application runs in the '/var/www/html' (we are in a container!).But for PHPStorm, my project is in my host machine directory! So we need to map the root of your PHP application to the '/var/www/html' directory, as shown on the image above.
At this point, you should be able to put a breakpoint in your code, start a debugging session and get the application to stop on the breakpoint. Jump to chapter 'Run Xdebug' to see how to use Xdebug.
All applications are not web-based. You might also want to debug a command-line application, from within your container.Let's see how to enable Xdebug for scripts (CLI)
docker-compose.yml, just add those environment variables
Remember that we are using our technical director's (David Négrier) images. That's why we can set PHP extensions, PHP .ini configurations into the
docker-compose.yml.For more details, please look at this TheCodingMachine Docker PHP images.
(1) Enable the Xdebug extension
(2) If you are using a different Xdebug port, set your custom Xdebug port
(3) Add your Xdebug server name
(4) If you are using the default Xdebug port, please remove
remote_port=[your_xdebug_port]. Otherwise, add your custom Xdebug port
Place a breakpoint in your code and launch a debug session
A new windows should open and you should access to PHPStorm debug bar.
Start Listening for PHP Debug connections
The button should appear like this :
Place a breakpoint in your code.
Now, just go into your php-apache container using
docker exec -ti [container_id] bash and run your script manually.
Addentum: Installing Docker integration in PHPStorm
There is a very useful PHPStorm extension to quickly and efficiently manage your docker containers.
- see the logs by container
- have access to bash in a clique
- quickly see environment variables
- clear or restart containers
- You should check that the 'Docker integration' is enabled on your IDE
- Start the Docker daemon on you machine
- Move to your favorite Docker project in PHPStorm
Now everything should be good, just go to
Languages and Frameworks >
Phpstorm Docker Xdebug Not Working
(1) Click on
... for openning the remote PHP interpreter
(2) Add a new CLI interpreter by clicking on
From Docker, Vagrant, VM, Remote...
(3) Click on Docker (remember that you should start Docker daemon)
(4) Add a new server
(5) Select a server name
(6) Choose how to connect on Docker
(7) Make sure the connection is successful
(8) Select your favorite default image
(9) You need to set the path mapping for your code. By default, it's
/opt/project in the container, just change it to
Done! Just click on the Docker button on the bottom of PHPStorm window.
About the author
Alexis is an experienced technical project manager who manages several projects including Eco-Emballages (CITEO). Graduate of EPITECH, Alexis is specialized in PHP frameworks (Symfony, Laravel, Mouf) and he masters Docker.
At TheCodingMachine, we are using open-source tools daily to build our projects. And since we and our clients are ripping huge benefits from these open-source products, we also try to 'give back' to the open-source community.
At TheCodingMachine, we are always looking for top freelance developers to work with us on our next state-of-the-art project.
Interested in developing quality projects? We love good work and we pay fairly.
We are hiring!
Living in France? We are actively looking for developers and project leaders in our Paris and Lyon office.
Do not hesitate to contact us!
Docker-compose Intellij Debug
When writing code, we expect it to be of the best possible quality. To enforce this quality, we redacted our own 'best practices' described in a dedicated website.
We are happy to share those with you!
Phpstorm Xdebug Docker
Phpstorm Docker-compose Php Version Not Installed
We are the happy parents of Packanalyst, a free online service that lets you search any possible PHP class or interface referenced on Packagist.
Pretty useful for open-source developer to keep an eye on who is using what class/interface of your packages.