Files
ninja-php/README.md

2.0 KiB

PHP Docker Development Environment

This project uses Docker Compose to run a PHP application with Nginx and Xdebug support.

Prerequisites

  • Docker
  • Docker Compose

Setup and Run

1. Install Composer Dependencies

Run this command to install PHP dependencies using Composer in a Docker container:

docker run --rm -v $(pwd):/app composer install

2. Start Docker Containers

docker-compose up -d

This will start:

  • PHP-FPM container with Xdebug (port 9003)
  • Nginx web server (port 8080)

3. Access the Application

Open your browser and navigate to:

http://localhost:8080

Xdebug Configuration

Xdebug is pre-configured and runs on port 9003.

VS Code / Kiro IDE Setup

Add this configuration to your .vscode/launch.json:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for Xdebug",
            "type": "php",
            "request": "launch",
            "port": 9003,
            "pathMappings": {
                "/var/www/html": "${workspaceFolder}"
            }
        }
    ]
}

PhpStorm Setup

  1. Go to Settings → PHP → Servers
  2. Add a new server:
    • Name: localhost
    • Host: localhost
    • Port: 8080
    • Debugger: Xdebug
    • Use path mappings: Enable
    • Map your project root to /var/www/html

Useful Commands

Stop Containers

docker-compose down

View Logs

docker-compose logs -f

Restart Containers

docker-compose restart

Update Composer Dependencies

docker run --rm -v $(pwd):/app composer update

Access PHP Container Shell

docker exec -it php-fpm sh

Troubleshooting

403 Forbidden Error

Make sure the nginx configuration includes the index directive and restart nginx:

docker-compose restart nginx

Xdebug Not Working

  1. Check that port 9003 is not blocked by firewall
  2. Verify Xdebug is loaded: docker exec php-fpm php -v
  3. Check xdebug.ini configuration in docker/php/xdebug.ini