MyTetra Share
Делитесь знаниями!
Как настроить Xdebug на вебсервере Nginx с php-fpm в Debian 9
19.07.2019
18:48
Текстовые метки: linux, php, nginx, xdebug, отладка, php-fpm, debian, настройка
Раздел: Компьютер - Linux - Сеть в Linux - nginx

Чтобы добавить поддержку отладчика языка PHP Xdebug на веб-сервер Nginx, в котором скрипты выполняются с помощью php-fpm, небходимо сделать следующие действия.


Сначала нужно установить пакет php-xdebug. В результате в систему будут установлены нужные библиотеки, и для всех возможных конфигураций веб-сервераю То есть в каталоги:



/etc/php/7.0/apache2/conf.d

/etc/php/7.0/cli/conf.d

/etc/php/7.0/fpm/conf.d

/etc/php/7.0/mods-available/conf.d

/etc/php/7.0/phpdbg/conf.d



... будет добавлен файл 20-xdebug.ini, содержимое которого примерно следующее:



zend_extension=xdebug.so


Далее, надо открыть на редактирование файл


/etc/php/7.0/fpm/php.ini


и добавить в него следующие строки:



[XDebug]
xdebug.remote_enable=on
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
;; xdebug.profiler_enable=1
;; xdebug.profiler_output_dir="G:\xampp\tmp"


Эти строки конфигурируют соединения дебагера и IDE. По какой-то причине при установке пакета php-xdebug никаких дефолтных настроек никуда не прописывается.


Обычно, после этого надо перезагружать веб-сервер. Но в случае связки Nginx+Php-Fpm надо перезагружать именно демон сервиса php-fpm. А потом и nginx на всякий случай.


Сервис php-fpm может иметь нестандартное имя. Чтобы узнать имя сервиса, можно сделать пару команд:



> systemctl list-units | grep fpm

php7.0-fpm.service loaded active running The PHP 7.0 FastCGI Process Manager


> systemctl list-units | grep php

php7.0-fpm.service loaded active running The PHP 7.0 FastCGI Process Manager

phpsessionclean.timer loaded active waiting Clean PHP session files every 30 mins



Из этого выхлопа понятно, что сервис имеет имя php7.0-fpm. Поэтому, для перезагрузки сервисов Nginx и Php-Fpm, надо выполнить следующие команды:


service php7.0-fpm restart

service nginx restart



После чего надо проверить выхлоп функции phpinfo() и удостовериться, что xdebug подключен.


Так же в этом разделе:
 
MyTetra Share v.0.52
Яндекс индекс цитирования