Установка и настройка xdebug Windows / Linux + VMWare Ubuntu 14,04 Guest + PHPStorm for Magento

Добрый день уважаемые читатели. Сегодня я расскажу как установить и настроить рабочий отладчик xdebug на гостевую машину запущенную под VMWare.
В моем окружении используются следующие компоненты:

  1. Windows 10 (как основная система)
  2. Ubuntu 14.04.3 Guest System  (Web server для разработки запущенный под VMWare Workstation 11)
  3. PHPStorm, установленный в Windows 10.

Задача использовать xdebug который будет находится в гостевой системе из под PHPSTORM Windows среды.
Приступим.
1. Установка xdebug на нашем сервере под управлением Ubuntu 14.04
Подключаемся к серверу по SSH, вводим следующую команду:

sudo apt-get install php5-xdebug

После ищем в какой директории установился xdebug

sudo find / -name 'xdebug.so'

Ожидаем некоторое время и в результате, там же в терминале получим что-то такое «/usr/lib/php5/20131226/xdebug.so»
Копируем куда нибудь.

Далее в терминале открываем php.ini  нашего сервера

sudo nano /etc/php5/apache2/php.ini

В данном файле в самый низ добавляем заапись такого вида, естественно подставив свой путь к xdebug который Вам выдал терминал выше.

zend_extension="/usr/lib/php5/20131226/xdebug.so"

Теперь делаем рестарт сервера

sudo service apache2 restart

После этих манипуляций xdebug уже готов к использованию на нашем сервере. <?php phpinfo(); ?> покажет следующее
This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
with Xdebug v2.3.2, Copyright (c) 2002-2015, by Derick Rethans
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies

Отлично, приступаем к настройке и привязке нашего xdebug  к Windows среде и PHPStorm запущенного под Windows 10.

  1. Настройка связки External (Remote) PHP with xdebug + PHPStorm Windows.

На самом деле здесь есть один ньюанс. Ваша рабочая станция под управлением Windows должна иместь статический IP адрес в локальной сети. По этому, если у вас. стоит получение IP адреса автоматически, это нужно заменить на статику. Надеюсь тут не нужно объяснять как это сделать.
Я беру за пример свой IP который у меня установлен статически — 192.168.0.104
Screenshot_1 Screenshot_2

 

Итак, теперь давайте внесем данный в php.ini о xdebug для того чтобы сервер понимал кого и куда перенаправлять.
Пишем в терминале гостевой ubuntu машины

sudo nano /etc/php5/apache2/php.ini

Находим  в низу файла нашу запись, которую мы добавляли в шаге выше «zend_extension=»/usr/lib/php5/20131226/xdebug.so» и добавляем под ней следющие параметры:

xdebug.remote_enable=1
xdebug.remote_port=9000
xdebug.remote_host=192.168.0.104
xdebug.idekey=PHP_IDE_CONFIG

Важно! Обратите внимание что в параметре xdebug.remote_host  я использую свой IP адрес который я сделал статическим в своей Windows 10,  как показал на скрине выше. Если  Вы имеете другой IP адрес, то пожалуйста укажите в этом параметре его.

Сохраняем файл перезапускаем apache на гостевой машине

sudo service apache2 restart

Приступаем к настройке PHPStorm под управлением Windows.
Открываем PHPStorm заходим в settings раздел «Languages & Frameworks» и открываем вкладку PHP и нажимаем как показано на скрине:
AhqEXrn

В открывшемся новом окне нажимаем сюда
Screenshot_3

Выбираем пункт «Remote…»
Screenshot_4

В открывшемся окне воодим требуемые параметры подключения к гостевой машине серверу. У меня гостевой сервер, точно так же как и основная Windows система имеет статический IP 192.168.0.110 и находится в реальном сегменте сети, не под NAT. У вас, соответственно может быть другой адрес. В любом случае в данном окне нужно вводить непосредственно те данные, которые вы используете при стандартном подключении по SSH  к гостевому серверу.
Screenshot_5

После того как заполнение формы закончено нажимаем ОК и видим следующее окно
Screenshot_6

Как видно на скриншоте  PHPStorm увидел и удаленный PHP ( в нашем случае это интерпритатор, установленный на гостевой Ubuntu Guest машине) так же он увидел что наш интерпритатор имеет в наличии Xdebug.  Также обратите внимание на сообщение чуть выше помеченное красным восклицательным знаком, пока ничего не делаем с ним, позже вернемся к нему уже из другого события. Итак, тут все, нажимаем Apply и OK и еще раз Apply и OK.

Идем дальше. Теперь снова открываем окно настроек PHPStorm только уже вкладку Servers и нажимаем зеленый крестик:
Screenshot_7

После нажатия нам выпадет стандартная форма заполнения данных. В поле name  я указываю название, в поле хост я указываю адрес хоста к которому будет применима эта надстройка. У меня этот хост в Windows в файле hosts выглядить так «192.168.0.110    magento.ce» То есть мой Windows host ссылается на IP гостевого сервера в котором в свою очеред через файл hosts запрос перенаправится на внутренний адрес машины 127.0.0.1.

Screenshot_8

Нажимаем Apply и OK. Идем дальше.
Теперь нам нужно создать Web Application для PHPStorm, которая будет работать с нашим уже настроеным xdebug сервером.
Переходим вот сюда
Screenshot_9

Создаем новый Web Application
Screenshot_10

Указываем все требуемые параметры согласно скриншота
Screenshot_11

Нажимаем Apply и OK. После чего у нас появится вот такой тулбар

Screenshot_12

Ставим брейкпойнт в index.php Magento
Screenshot_13

 

Пробуем начать отладку. Нажимаем на зеленого жука в нашем тулбаре в правом верхнем углу
Видим следующее
Screenshot_14

 

Наш дебаггер не остановился на требуемом брейкпойнте, он только перехватил данные передаваемые на сервер. В итоге , где бы мы не поставили брейкпойнт мы будем видеть только эти данные и никакие больше.  Как можно заметить чуть выше  у нас есть несколько ошибок, которые показывают что где-то есть проблема. А именно: проблема кроется в том, что phpstorm использует файлы проекта в Windows через shared folder модуль VMWare Tools и у нас просто возникает нестыковка путей к между физическим и виртуальным расположением файлов. Итак , если вы обратите внимание то самый последний нотайс это ссылка на которой написано «Click to set up path mapping«. Нажимаем на нее.
В открывшемся окне указываем маппинг пути к файлам проекта внутри гостевой машины, у меня файлы находятся по пути /var/www/magento.ce  у вас могут находится где-то в другом месте, суть в том чтобы заменить физический путь к файлам из под Windows на путь в виртуальной среде гостевого сервера.
Screenshot_15

 

Нажимаем ОК и снова запускаем сессию xdebug и ВУАЛЯ!  Все работает.
Screenshot_16

Вот таким образом можно настроить xdebug для того чтобы была возможность заниматься отладкой кода используя интерпритатор гостевой машины и установленый там отладчик.
На этом все, если у Вас возникнут сложности, трудности или будет остутствовать понимание того, что вы делаете , не стеснятесь писать в комментариях и задавать вопросы. Будем вместе с Вами разбираться и настраивать ваше окружение. Спасибо за внимание.

Оставьте комментарий