Ответ 1
В php.ini
была синтаксическая ошибка. Были дополнительные "
цитаты "
и ;
colons ;
.
Я запускаю веб-сервер localhost на своей машине Windows с помощью WebMatrix и IISExpress. Я установил в него PHP и Xdebug, и они оба работают.
У меня есть локальная установка WordPress.
Теперь я пытаюсь заставить PhpStorm отлаживать его с помощью Xdebug.
Когда я запускаю PhpStorm, он запускает веб-приложение в браузере с соответствующими параметрами отладки в браузере.
IDE KEY соответствует
xdebug.remote_port
настроен правильно. (Позже я обнаружил, что это неправильно, но не ошибочно. Это должен быть порт 9000)
Но, похоже, Xdebug никогда не связывается с PhpStorm. PhpStorm продолжает прослушиваться, и выполнение выполняется полностью, не останавливаясь ни в каких точках прорыва.
В php.ini
была синтаксическая ошибка. Были дополнительные "
цитаты "
и ;
colons ;
.
Эти строки имеют решающее значение для работы (в php.ini):
zend_extension=/usr/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so
xdebug.remote_autostart = 1 <-------- THIS
xdebug.remote_enable = 1 <----------- AND THIS
Без этих строк xdebug никогда не будет работать на phpstorm;)
Попробуйте изменить порт прослушивания xdebug в вашем php.ini и вашей среде IDE.
Запуск Mac Yosemite, для меня проблема заключалась в том, что я установил с homebrew, следуя руководству, использующему php-fpm, который по умолчанию использует порт 9000
(который конфликтует с портом по умолчанию xdebug)... Изменение моего xdebug.remote_port
до 9001
и изменение порта xdebug в phpstorm устраняло проблему, хотя я подозреваю, что эта проблема может произойти для любого в любой среде IDE. Я googled в течение большей части дня и не видел этого решения (так как я считаю, что это так специфично для установки метода). Но я надеюсь, что это кому-то поможет.
Взял меня около часа, пока я не заметил, что эта кнопка не была активирована;)
"Запустить" → "Начать прослушивание подключений отладки PHP"
Сначала проверьте, на каком порту xdebug работает, вы можете найти его в своем php.ini под xdebug.remote_port=9123
. Как вы можете видеть в моем случае, оно установлено на 9123.
Теперь откройте PhpStorm перейдите к отладке php, см. Снимок экрана:
в Xdebug вы найдете отладочный порт, убедитесь, что его значение такое же, как в файле php.ini в разделе xdebug.remote_port
(9123 в моем случае).
Надеюсь, что это поможет
Для меня это изменило строку:
xdebug.remote_host = локальный в xdebug.remote_host = myComputerIP
(пользователь Mac: в терминале запустите ifconfig, чтобы найти ваш ip)
PHPStorm имеет встроенный инструмент в Run > Проверка отладки веб-сервера.
Это помогло мне решить мою проблему.
Если кто-то еще сталкивается с этой проблемой и использует Vagrant, это то, что окончательно исправил ее для меня:
xdebug.remote_host=10.0.2.2
Это должен быть IP-адрес вашего локального компьютера внутри поля Vagrant, а 10.0.2.2 по умолчанию. Если вы ssh в поле "Бродяга", он отобразит IP-адрес, в который вы вошли, если вы хотите подтвердить.
Я знаю, что это не имеет прямого отношения к конкретной настройке OP, но это сообщение появляется во многих файлах xdebug/PhpStorm Google, поэтому, надеюсь, это может помочь кому-то другому.
Я также получаю это сообщение об ошибке.
Также были проблемы с php.ini, но более тонкие.
Попробуйте найти и удалить строку, подобную этой
extension=php_xdebug-...
Посмотрите на мой ответ здесь для деталей "Xdebug - команда недоступна.
У меня была такая же проблема, пытаясь проверить проект Laravel с помощью XAMPP на Windows в PHPStorm. Я понятия не имею, что именно я делаю неправильно, но в конечном итоге я получил работу. Я последовал за пошаговыми инструкциями на сайте PHPStorm здесь.
Одна вещь, которая, как мне кажется, не была настроена правильно, заключалась в том, что в меню PHP в настройках не было интерпретатора.
В моем php.ini
мне также было предложено несколько комбинаций настроек. Это были настройки, которые у меня были при работе:
zend_extension = C:\xampp\php\ext\php_xdebug-2.3.2-5.6-vc11.dll //as recommended from the Xdebug site itself
xdebug.remote_enable=1=
xdebug.profiler_enable=1
xdebug.profiler_output_name = "cachegrind.out.%t-%s"
В моих конфигурациях Run/Debug я использую настройку веб-приложения PHP, которая начинается только в корневом каталоге сайта. (Сначала я думал, что добавленная ?XDEBUG_SESSION_START=<xxxxxxx>
была ошибкой, но это не так). Надеюсь, это может помочь, если кто-то сталкивается с аналогичной проблемой.
День 572... Все еще не спал и не ел... Но я наконец нашел виновника: Защитник Windows!
По сути, у меня был брандмауэр, блокирующий расширение Chrome поддержки JetBrains IDE от отправки данных в PhpStorm через адрес по умолчанию 127.0.0.1:63342.
--- Изменить
День 864... Та же проблема повторилась, на этот раз в Linux... Но я наконец нашел виновника: Ubuntu Firewall!
Серьезно, это случилось со мной снова несколько месяцев спустя, с использованием Linux, и это снова был брандмауэр. Отключение брандмауэра решило эту проблему sudo ufw disable
- Если вы заботитесь о брандмауэре и хотите оставить его включенным, нужно углубиться в создание своего рода белого списка для него.
У меня была проблема, когда один проект работал, а не другой. Я пробовал много разных конфигураций, и я попытался посмотреть журналы xdebug и т.д. Это исправление, похоже, решило мою проблему:
Попробуйте настроить фактические порты xdebug на 9123 вместо 9000.
Новая версия (9) PHPStorm изменила свой порт подключения по умолчанию xdebug на 9123 (конфигурация PHPSTORM, а не фактическая конфигурация xdebug), вероятно, по уважительной причине, так как наличие конфигурации PHPSTORM для xdebug по умолчанию 9000 не работа, но с их установкой на 9123 действительно работала и разрешала проблему.
Я попробовал любой из предложенных трюков, и, наконец, я вызвал script на 127.0.0.1/script.php вместо localhost/script.php и bingo!
Исходя из ответа peteclark3:
Я думаю, что одно из решений, если у вас есть несколько версий php-fpm с xdebug, например php5.6-fpm, php7.1-fpm, - убедитесь, что работает только одна. У меня были и 5,6, и 7,1 бега. Потом попытался поменять на 7.1 на 9001 порт. Но если я изменю на порт 9001 в PhpStorm, то 5.6 начнет работать, потому что он слушает на 9000. Поэтому каждый раз, когда вы меняете версию php, тогда, вероятно, вам нужно будет изменить настройки в phpStorm. Поэтому я думаю, что лучше иметь только один из запущенных php-fpm, и все версии php-fpm могут использовать один и тот же порт.
Щелкните правой кнопкой мыши вкладку "Консоль" и снимите флажок "Фокус при запуске" (как показано на рисунке ниже), чтобы добиться цели.