xdebug по умолчанию использует порт 9000
, что конфликтует с портом PHP-FPM.
Вам потребуется изменить назначенный порт вашей конфигурации пула PHP-FPM или xdebug в php.ini. Я рекомендую обновить конфигурацию PHP-FPM для прослушивания другого порта, так как его меньше настраивать для отладки с помощью xdebug.
Если вы хотите изменить порт в PHP-FPM.
/ PHP-fpm.d / pool.conf
[pool]
listen = 127.0.0.1:9001
Обновите конфигурацию NGINX соответствующим образом, чтобы использовать новый порт.
В противном случае, если вы хотите изменить порт xdebug в PHP.
php.ini
[xdebug]
xdebug.remote_port=9001
Обновите программное обеспечение отладки (PHP editor / IDE) и конфигурацию брандмауэра до нового порта. В качестве альтернативы используйте туннель SSH для пересылки нового удаленного порта 9001 на локальный порт по умолчанию 9000
Что касается вашего второго вопроса
xdebug работает только как расширение PHP (php-fpm), если он настроен на загрузку в настройках ini PHP. Он не работает как отдельный фоновый сервис.
* +1032 * Пример: * 1 033 *
[Browser Client -> http://example.com/path/to/script.php]
in -> [NGINX]
in -> [php-fpm /path/to/script.php]
[xdebug remote host:port] <- out
или
[terminal command line]
in -> [php /path/to/script.php]
[xdebug remote host:port] <-out
Так что да, для запуска xdebug нужны php-fpm или php-cli, поскольку они являются одним и тем же.
Если через Apache / NGINX, который использует php-fpm, он должен быть загружен в вашей конфигурации fpm. Если через интерфейс CLI, он должен быть загружен в вашей конфигурации CLI.
Имейте в виду, что вы можете запускать PHP с различными конфигурациями ini в зависимости от среды. См. PHP - Файл конфигурации