123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- #! /bin/bash
- # NOTE: At the moment, this has only been confirmed to work with PHP 7
- # Grab full name of php-fpm container
- PHP_FPM_CONTAINER=$(docker ps | grep php-fpm | awk '{print $1}')
- # Grab OS type
- if [[ "$(uname)" == "Darwin" ]]; then
- OS_TYPE="OSX"
- else
- OS_TYPE=$(expr substr $(uname -s) 1 5)
- fi
- xdebug_status ()
- {
- echo 'xDebug status'
- # If running on Windows, need to prepend with winpty :(
- if [[ $OS_TYPE == "MINGW" ]]; then
- winpty docker exec -it $PHP_FPM_CONTAINER bash -c 'php -v'
- else
- docker exec -it $PHP_FPM_CONTAINER bash -c 'php -v'
- fi
- }
- xdebug_start ()
- {
- echo 'Start xDebug'
- # And uncomment line with xdebug extension, thus enabling it
- ON_CMD="sed -i 's/^;zend_extension=/zend_extension=/g' \
- /usr/local/etc/php/conf.d/xdebug.ini"
- # If running on Windows, need to prepend with winpty :(
- if [[ $OS_TYPE == "MINGW" ]]; then
- winpty docker exec -it $PHP_FPM_CONTAINER bash -c "${ON_CMD}"
- docker restart $PHP_FPM_CONTAINER
- winpty docker exec -it $PHP_FPM_CONTAINER bash -c 'php -v'
- else
- docker exec -it $PHP_FPM_CONTAINER bash -c "${ON_CMD}"
- docker restart $PHP_FPM_CONTAINER
- docker exec -it $PHP_FPM_CONTAINER bash -c 'php -v'
- fi
- }
- xdebug_stop ()
- {
- echo 'Stop xDebug'
- # Comment out xdebug extension line
- OFF_CMD="sed -i 's/^zend_extension=/;zend_extension=/g' /usr/local/etc/php/conf.d/xdebug.ini"
- # If running on Windows, need to prepend with winpty :(
- if [[ $OS_TYPE == "MINGW" ]]; then
- # This is the equivalent of:
- # winpty docker exec -it laradock_php-fpm_1 bash -c 'bla bla bla'
- # Thanks to @michaelarnauts at https://github.com/docker/compose/issues/593
- winpty docker exec -it $PHP_FPM_CONTAINER bash -c "${OFF_CMD}"
- docker restart $PHP_FPM_CONTAINER
- #docker-compose restart php-fpm
- winpty docker exec -it $PHP_FPM_CONTAINER bash -c 'php -v'
- else
- docker exec -it $PHP_FPM_CONTAINER bash -c "${OFF_CMD}"
- # docker-compose restart php-fpm
- docker restart $PHP_FPM_CONTAINER
- docker exec -it $PHP_FPM_CONTAINER bash -c 'php -v'
- fi
- }
- case $@ in
- stop|STOP)
- xdebug_stop
- ;;
- start|START)
- xdebug_start
- ;;
- status|STATUS)
- xdebug_status
- ;;
- *)
- echo "xDebug [Stop | Start | Status] in the ${PHP_FPM_CONTAINER} container."
- echo "xDebug must have already been installed."
- echo "Usage:"
- echo " .php-fpm/xdebug stop|start|status"
- esac
- exit 1
|