phpstorm-workshop
phpstorm-workshop copied to clipboard
Poor developer experience when PhpStorm doesn't work out of the box
I'm on macOS Sonoma, using the latest Docker Desktop for Mac, and the latest version of PhpStorm.
I followed the guide to install the Workshop from within PhpStorm:
As instructed, I edited the docker-compose.yml
to uncomment:
XDEBUG_CONFIG: remote_host=host.docker.internal
and
- /tmp:/home/jetbrains/upload
I ran the project as instructed, but this fails on an ARM processor Mac as the images are all Intel-based.
I then tried on an Intel Mac (again, latest Docker & PhpStorm) and I am at least able to build the project and it appears to run.
The docker-compose.yml appears to suggest I should be able to reach the project on port 8081
but this also fails:
The logs say:
[Mon Oct 09 23:47:24.636827 2023] [autoindex:error] [pid 18] [client 192.168.65.1:30717] AH01276: Cannot serve directory /var/www/html/: No matching DirectoryIndex (index.php,index.html) found, and server-generated directory index forbidden by Options directive
2023-10-09T23:47:24.637237955Z 192.168.65.1 - - [09/Oct/2023:23:47:24 +0000] "GET / HTTP/1.1" 403 493 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/118.0"
Later in the Debug your application section of the guide:
This is incorrect. There is no such interpreter automatically configured (that would require PhpStorm to create an .idea
folder with the interpreter already configured when generating the Workshop, right?):
I then attempt to create an interpreter, although the guide is no help at this point since it assumes it was automatically created:
Creating an interpreter which points at the php in the docker container is not enough. It appears a Run configuration needs to be created as well, and requires pointing the Run configuration at the exact same docker-compose.yml used when creating the interpreter:
After attempting to run the docker compose project, I was prompted with this:
There are no options for telling PhpStorm to get the phpinfo()
from the interpreter I've already configured. Given that I can't actually run this project, I can't copy and paste it either.
I stumbled upon this tutorial project after wasting time trying to get PhpStorm & xdebug working in a docker compose
environment. The PhpStorm documentation is very fragmented and doesn't walk someone through a full working example for a docker compose
-based setup. It's a shame that this official tutorial doesn't work either.
What is the right way to spin up a docker compose environment, configure PhpStorm to run the docker compose
containers, and connect to xdebug for debugging?