xdebug + vm + centos + phpstorm
Потратил весь день на настройку, поэтому опишу все тут
Для начала его нужно установить. Я делал таким образом:
В index.php вставляем phpinfo();. Все что вернула данная функция - вставляем в специальное окошко на странице:
https://xdebug.org/wizard.php
Нам вернут инструкцию на чистейшем английском. Из нее мы узнаем:
Для начала займемся установкой:
Configuring for:
...
Zend Module Api No: 20121212
Zend Extension Api No: 220121212
Она должна быть именно такой. Иначе что-то пошло не так )
zend_extension = /usr/lib64/php/modules/xdebug.sosystemctl restart httpd.service)
Гарантией перезапуска является обновление информации после phpinfo();Итак, какую же я проблему схватил на пункте 4? А то что phpize не работает. Интерент мне советовал сделать так: pecl install Xdebug и даже так: apt install php5-dev. А потом и так: yum install php-devel. Но все это приводило к конфликту: Error: php55w-common conflicts with php-common-5.4.16-42.el7.x86_64. Я думаю, что это проблема моей, на скорую руку, кривонастроеной ОС. Но выход я нашел:
yum install php55w-devel
Что нужно знать на данном этапе? Из блока Summary держим инфу в голове:
Configuration File: /etc/php.ini (Файл конфигурации php, но он не понадобиться)
Можно настраимвать и /etc/php.ini, но я пошел другим путем. Можно создать отдельный файл конфигурации и все внести в него
Надо найти место, откуда PHP свои конфиги. Каким то чудесным образом я догадался что это /etc/php.d/ - туда я создал файд xdebug.ini с такими строками:
zend_extension = /usr/lib64/php/modules/xdebug.so
[xdebug]
xdebug.default_enable = On
xdebug.var_display_max_depth = 6
xdebug.remote_enable = On
xdebug.remote_host = 192.168.1.47
xdebug.remote_port = 9008
xdebug.remote_handler = dbgp
xdebug.idekey = PHPSTORM
xdebug.remote_autostart = 1
xdebug.remote_log=/tmp/xdebug/xdebug.log
xdebug.profiler_enable_trigger = 1
xdebug.profiler_enable = 0
xdebug.profiler_output_dir = /tmp/xdebug/profiler/
xdebug.show_local_vars = 1
xdebug.overload_var_dump = 1
Напишу то что я знаю:
zend_extension = /usr/lib64/php/modules/xdebug.so; Путь к модулю xdebug
xdebug.remote_host = 192.168.1.47; Это ip-адрес сетевой карты на моем компе (реальный-физический)
xdebug.remote_port = 9008; Это порт, любой, но 9000 жел. не выбирать
xdebug.remote_handler = dbgp; Это протокол общения с IDE
xdebug.idekey = PHPSTORM; Это тоже для IDE
xdebug.remote_autostart = 1; Автозапуск какой-то
После этого - рестар сервера и проверка в phpinfo(); Там должно до кучи появиться за xdebug
Уже должен быть настроен удаленный сервер. Но на всякий заброшу сюда настройки:
setting - deployment - plus(+)
Вкладка connection:
type SFTP
SFTP host 192.168.1.150
Port 22
Root path /home/igor/projects/kpidrive/frontend
User name igor
Password фиг вам
Вкладка mapping:
Local path C:\OpenServer\domains\vm.kpidrive.frontend
Deployment path on server... /
Web path on server... /
Вкладка Exclude Paths
Добавлено /local /test /node_modules
Такие дела. А мы идем дальше:
Настройка интерпретатора
setting - language & frameforks - php
PHP language level 5.5 (Тот что на сервере)
CLI Interpreter Жмакаем по точкам - Потом добавляем по plus(+) именно remote.
Тут я пропускаю, там вроде все логично, как добавить
Path mappings - Надо чтобы было Local Path Путь к файлам проекта Remote Path Путь к этим же файлам, но на сервере (/home/igor/projects/kpidrive/frontend)
Настройка Debug*
setting - language & frameforks - php - debug
В секции Xdebug выбираем port 9008, ставим галку Can accept external connections
Можно пару галок ниже поставить Force чего то там. Это заставит дебагер на первой строчке останавливаться. Но это не точно.
Настройка DBGp Proxy
setting - language & frameforks - php - debug - DBGp Proxy
IDE Key PHPSTORM
Host 192.168.1.150 (IP виртуальной машины)
Port 9008
Качаем расширение для chrome. Проверяем настройки (они понятные). Активируем.
готово, можно юзать