Дебажим PHP-контейнер с помощью Xdebug и PhpStorm / Хабр
Перевод статьи подготовлен в преддверии старта курса «Backend-разработчик на PHP».
Инструкция 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 и перезагрузить страницу.
Удачного дебага!
Узнать о курсе подробнее.
Еще по теме
- ServerLess PHP
- PHP и регулярные выражения: азы для новичков
- Разворачиваем API с AWS Elastic Beanstalk
HTML img height Атрибут
❮ HTML тег
Пример
Изображение высотой 600 пикселей и шириной 500 пикселей:
jpg» alt=»Девушка в куртка»>
Попробуйте сами »
Атрибут height
определяет высоту изображения в пикселях.
Совет: Всегда указывайте высоту
и ширину
.
атрибуты для изображений. Если установлены высота и ширина, пространство, необходимое для
изображение резервируется при загрузке страницы. Однако без этих атрибутов
браузер не знает размер изображения и не может зарезервировать
соответствующее пространство для него. Эффект будет заключаться в том, что макет страницы изменится
во время загрузки (пока загружаются изображения).
Совет: Уменьшение размера большого изображения с помощью Атрибуты height
и width
заставляют пользователя
загрузите большое изображение (даже если оно выглядит маленьким на странице). Чтобы этого избежать, измените масштаб изображения с помощью программы, прежде чем использовать его на странице.
Поддержка браузера
Атрибут | |||||
---|---|---|---|---|---|
высота | Да | Да | Да | Да | Да |
Синтаксис
Значения атрибутов
Значение | Описание |
---|---|
пикселей | Высота в пикселях (например) |
❮ HTML-тег
ВЫБОР ЦВЕТА
Лучшие учебники
Учебное пособие по HTMLУчебное пособие по CSS
Учебник по JavaScript
Учебник How To
Учебник по SQL
Учебник по Python
Учебник по W3. CSS
Учебник по Bootstrap
Учебник по PHP
Учебник по Java
Учебник по C++
Учебник по jQuery
Top References
Справочник по HTML
Справочник по CSS
Справочник по JavaScript
Справочник по SQL
Справочник по Python
Справочник по W3.CSS
Справочник по Bootstrap
Справочник по PHP
Цвета HTML
Справочник по Java
Справочник по Angular
Справочник по jQuery
Основные примеры
Примеры HTMLПримеры CSS
Примеры JavaScript
Примеры How To Примеры
Примеры SQL
Примеры Python
Примеры W3.CSS
Примеры Bootstrap
Примеры PHP
Примеры Java
Примеры XML
Примеры jQuery
| О
W3Schools оптимизирован для обучения и обучения. Примеры могут быть упрощены для улучшения чтения и обучения. Учебники, ссылки и примеры постоянно пересматриваются, чтобы избежать ошибок, но мы не можем гарантировать полную правильность всего содержания.