Как установить xdebug php ubuntu

Обновлено: 04.07.2024

В данном учебном курсе рассматривается процедура настройки среды разработки PHP в операционной системе Ubuntu (версия 7.10 и более поздние). Эта процедура предполагает установку и настройку механизма PHP, базы данных MySQL, веб-сервера Apache и отладчика XDebug.

Для работы с этим учебным курсом требуется следующее программное обеспечение и ресурсы.

Пакет загрузки PHP

Сервер базы данных

Рекомендуется использовать сервер MySQL 5.0.

Отладчик PHP (не обязательно)

Версия XDebug 2.0 или более поздняя

Установка программного обеспечения

В данном учебном курсе рассматривается процедура настройки среды разработки PHP в операционной системе Ubuntu (версия 7.04 и более поздние). Необходимо выполнить следующие действия:

Для получения дополнительных сведений об установке Apache, MySQL и PHP см. Сообщество Ubuntu.

Одновременная установка всех пакетов программного обеспечения

Ubuntu предоставляет пакет Linux AMP (LAMP), который содержит все необходимые пакеты для среды PHP. Для установки программного обеспечения можно выполнить следующую команду в командной строке в окне терминала:

Пакет lamp-server включает в себя наиболее удобную версию PHP, Apache 2, MySQL и PHP5-MySQL.

Установка пакетов программного обеспечения по отдельности

Вместо установки целого набора коллекций LAMP пакеты можно также установить индивидуально. Эта функция используется, если один из компонентов (например, сервер Apache или сервер базы данных MySQL) уже установлен. Можно использовать средства командной строки или графический пользовательский интерфейс Synaptic Package Manager.

Отдельно могут быть установлены следующие пакеты:

Проверка установки

После настройки пакета PHP Web Stack убедитесь в том, что он установлен правильно, а сервер Apache распознает механизм PHP.

Чтобы убедиться, что Apache и PHP установлены и запущены, откройте IDE NetBeans и создайте проект PHP. В файле index.php введите метод PHP phpinfo() . Запустите файл. При этом должна отобразиться стандартная информационная страница PHP.

ubuntu phpinfo

Устранение проблем

Ниже перечислены часто возникающие проблемы при проверке установки стека PHP в Ubuntu:

*В окне браузера отображается ошибка "Not Found" для

USER/PROJECT/index.php *. Удалите строку

USER из URL-адреса. Например, если эта ошибка происходит для URL-адреса

ubuntu/test1/index.php , измените его на test1/index.php . Обратите внимание, что можно настроить адрес URL для проекта PHP в IDE NetBeans либо при создании проекта или путем щелчка правой кнопки мыши узла проекта и перехода в 'Свойства' > 'Запустить конфигурацию'.

В браузере отображается всплывающее окно с запросом на открытие файла, как если бы механизм PHP не распознавался. Пакет php5-common содержит ошибку. Замените его пакетами php5 и phpmyadmin . Для замены пакета php5-common необходимо выполнить следующие две команды:

с корневым узлом документов

Вместо изменения узла по умолчанию рекомендуется создать и активировать собственный виртуальный узел.

Создание местоположения корневого узла документов

Выберите "Places > Home Folder".

В контекстном меню выберите "Create Folder".

Введите имя папки, например public_html.

Создание нового виртуального узла

Для запуска терминала выберите "Applications>Accessories>Terminal". Откроется окно терминала.

Для копирования файла настройки из виртуального узла по умолчанию в новый файл ( mysite ) введите в командной строке следующую команду:

Запустите приложение gedit и отредактируйте в нем новый файл настройки ( mysite ):

При появлении запроса введите пароль, определенный для пользователя root во время установки операционной системы.

1. Установка xdebug.
Так как я использую php5.6 из стороннего репозитория я буду выполнять команду с жестко указанной версией php5.6. Если у Вас установлен PHP и каноникал репозитория путем типичной установки LAMP то вам не нужно указывать версию



2. Ищем путь к so файлу установленного xdebug командой:

Для тех у кого PHP установлен стандартным LAMP путем, вывод будет всего одной строкой типа
«/usr/lib/php/7.0/20131226/xdebug.so»

Копируем нужный нам путь, сохраняем временно где-то

3. Редакутируем PHP.INI
Открываем файл sudo nano /etc/php/X.X/apache2/php.ini где X.X версия установленного у вас PHP. Например для PHP-5.6 путь будет таким /etc/php/5.6/apache2/php.ini

В самый конец файла добавляем следующие записи:

Нажимаем Apply и OK. По желанию можно выбрать дефолтный браузер в котором будет открываться сессия xdebug, но меня устраивает выбор Chrome как браузера по умолчанию, по этому я пропускаю это действие.

5. Тестируем результат.


После успешного применения настроек у нас станут активные некоторые элементы управления типичными настройками xdebug

Открываем код Magento или любой другой CMS или своего проекта и ставим брейкпойнт в таком месте где вы точно убеждены что будет выполнен код PHP, как правило это всегда просто сделать в index.php. Для Magento я поставлю маркер (breakpoint) в файле index.php на строке



На этом все, если будут вопросы, пожалуйста, задавайте в комментариях. Удачи.

Favorite

Добавить в избранное

Главное меню » Ubuntu » Как установить Xdebug и использовать его в PHP на Ubuntu


Обычно функции print_r() и var_dump() используются для проверки вывода переменных. Расширение Xdebug используется в PHP для продвинутого уровня отладки. По умолчанию это расширение не установлено в PHP. Вы должны установить его и настроить необходимые конфигурации, чтобы использовать его функции. В этой статье показано, как расширение Xdebug может быть установлено и настроено в PHP и интегрировано с редактором кода Visual Studio в Ubuntu.

Установите Xdebug для PHP

Выполните следующую команду из терминала, чтобы установить расширение Xdebug для установленной версии PHP 7+.

Настройте расширение Xdebug

Выполните следующую команду, чтобы создать файл конфигурации с именем xdebug.ini. Вы должны правильно указать путь к папке с доступными модами в зависимости от установленной версии PHP. Согласно пути, указанному в команде, в текущей системе установлен PHP версии 7.4.

Добавьте в файл следующие строки, чтобы установить необходимые конфигурации для включения расширения Xdebug для PHP.

Перезагрузите веб-сервер

Выполните следующую команду с правами root, чтобы перезапустить сервер Apache.

Проверка установки Xdebug

Выполните следующую команду, чтобы проверить, правильно ли установлен Xdebug. Если расширение установлено правильно, следующая команда покажет информацию об установленной версии Xdebug с версией PHP.

Настроить Xdebug в VSCode

Если редактор кода Visual Studio открывается до установки расширения Xdebug, откройте его повторно. Откройте окно расширений , щелкнув меню «Вид» или нажав Ctrl + Shift + x. Введите «Отладка PHP» в поле поиска окна расширений. Вы получите следующую информацию, если расширение Xdebug правильно интегрировано с этим редактором.


Откройте файл конфигурации Xdebug, щелкнув «Добавить конфигурацию…» в меню « Выполнить», и установите необходимую конфигурацию в соответствии с файлом xdebug.ini.

Как установить Xdebug и использовать его в PHP на Ubuntu

Отладка PHP-скрипта с помощью Xdebug

Создайте файл PHP со следующим сценарием, чтобы показать способ использования отладчика Xdebug.

Как установить Xdebug и использовать его в PHP на Ubuntu

Теперь нажмите F5 или щелкните «Начать отладку» в меню «Выполнить», чтобы начать отладку с помощью Xdebug. Появится панель инструментов, как на следующем изображении для отладки, и скрипт остановит свое выполнение в первой точке останова в строке 5. В левом окне показано, какие переменные инициализируются и не инициализируются после выполнения скрипта в строке 5.

Как установить Xdebug и использовать его в PHP на Ubuntu

Первый значок на панели инструментов используется для продолжения сценария и перехода к следующей точке останова ( для этой цели можно использовать F5 ). Если нажать F5, после запуска отладки он перейдет к следующей точке останова в строке 13. В этой строке будут инициализированы некоторые переменные.

Как установить Xdebug и использовать его в PHP на Ubuntu

Второй значок используется для перехода по сценарию и перехода к строке согласно сценарию (для этого можно использовать F10).

Как установить Xdebug и использовать его в PHP на Ubuntu

Третий значок используется для перехода в строку точки останова (для этой цели можно использовать F11).

Как установить Xdebug и использовать его в PHP на Ubuntu

Четвертый значок используется для выхода из всех строк точки останова (для этой цели можно использовать Shift + F11). Пятый значок используется для перезапуска отладки (для этого можно использовать Ctrl + Shift + F5). Шестой значок используется для остановки отладки (для этого можно использовать Shift + F5).

Заключение

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Отладка - один из самых важных процессов в программировании. С помощью отладчика вы можете посмотреть что происходит в программе на самом деле, какие функции выполняются, что хранится в переменных, а также выполнить всё пошагово и точно понять на какой строчке и при каких значениях переменных случается ошибка.

Для языка программирования PHP используется отладчик Xdebug, PHPStorm - это одна из самых популярных сред разработки. В этой статье мы рассмотрим как настроить Xdebug в PhpStorm для отладки на локальном компьютере и в Docker.

Настройка Xdebug в PhpStorm

1. Отладка на локальном компьютере

Все настройки будут показаны на примере Ubuntu и интерпретатора PHP, настроенного вместе с Apache. Для других конфигураций пути к файлам могут отличаться, но суть останется та же. Давайте разберемся как это будет работать. Отладчик Xdebug позволяет приостанавливать выполнение кода, смотреть стек вызовов и содержимое переменных. Однако удобного интерфейса управления у него нет. Поэтому для управления отладкой будем использовать IDE. Но IDE не может никак сообщить отладчику что надо запустить отладку, потому что она отвечает только за код. Для этого понадобится ещё расширение для браузера Debug Helper, с помощью которого вы сможете включить режим отладки.

Сначала необходимо установить Xdebug. Для этого выполните:

sudo apt install xdebug

После завершения установки Xdebug надо настроить программу так, чтобы при запуске сеанса отладки она пыталась подключится к нашей IDE для управления отладкой. Для этого добавьте такие строчки в файл /etc/php/7.4/apache2/conf.d/20-xdebug.ini в версии Xdebug 2:

sudo vi /etc/php/7.4/apache2/conf.d/20-xdebug.ini

zend_extension=xdebug.so
xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_connect_back=1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_autostart=false

Для новой версии Xdebug 3 старая конфигурация тоже будет работать, но лучше использовать новый стандарт:

xdebug.mode=debug
xdebug.start_with_request=trigger
xdebug.discover_client_host = false
xdebug.client_host = 127.0.0.1
xdebug.client_port = 9000

Давайте рассмотрим эти настройки подробнее. Первый параметр xdebug.mode - режим отладки, возможные варианты:

  • develop - включает вывод дополнительной информации, переопределяет var_dump;
  • debug - режим построчного выполнения кода, именно он нужен в данном случае;
  • profile - профилирование;
  • trace - трассировка выполнения программы.

Если необходимо, вы можете включить несколько режимов, перечислив их через запятую. Вторая строчка xdebug.start_with_request определяет как будет запускаться отладчик для режимов debug, trace и им подобных:

  • yes - всегда, при запуске php скриптов;
  • no - запуск только из кода с помощью специальных функций;
  • trigger - по запросу, с помощью специальной переменной в $_ENV, $_POST, $COOKIE или в другом массиве. Этот вариант подходит лучше всего в данном случае чтобы отладчик не запускался когда в этом нет необходимости.

sudo systemctl restart apache2

Теперь надо настроить PhpStorm. Запустите программу, затем откройте меню Run -> Edit Configurations. Перед вами откроется окно, в котором надо настроить отладчик.

В настройках можно ничего не менять, укажите только имя этого способа отладки. Если сервер, с которого будут ожидаться подключения не задать, то будут приниматься все подключения.

Если вам нужно изменить порт, к которому будет подключаться Xdebug откройте меню File -> Settings -> PHP -> Debug -> DBGp Proxy. Здесь можно указать нужный порт:

Теперь IDE готова. Кликните по значку жука на верхней панели инструментов чтобы программа начала ожидать подключения отладчика и поставьте несколько точек останова в коде просто кликнув перед строчкой с кодом:

Дальше осталось настроить браузер. Для Chrome можно скачать это расширение. Установите его и откройте страницу, которую надо отлаживать. Кликните по значку расширения и выберите Debug. Значок расширения станет зеленым:

Обновите страницу и возвращайтесь к PHPStorm. Если всё было сделано верно, там запустится сеанс отладки. При первом запуске программа может попросить настроить соответствия локальных путей к файлам с удаленными. Для локального сервера здесь ничего настраивать не надо, достаточно нажать Accept:

Дальше отладчик остановит выполнение на выбранной точке останова и в программе появится интерфейс отладки:

Как видите всё довольно просто. Дальше давайте разберемся как настроить Xdebug PhpStorm и Docker.

2. Отладка Php в Docker

C Docker возникает одна сложность. Поскольку отладчик должен сам подключится к IDE, необходимо пробросить хост в контейнер. В windows это можно сделать с помощью адреса host.docker.internal. Но в Linux, по умолчанию это не происходит. Для того чтобы добавить такой адрес надо добавить в docker-compose такие строчки:

Давайте для этого примера будем использовать такую структуру директорий:

Минимально необходимый docker-compose.yaml будет выглядеть вот так:

Здесь объявляется два контейнера, nginx и php-fpm. В первый не надо вносить никакие изменения, поэтому можно просто брать официальный образ, монтировать папку с исходниками, конфигурационный файл и пробрасывать порт. Во второй контейнер надо установить и настроить Xdebug поэтому его придется собрать на основе официального контейнера php. Для этого же контейнера надо указать директиву extra_hosts, без неё ничего работать не будет. Конфигурация Nginx тоже вполне стандартная:

Здесь настроена обработка PHP скриптов в контейнере php-fpm, и редирект несуществующих URL на index.php, что вполне стандартно для многих фреймворков и CMS. Самое интересное - Dockerfile контейнера php-fpm, он выглядит вот так:

FROM php:8.0.3-fpm-buster
RUN pecl install xdebug \
&& docker-php-ext-enable xdebug
COPY xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini

Здесь устанавливается xdebug с помощью pecl, а затем копируется его конфигурационный файл в контейнер. Вот этот конфигурационный файл:

xdebug.mode=debug
xdebug.start_with_request=trigger
xdebug.discover_client_host = false
xdebug.client_host = host.docker.internal
xdebug.client_port = 9000

В контейнере установлен Xdebug 3 для PHP 8, потому что старая версия с этой версией языка уже не работает, поэтому используется новый синтаксис конфигурации. Ну и хост, host.docker.internal, который раньше был прописан в docker-compose.yaml. Настройка xdebug PHPStorm docker завершена. Дальше вы можете запустить проект:

docker-compose up --build

Теперь, как и в предыдущем варианте вы можете включить в браузере режим отладки, обновить страницу и отладчик успешно подключится к IDE, не смотря на то, что он работает в Docker:


Выводы

В этой статье мы рассмотрели как выполняется настройка xdebug PHPStorm на локальном компьютере и в Docker контейнере. Если всё сделать правильно отладчик будет работать и помогать вам искать ошибки в коде.

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

Установка модуля Xdebug для PHP под Ubuntu Linux

Установка Xdebug

Xdebug — полезное расширение для PHP, которое позволяет производить отладку кода в удобной форме. Расширение было написано одним из разработчиком PHP - Derick Rethans и является свободно распространяемым.

В данной статье мы рассмотрим установку и начальную настройку Xdebug под операционной системой Linux и сборкой локального сервера Ampps.

xdebug2

Затем необходимо нажать комбинацию клавиш CTRL+U и в открывшемся окне с исходным кодом страницы, выбрать весь код комбинацией клавиш CTRL-A. И скопировать выбранный код в текстовое поле страницы Xdebug.

В итоге должна появиться подобная информация, которая пригодится нам в дальнейшем:

Следующий порядок действий будет основан на предложенной инструции с поправкой для локального сервера Ampps:

  1. Первым шагом будет скачивание предложенной версии Xdebug по ссылке, находящийся в первом пункте инструкции. В моей случае, это будет выглядеть таким образом:
    Download xdebug-2.4.0rc3.tgz
  2. Распаковываем архив с Xdebug в ту папку, в которую он был скачан: Получится папка с подобным именем: xdebug-2.4.0RC3
    Теперь идем в директорию: Копируем файл phpize в директорию xdebug-2.4.0RC3. Важно скопировать файл phpize именно с указанной директории!
  3. Переходим в директорию xdebug-2.4.0RC3:
  4. Запускаем команду phpize: Если возникает ошибка: Тогда устанавливаем autoconf: И заново запускаем команду phpize. Далее появится вывод работы этой программы, в котором важны следующие строки: Они должны совпадать с информацией, полученной на странице Xdebug: Если они совпадают, значит мы всё делаем правильно и можно приступить к компиляции модуля Xdebug из исходных кодов.
  5. Запускаем выполнение конфигурации с указанием пути к файлу php-config:
  6. Запускаем команду make
  7. Теперь копируем скомпилированный модуль Xdebug в директорию PHP:
  8. Редактируем конфигурацию PHP: И добавляем в конец файла путь к модулю Xdebug:
  9. Сохраняемся и перезапускаем сервер apache

xdebug3

Начальная настройка Xdebug

Настройки для Xdebug хранятся в файле php.ini. Давайте откроем его для редактирования и внесем нужные изменения:

Немного приведем в порядок код, добавив секцию Xdebug в самый конец файла. И перенесем под неё подключение модуля Xdebug:

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

Количество вложенных объектов или массивов, которые будут отображаться на странице:

Отвечает за длину строки, выводимой через var_dump():

Влияет на количество отображаемых на странице вложенных элементов массива или свойств объекта:

Читайте также: