Skip to content

Instantly share code, notes, and snippets.

@sparkalow
Forked from carstenwindler/xdebug.sh
Created March 18, 2022 22:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sparkalow/4e6203ebd2b044fe2d1cb578edab9122 to your computer and use it in GitHub Desktop.
Save sparkalow/4e6203ebd2b044fe2d1cb578edab9122 to your computer and use it in GitHub Desktop.
Bash script to quickly enable / disable xdebug in a PHP docker container
#!/usr/bin/env bash
# see https://carstenwindler.de/php/enable-xdebug-on-demand-in-your-local-docker-environment/
if [ "$#" -ne 1 ]; then
SCRIPT_PATH=`basename "$0"`
echo "Usage: $SCRIPT_PATH enable|disable"
exit 1;
fi
# Expects service to be called app in docker-compose.yml
SERVICE_ID=$(docker-compose ps -q app)
if [ "$1" == "enable" ]; then
docker exec -i $SERVICE_ID bash -c \
'[ -f /usr/local/etc/php/disabled/docker-php-ext-xdebug.ini ] && cd /usr/local/etc/php/ && mv disabled/docker-php-ext-xdebug.ini conf.d/ || echo "Xdebug already enabled"'
else
docker exec -i $SERVICE_ID bash -c \
'[ -f /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini ] && cd /usr/local/etc/php/ && mkdir -p disabled/ && mv conf.d/docker-php-ext-xdebug.ini disabled/ || echo "Xdebug already disabled"'
fi
docker restart $SERVICE_ID
docker exec -i $SERVICE_ID bash -c '$(php -m | grep -q Xdebug) && echo "Status: Xdebug ENABLED" || echo "Status: Xdebug DISABLED"'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment