Как настроить совместную работу XDebug, PhpStorm и macOS для работы с хостингом Beget?

Как исправить проблему отсутствия входящего соединения от Xdebug в PhpStorm при использовании хостинг-провайдера Beget?
Изображение к вопросу
Изображение к вопросу
Изображение к вопросу
Изображение к вопросу
  • 17 октября 2023 г. 14:29
Ответы на вопрос 2
Для настройки совместной работы XDebug, PhpStorm и macOS с хостингом Beget, необходимо выполнить следующие шаги:

1. Установите и настройте XDebug:
   - Откройте файл php.ini на вашем хостинге (обычно расположен в директории /etc/php/7.4/apache2/php.ini или /etc/php/7.4/fpm/php.ini).
   - Раскомментируйте строку `zend_extension=xdebug.so`, удалив символ `;` в начале строки.
   - Добавьте следующие строки в конец файла:
     ```
     xdebug.remote_enable=1
     xdebug.remote_autostart=1
     ```

2. В PhpStorm настройте подключение к XDebug:
   - Откройте окно настроек PhpStorm (Preferences на macOS).
   - Перейдите во вкладку Languages & Frameworks > PHP > Debug.
   - Установите галочку в поле "Can accept external connections".

3. Установите расширение XDebug для браузера:
   - Вам нужно установить XDebug Helper для вашего браузера. Для Google Chrome это расширение можно найти в Chrome Web Store.

4. Настройте PhpStorm на прием входящих соединений от XDebug:
   - Откройте окно настроек PhpStorm (Preferences на macOS).
   - Перейдите во вкладку Languages & Frameworks > PHP > Servers.
   - Нажмите на кнопку "+" для добавления нового сервера и укажите следующие данные:
     - Name: любое удобное имя сервера (например, "beget")
     - Host: ваш домен или IP-адрес хостинга Beget
     - Port: 80
   - Установите галочку "Use path mappings" и нажмите на кнопку "..." напротив этой опции.
   - Укажите путь до корневой директории вашего проекта на хостинге Beget в поле "Absolute path on the server".

5. Проверьте настройки и запустите отладку:
   - Убедитесь, что вы открыли свой проект в PhpStorm и находитесь в нужном файле для отладки.
   - В вашем браузере запустите XDebug Helper и выберите опцию "Debug".
   - В PhpStorm нажмите кнопку "Start Listening for PHP Debug Connections" (в виде значка маленькой паузы с зеленой стрелкой).
   - Вы должны увидеть, что PhpStorm установило соединение с XDebug.

Если вы все сделали правильно, отладчик должен остановить выполнение кода на точках останова в PhpStorm.

Если у вас возникают проблемы с отсутствием входящего соединения от XDebug в PhpStorm при использовании хостинг-провайдера Beget, вам следует проверить следующее:

1. Убедитесь, что XDebug включен на хостинге Beget и что вы правильно настроили его в файле php.ini (как описано в первом шаге).

2. Проверьте настройки подключения XDebug в PhpStorm (как описано во втором шаге). Убедитесь, что вы установили галочку "Can accept external connections".

3. Убедитесь, что вы правильно настроили сервер в PhpStorm (как описано в четвертом шаге). Убедитесь, что вы указали правильный хост и путь до корневой директории вашего проекта на хостинге Beget.

4. Проверьте, что вы правильно настроили расширение XDebug Helper в вашем браузере и что вы выбрали опцию
Проверьте, что проброс порта работает корректно при подключении к ssh. Если после подключения данные не передаются, сервер закрывает соединение. Возможно, при повторной попытке подключения будет ошибка о занятом порте. В таком случае, вам придется найти процесс на сервере, занимающий этот порт, и завершить его. Чтобы избежать этой проблемы, добавьте флаги пинга к команде ssh, например:

ssh -o ServerAliveInterval=60 -R 9003:localhost:9003 user@host

Если проблем с портом нет и ошибок после подключения нет, проверьте, подключается ли PHP к xdebug. Выведите phpinfo и найдите раздел xdebug с версией. Если такого раздела нет, значит xdebug не установлен на сервере. Простое указание пути к xdebug.so в php.ini не сработает. Установите его, например, командой:

sudo apt-get install php7.4-xdebug

Наконец, проверьте версию xdebug. В версии 3 изменились названия некоторых настроек в php.ini. Например, в версии 2 порт указывался настройкой xdebug.remote_port, а в версии 3 переименован в xdebug.client_port. Подробные изменения можно найти на официальном сайте: https://xdebug.org/docs/upgrade_guide
Похожие вопросы