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.so
systemctl 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. Проверяем настройки (они понятные). Активируем.
готово, можно юзать