jlucki / docker-php-dev-env
A simple web development environment using Docker with NGINX, PHP, MySQL and Xdebug.
Installs: 161
Dependents: 0
Suggesters: 0
Security: 0
Stars: 23
Watchers: 1
Forks: 12
Open Issues: 0
Language:Dockerfile
Type:project
README
This repository allows you to quickly get a development environment up and running using Docker, including a MySQL database and some debugging tools.
This environment includes the latest versions of the following software:
nginx:alpine
php:8.4-fpm
mysql:latest
xdebug
Prerequisites
- Docker - https://www.docker.com/products/docker-desktop
- Tested and confirmed working on:
- macOS 14.6.1 (Sonoma)
- Windows 10 Version 21H1 build 19043.1165
Project Setup
Run composer create-project jlucki/docker-php-dev-env "project_name"
Alternatively, download the files from this repo and copy them to your project directory.
Running the Container
- Run
docker compose up -d
from the project directory- The above command will only work on versions newer than 3.6. If you are using Docker 3.6 or older, use
docker-compose up -d
- You can check running containers withg
docker ps
- The above command will only work on versions newer than 3.6. If you are using Docker 3.6 or older, use
- Visit
localhost
in your browser
Setting up Xdebug in Your IDE
The following instructions are for PHPStorm.
- Click on Run > Edit Configurations
- Click the
+
and add a new PHP Remote Debug configuration - Give the configuration a name
- Tick Filter debug connection by IDE key
- Add
PHPSTORM
in the session id - Click the
...
next to Server - Click the
+
to add a new server - Give the server a name, and set the host to
localhost
- Tick Use path mappings
- Under the
Project files
file/directory, next to your project folder, for theAbsolute path on the server
column add/var/www/html
- Hit Apply and OK until you've returned to the IDE
- Click the Start Listening for PHP Debug Connections icon
- Set a breakpoint in your code
- Refresh the page in your browser
- Accept Incoming Connection From Xdebug
- Happy debugging!
See https://xdebug.org/docs/remote for how to enable xdebug sessions.
Additional Notes
For database connections, use mysql
as the hostname. If you would like a different hostname, change the service name in the docker-compose.yml
file.
Windows 10 Troubleshooting
For troubleshooting tips see the wiki.