Перевод статьи подготовлен в преддверии старта курса «Backend-разработчик на PHP».


Инструкция Docker #9: xdebug
Я создам очень простую php-страницу и подебажу ее с помощью xdebug и PhpStorm.
Исходные файлы можно найти здесь:
github.com/ikknd/docker-study в папке recipe-09
1. Создайте файл «Dockerfile» в папке «docker»:
Выполните эту команду из папки docker для создания образа:
2. Создайте файл docker-compose.yml в папке «docker»:
Здесь я использую образ «php-xdebug-custom» вместо «php:7.2-fpm „
3. Внесите в файл php.ini следующие настройки:
4. Настройте сервер в PhpStorm:
File -> Settings -> Languages и Frameworks -> PHP -> Servers
Добавьте новый сервер с помощью иконки + и настройте его, как показано на следующем скриншоте:

Убедитесь, что вы отметили «Использовать сопоставление путей» (“Use path mappings») и сопоставили папку php с
5. Настройте удаленный дебагер PHP в PhpStorm:
Run -> Edit configurations -> PHP Remote Debug
Добавьте новую конфигурацию и присвойте ей значения, как на следующем скриншоте:

6. Выберите конфигурацию дебага на панели дебага PhpStorm

7. Перейдите в
Если я сейчас введу
Я могу установить точку останова, начать прослушивание соединений в панели дебага PhpStorm и перезагрузить страницу.
Удачного дебага!
Узнать о курсе подробнее.


Инструкция Docker #9: xdebug
Я создам очень простую php-страницу и подебажу ее с помощью xdebug и PhpStorm.
Исходные файлы можно найти здесь:
github.com/ikknd/docker-study в папке recipe-09
1. Создайте файл «Dockerfile» в папке «docker»:
FROM php:7.2-fpm
#Install xdebug
RUN pecl install xdebug-2.6.1 && docker-php-ext-enable xdebug
CMD ["php-fpm"]
Выполните эту команду из папки docker для создания образа:
docker build -t php-xdebug-custom -f Dockerfile .
2. Создайте файл docker-compose.yml в папке «docker»:
version: "3.7"
services:
web:
image: nginx:1.17
ports:
- 80:80
volumes:
- /var/www/docker-study.loc/recipe-09/php:/var/www/myapp
- /var/www/docker-study.loc/recipe-09/docker/site.conf:/etc/nginx/conf.d/site.conf
depends_on:
- php
php:
image: php-xdebug-custom
volumes:
- /var/www/docker-study.loc/recipe-09/php:/var/www/myapp
- /var/www/docker-study.loc/recipe-09/docker/php.ini:/usr/local/etc/php/php.ini
Здесь я использую образ «php-xdebug-custom» вместо «php:7.2-fpm „
3. Внесите в файл php.ini следующие настройки:
[xdebug]
zend_extension=xdebug.so
xdebug.profiler_enable=1
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=host.docker.internal
xdebug.remote_port=9000
xdebug.remote_autostart=1
xdebug.remote_connect_back=1
xdebug.idekey=PHPSTORM
4. Настройте сервер в PhpStorm:
File -> Settings -> Languages и Frameworks -> PHP -> Servers
Добавьте новый сервер с помощью иконки + и настройте его, как показано на следующем скриншоте:

Убедитесь, что вы отметили «Использовать сопоставление путей» (“Use path mappings») и сопоставили папку php с
/var/www/myapp
.5. Настройте удаленный дебагер PHP в PhpStorm:
Run -> Edit configurations -> PHP Remote Debug
Добавьте новую конфигурацию и присвойте ей значения, как на следующем скриншоте:

6. Выберите конфигурацию дебага на панели дебага PhpStorm

7. Перейдите в
/var/www/docker-study.loc/recipe-09/docker/
и выполните:docker-compose up -d
Если я сейчас введу
myapp.loc/
в браузере, я увижу результаты из файла index.php
.Я могу установить точку останова, начать прослушивание соединений в панели дебага PhpStorm и перезагрузить страницу.
Удачного дебага!
Узнать о курсе подробнее.