A few times, I could not watch xDebug on my favorite IDE. I did check xDebug config as well as IDE, and followed up a tons of things, then it still did not work.
Then, I found out this myth: port 9000 conflict between xDebug client_port and php-fpm listen port.
It’s so frustrated that my IDE PHPStorm does not tell anything about this conflict, then I did not know anything about this.
How to solve this issue?
- Disable php-fpm. This works for me as my server is run on Docker. The current php-fpm process is left intact due to my previous setup with the local PHP on my machine.
- Change port in either xDebug or php-fpm, obviously.
I am using brew to manage PHP on my MacOS laptop, so this is the guide I needed to change the php-fpm port for PHP 7.4. In short, I needed:
- Open file:
/usr/local/etc/php/7.4/php-fpm.d/www.conf
- Update
9000
to9999
(or whatever port that does not create conflicts) in this line:listen = 127.0.0.1:9999
- Restart brew service:
brew services restart php@7.4
How to know if it’s a conflict?
Use the following command to list out the current process(es) using port 9000, which is specific for Mac but I guess you can figure it out for other OS:
sudo lsof -PiTCP -sTCP:LISTEN | grep 9000
Based on this answer.