Установка Xdebug
В ubuntu linux xdebug устанавливается следующим образом:
sudo apt-get install php5-xdebug
В windows, в денвере xdebug уже лежит в соответствующей директории ext, но он выключен. В Open Server то же самое, xdebug лежит в директории, но он не подключен.
P. S. Если вы еще сидите на денвере, настоятельно рекомендую перейти на Open Server, он новее, включает больше модулей и постоянно обновляется.
Настройка Xdebug
После установки необходимо настроить Xdebug, для этого нужно отредактировать конфигурационный файл php.ini:
- Нужно указать путь до расширения xdebug в php.ini:
При установке в ubuntu linux указанным выше способом, указывать расширение xdebug в php.ini не требуется, так как оно автоматически добавляется в PHP.
В windows, в open server, откройте php.ini щелкнув на значке флажка в правом нижнем углу экрана, в появившемся контекстном меню выберите пункт «дополнительно»->»конфигурация»->»PHP». В открывшемся файле конфигурации найдите секцию «[Xdebug]» (она внизу файла) и раскомментируйте следующую строчку, удалив точку c запятой в начале строки:
zend_extension="%sprogdir%/modules/php/%phpdriver%/ext/php_xdebug.dll"
В денвере путь до расширения нужно указать самостоятельно, вы должны прописать строчку [Xdebug] в конце файла и ниже прописать еще одну строку:
zend_extension=путь_к_xdebug.dll
где путь_к_xdebug.dll — это абсолютный путь к файлу до xdebug.dll.
2. Второй шаг — нужно включить удаленную отладку PHP скриптов. Делается это тоже в php.ini. В ubuntu linux откройте php.ini. Спуститесь в конец файла и добавьте строку [Xdebug] если она еще не добавлена. После нее добавьте строку
xdebug.remote_enable = 1
В денвере все делается аналогично. Добавляете строку в секцию [Xdebug].
В Open Server вы можете раскомментировать эту строку в секции [Xdebug], только не спутайте с xdebug.default_enable, а то отладчик не будет работать.
Все, основные настройки закончены. Если у вас занят 9000 порт (это порт xdebug по умолчанию), вы можете изменить его, добавив в секцию [Xdebug]:
xdebug.remote_port = 9001
Лучше, если есть возможность, оставить порт 9000 по умолчанию, так будет меньше мороки при настройке xdebug.
Вот что получилось для конфигурации php.ini в ubuntu linux:
[Xdebug] xdebug.remote_enable = 1
Отрывок файла конфигурации php.ini для Open Server:
[Xdebug] zend_extension="%sprogdir%/modules/php/%phpdriver%/ext/php_xdebug.dll" xdebug.remote_enable = 1
После добавления строк в php.ini нужно перезагрузить apache:
Ubuntu linux:
sudo service apache2 restart
Open Server: вызовите контекстное меню нажав на значок флага в трее и выберите пункт «перезапустить».
После перезапуска веб-сервера нужно проверить, что xdebug подключен. Выполните функцию phpinfo():
Наберите в поиске на странице слово «xdebug» и найдите пункт «xdebug.remote_enable», он должен быть выставлен в «On»:
Если вы не можете найти пункт Xdebug на странице phpinfo, то скорее всего у вас не подключено расширение, вы указали неверный путь в php.ini к расширению xdebug, либо попытались подключить расширение, которое не подходит к вашей версии PHP. Либо вы попросту забыли перезапустить веб сервер)
Большое спасибо, помогло.