Спасибо! 👍 Несколько дней мучался и только с помощью вашего видео смог настроить отладку на удалённом компе на котором запущен докер-контейнер. Теперь осталось найти ошибку, ради которой была нужна отладка. :)
@@ivansavchenco5636 уже как 3 года живу исключительно с дебаггером. Для меня жизнь делится на "до" и "после". Считанные разы возникала необходимость использовать var_dump, и только когда на проекте не было дебаггера
Очень подробное описание спасибо за детали - даже в англ ее долго искать - Слушайте для тех кто хочет понимать что происходит а не тупо ставить по туториалу
Большое спасибо за видео! Теперь я наконец то понял механизм отладки. Честно говоря я бы тоже предпочел чтобы Вы показали процесс отладки в одной из распространенных сред - openserver или xampp :)
да забыл сказать есть плейлист по поводу написания простейшего приложения и технологий которые на текущий момент актуальны, там есть ссылка на репозиторий и на докер файл, смотри под этим видео ua-cam.com/video/9B-mCJgapY4/v-deo.html
Лайк не глядя, ждем теперь вторую часть, отладка реального проекта, пускай даже не большого, в котором есть ошибки. В нетбинсе есть несколько плагинов для отладки. А то вышло так, открыл иде, и ээээээ, даже не вспомню, что здеся и где ээээээ, так же мы можем делать точка останова. ... Мы можем настраивать различные параметры. Шо это за халтура :) За видео спс, мой совет, надо немного готовиться заранее :)
да я нетбинсом последний раз пользовался несколько лет назад (году в 2014) думал ну по пути вспомню, но я там все что надо показал) просто под конец видео все больше лень становится я в этом видео еще хотел отладку скриптов из консоли показать и что такое export XDEBUG_CONFIG чтобы переопределить параметры в конфиге но оно и так затянулось. да и видео это не о редакторе а о отладчике но да учту про подготовку и слова поразиты уменьшу
к сожалению по докеру не являюсь большим экспертом, поэтому чтобы не научить плохому пока делать не буду, я могу лишь в докере дев окружение сделать, а вот настройки production и deploy это надо изучать)
Добрый день! Не очень понятен момент про отладочную сессию и то, как это связано с портом 9000, на котором крутится php-fpm. Как шторм с докером общается (с контейнером), если этот самый контейнер нигде наружу этот 9000 не пробрасывает? Что-то никак не могу это в голове уложить, схему в самом начале видел, но всё равно непонятно, как это работает в связке с докером
давай объясню есть докер контейнер, у каждого контейнера есть порты от 1 до 65535 (примерно) на каждом сетевом интерфейсе есть хостовая машина у которой свои порты от 1 до 65535 на кажом из ее сетевых интерфесов когда браузер с хостовой машины обращается на порт 8080 хостовой машины, запрос пробрасывается на контейнер nginx порт 80, который в свою очередь проксирует запрос на 8080 php-fpm контейнера. когда php-fpm конетйнер получает запрос он определяет надо ли начинать отладочную сессию(причины для начала отладочной сессии: если в xdebug настройках указано всегда начинать отладочную сессию, если в запросе есть команда на начало сессии в куках или гет или пост параметрах), если начинать надо, он определяет куда ее отправлять там есть 2 варианта 1. remote_connect_back= true отправлять туда откуда пришел запрос (на хостовую машину) и использовать порт remote_port (9000) получается запрос идет на хостовую машину порт 9000, на котором висит ide (phpstorm. 2. remote_connect_back = false значит используется адрес remote_host (172.17.0.1) который указывает на хостовую машину и порт remote_port(9000) где опять же висит ide которая должна слушать подключение далее php-fpm ждет инструкции уже в отладочной сессии если она началась. сеть между контейнерами она виртуальная, как будто бы контейнеры это отдельные узлы сети.
@@kuvshinovee кажется, понял, спасибо! Просто я пытался что-то подобное, что и тут в видео, воссоздать, только на образе докера php-apache, и не выходило. Потом попробовал вот как тут, и получилось. Теперь вот пытаюсь найти объяснение
Cпасибо, отличное видео. Возник вопрос: имя отладочной сессии может быть любым, главное, чтобы оно вообще было (не заметил, чтобы вы его где-то задавали в конфигах xdebug или PHPStorm)? Если например вместо 'magic' задать 'magic2' оно все равно взлетит? И еще один вопрос: иногда в шторме в настройках DBGp proxy задают IDE key - для чего это и то же ли это самое, что и имя отладочной сессии?
имя отладочной сессии может быть любым, я обычно использую что то вроде magic или foo, bar показать произвольность. имя отладочной сессии можно использовать для фильтрации в ide, чтобы останавливаться только в тех точках остановки которые возникают в отладочной сессии. например если взять сайт на laravel то есть условно api, также фоновые задачи я их называю обычно worker, ну и консольные команды я называю artisan. Если мне надо отловить запросы к api я указываю отладчику чтобы ide key = api чтобы он ловил отладку только их.
Добрый день. Подскажите, как мне отлаживать код, который относится к плагину wordpress и который отрабатывает(код), если заходишь только в панель администратора?
скажите пожалуйста, зачем в данном случае докер, маппинг и т.п.? почему бы просто не запустить локальный сервер? кажется для новичков такой вариант будет проще. При использовании локального сервера куда нужно вписать значение переменной PHP_IDE_CONFIG ? зачем она вообще нужна и с чем ее едят? ))
1. mapping - он нужен для того чтобы ide понимала какой именно фаил запущен на удаленной машине, когда xdebug соединяется с ide он говорит что запущен (/var/www/public/index.php), а по такому пути на компе с ide фаил отсутствует и надо сказать ide что пути с /var/www/public заменить на /home/smpl/projects/demo/public например. 2. Зачем docker - во первых без докера мне пришлось бы рассказывать как установить php и xdebug руками в разных окружения (Windows, Linux например) и если в Linux это все довольно просто ставиться и запускается, то в винде этот процесс не простой, можно конечно было бы поставить openserver, xampp, denwer и подобное но нафига ставить эти штуки, мне кажется это просто legacy и люди уже давно поняли что настройки окружения в проекте должны быть чтобы не забивать комп разными версиями одного и того же. Во вторых большинство рабочих проектов настройки окружения хранят в проекте в docker, rkt, vagrant + virtual box, или всякими скриптами разворачивания окружения(shell, ansible, puppet и тд) и чтобы они могли это применять у себя на работе 3. Потому что этот локальный сервер это по сути запуск из cli 4. PHP_IDE_CONFIG нужно прописать до запуска локального сервера, например export PHP_IDE_CONFIG="serverName=ololo" php -S localhost:8080 5. PHP_IDE_CONFIG нужна для ide phpstorm в частности, чтобы ide понимала настройки какова сервера использовать, в частности он берет настройки mapping вот тут подробней confluence.jetbrains.com/display/PhpStorm/Debugging+PHP+CLI+scripts+with+PhpStorm и blog.jetbrains.com/phpstorm/2012/03/new-in-4-0-easier-debugging-of-remote-php-command-line-scripts/
Мало того что в этой херне невозможно найти переменную или значение переменной, то она ещё добавляется в автозапуск, ужасная вещь, всё тормозит, не разу не python и не C#, C++ . День ото дня убеждаюсь что php мусор... из 2000х
ваше мнение очень важно для нас :) кстате не pyrhon а python наверно, который по сути тоже самое и встроенный отладчик pdb в python крайне похож на www.php.net/manual/ru/migration56.new-features.php#migration56.new-features.phpdbg другое дело что процесс отладки в этом отладчике еще меньше интегрированн в ide > невозможно найти переменную или значение переменной ниасилил, виноват php :)
@@kuvshinovee подскажите как настроить чтоб все быстро работало и удобно, если есть такая возможность, пока что я её не нашёл, запуск того же отладчика по вызову в phpstorm для веба в частности для ларавел, и поисковик там же в дебагер. Есть ли возможность использовать phpdbg с apache2 php 7.1?
Спасибо! 👍
Несколько дней мучался и только с помощью вашего видео смог настроить отладку на удалённом компе на котором запущен докер-контейнер. Теперь осталось найти ошибку, ради которой была нужна отладка. :)
Спасибо, хорошее видео!
спасибо за видос
Спасибо, очень полезная информация! Все никак с var_dump не соскочу. Попытаюсь это сделать с помощью вашего урока)
аналогично, бро) при том что с php знаком более 10 лет))
@@codingfox а сколько нас таких еще..)))
Разное для разного нужно... Где то удобнее var_dump, где то так дебажить. Некоторые так и остаються на var_dump авсегда и живут счастьливо)))))
@@ivansavchenco5636 уже как 3 года живу исключительно с дебаггером. Для меня жизнь делится на "до" и "после". Считанные разы возникала необходимость использовать var_dump, и только когда на проекте не было дебаггера
Очень подробное описание спасибо за детали - даже в англ ее долго искать - Слушайте для тех кто хочет понимать что происходит а не тупо ставить по туториалу
Большое спасибо за видео! Теперь я наконец то понял механизм отладки. Честно говоря я бы тоже предпочел чтобы Вы показали процесс отладки в одной из распространенных сред - openserver или xampp :)
Спасибо большое, разобрался при помощи вашего видео.
Наконец-то все заработало. Классная штука! Очень удобная! Спасибо за урок!
Мужик ты лучший!!!
Спасибо огромное вам за видеоурок!!! Прям спасли!!!))) Много полезной инфы) а то в этих портах и хостах запутаться можно XD
Большое спасибо за видео, помогло!
Благодарю за полезное видео!
Уже кое как освоил докер + дебагер + пшпшторм, но это видео внесло больше ясности.
Видео топ, спасибо большое! Ожидал в описании видео найти ссылку на гитхаб с проектом, но увы =)
да забыл выложить на гитхаб
да забыл сказать есть плейлист по поводу написания простейшего приложения и технологий которые на текущий момент актуальны, там есть ссылка на репозиторий и на докер файл, смотри под этим видео ua-cam.com/video/9B-mCJgapY4/v-deo.html
Лайк не глядя, ждем теперь вторую часть, отладка реального проекта, пускай даже не большого, в котором есть ошибки.
В нетбинсе есть несколько плагинов для отладки. А то вышло так, открыл иде, и
ээээээ, даже не вспомню, что здеся и где ээээээ, так же мы можем делать точка останова. ... Мы можем настраивать различные параметры.
Шо это за халтура :)
За видео спс, мой совет, надо немного готовиться заранее :)
да я нетбинсом последний раз пользовался несколько лет назад (году в 2014) думал ну по пути вспомню, но я там все что надо показал) просто под конец видео все больше лень становится
я в этом видео еще хотел отладку скриптов из консоли показать и что такое export XDEBUG_CONFIG чтобы переопределить параметры в конфиге но оно и так затянулось.
да и видео это не о редакторе а о отладчике
но да учту про подготовку и слова поразиты уменьшу
Спасибо
Спасибо за видео, очень познавательно.
Будет ли видео про докер? с большим удовольствием бы посмотрел
к сожалению по докеру не являюсь большим экспертом, поэтому чтобы не научить плохому пока делать не буду, я могу лишь в докере дев окружение сделать, а вот настройки production и deploy это надо изучать)
Добрый день! Не очень понятен момент про отладочную сессию и то, как это связано с портом 9000, на котором крутится php-fpm. Как шторм с докером общается (с контейнером), если этот самый контейнер нигде наружу этот 9000 не пробрасывает? Что-то никак не могу это в голове уложить, схему в самом начале видел, но всё равно непонятно, как это работает в связке с докером
давай объясню
есть докер контейнер, у каждого контейнера есть порты от 1 до 65535 (примерно) на каждом сетевом интерфейсе
есть хостовая машина у которой свои порты от 1 до 65535 на кажом из ее сетевых интерфесов
когда браузер с хостовой машины обращается на порт 8080 хостовой машины, запрос пробрасывается на контейнер nginx порт 80, который в свою очередь проксирует запрос на 8080 php-fpm контейнера.
когда php-fpm конетйнер получает запрос он определяет надо ли начинать отладочную сессию(причины для начала отладочной сессии: если в xdebug настройках указано всегда начинать отладочную сессию, если в запросе есть команда на начало сессии в куках или гет или пост параметрах), если начинать надо, он определяет куда ее отправлять там есть 2 варианта
1. remote_connect_back= true отправлять туда откуда пришел запрос (на хостовую машину) и использовать порт remote_port (9000) получается запрос идет на хостовую машину порт 9000, на котором висит ide (phpstorm.
2. remote_connect_back = false значит используется адрес remote_host (172.17.0.1) который указывает на хостовую машину и порт remote_port(9000) где опять же висит ide которая должна слушать подключение
далее php-fpm ждет инструкции уже в отладочной сессии если она началась.
сеть между контейнерами она виртуальная, как будто бы контейнеры это отдельные узлы сети.
@@kuvshinovee кажется, понял, спасибо! Просто я пытался что-то подобное, что и тут в видео, воссоздать, только на образе докера php-apache, и не выходило. Потом попробовал вот как тут, и получилось. Теперь вот пытаюсь найти объяснение
Cпасибо, отличное видео. Возник вопрос: имя отладочной сессии может быть любым, главное, чтобы оно вообще было (не заметил, чтобы вы его где-то задавали в конфигах xdebug или PHPStorm)? Если например вместо 'magic' задать 'magic2' оно все равно взлетит? И еще один вопрос: иногда в шторме в настройках DBGp proxy задают IDE key - для чего это и то же ли это самое, что и имя отладочной сессии?
имя отладочной сессии может быть любым, я обычно использую что то вроде magic или foo, bar показать произвольность.
имя отладочной сессии можно использовать для фильтрации в ide, чтобы останавливаться только в тех точках остановки которые возникают в отладочной сессии.
например если взять сайт на laravel то есть условно api, также фоновые задачи я их называю обычно worker, ну и консольные команды я называю artisan. Если мне надо отловить запросы к api я указываю отладчику чтобы ide key = api чтобы он ловил отладку только их.
Добрый день. Подскажите, как мне отлаживать код, который относится к плагину wordpress и который отрабатывает(код), если заходишь только в панель администратора?
1. развернуть среду разработки на своем компьютере
2. отлаживать в среде разработки
отладка или разработка на проде это плохо
Какую графическую оболочку или сборку Linux используете?
я использовал ну очень много разных оболочек и Linux
именно на видео ubuntu + gnome3 вроде, но это на втором мониторе.
мама - убей меня абстену...
A vot kak mojna nastroiti XDebug cerez Swoole + PHP-FPM...? )
github.com/swoole/swoole-src/issues/1681
вообще сделать видео на тему различных swoole, reactphp, и тд.
скажите пожалуйста, зачем в данном случае докер, маппинг и т.п.?
почему бы просто не запустить локальный сервер? кажется для новичков такой вариант будет проще. При использовании локального сервера куда нужно вписать значение переменной PHP_IDE_CONFIG ? зачем она вообще нужна и с чем ее едят? ))
1. mapping - он нужен для того чтобы ide понимала какой именно фаил запущен на удаленной машине, когда xdebug соединяется с ide он говорит что запущен (/var/www/public/index.php), а по такому пути на компе с ide фаил отсутствует и надо сказать ide что пути с /var/www/public заменить на /home/smpl/projects/demo/public например.
2. Зачем docker - во первых без докера мне пришлось бы рассказывать как установить php и xdebug руками в разных окружения (Windows, Linux например) и если в Linux это все довольно просто ставиться и запускается, то в винде этот процесс не простой, можно конечно было бы поставить openserver, xampp, denwer и подобное но нафига ставить эти штуки, мне кажется это просто legacy и люди уже давно поняли что настройки окружения в проекте должны быть чтобы не забивать комп разными версиями одного и того же.
Во вторых большинство рабочих проектов настройки окружения хранят в проекте в docker, rkt, vagrant + virtual box, или всякими скриптами разворачивания окружения(shell, ansible, puppet и тд) и чтобы они могли это применять у себя на работе
3. Потому что этот локальный сервер это по сути запуск из cli
4. PHP_IDE_CONFIG нужно прописать до запуска локального сервера, например
export PHP_IDE_CONFIG="serverName=ololo"
php -S localhost:8080
5. PHP_IDE_CONFIG нужна для ide phpstorm в частности, чтобы ide понимала настройки какова сервера использовать, в частности он берет настройки mapping вот тут подробней confluence.jetbrains.com/display/PhpStorm/Debugging+PHP+CLI+scripts+with+PhpStorm и blog.jetbrains.com/phpstorm/2012/03/new-in-4-0-easier-debugging-of-remote-php-command-line-scripts/
Мало того что в этой херне невозможно найти переменную или значение переменной, то она ещё добавляется в автозапуск, ужасная вещь, всё тормозит, не разу не python и не C#, C++ . День ото дня убеждаюсь что php мусор... из 2000х
ваше мнение очень важно для нас :)
кстате не pyrhon а python наверно, который по сути тоже самое и встроенный отладчик pdb в python крайне похож на www.php.net/manual/ru/migration56.new-features.php#migration56.new-features.phpdbg другое дело что процесс отладки в этом отладчике еще меньше интегрированн в ide
> невозможно найти переменную или значение переменной
ниасилил, виноват php :)
@@kuvshinovee подскажите как настроить чтоб все быстро работало и удобно, если есть такая возможность, пока что я её не нашёл, запуск того же отладчика по вызову в phpstorm для веба в частности для ларавел, и поисковик там же в дебагер. Есть ли возможность использовать phpdbg с apache2 php 7.1?
ммм, сложнота