Установка Xdebug
Xdebug — полезное расширение для PHP, которое позволяет производить отладку кода в удобной форме. Расширение было написано одним из разработчиком PHP - Derick Rethans и является свободно распространяемым.
В данной статье мы рассмотрим установку и начальную настройку Xdebug под операционной системой Linux и сборкой локального сервера Ampps.
Для начала перейдем по ссылке, где нам будет предложена помощь в выборе версии для скачивания и установки Xdebug:
http://xdebug.org/wizard.php
На этой странице необходимо ввести в текстовое поле всю информацию, которая выводится PHP-функцией phpinfo(). Чтобы быстро получить вывод этой функции, можно перейти по локальной ссылке сервера Ampps:
http://localhost/cgi-bin/phpinfo.cgi
Затем необходимо нажать комбинацию клавиш CTRL+U и в открывшемся окне с исходным кодом страницы, выбрать весь код комбинацией клавиш CTRL-A. И скопировать выбранный код в текстовое поле страницы Xdebug.
В итоге должна появиться подобная информация, которая пригодится нам в дальнейшем:
Xdebug installed: no
Server API: CGI/FastCGI
Windows: no
Zend Server: no
PHP Version: 5.6.11
Zend API nr: 220131226
PHP API nr: 20131226
Debug Build: no
Thread Safe Build: no
Configuration File Path: /usr/local/ampps/php-5.6/etc
Configuration File: /usr/local/ampps/php-5.6/etc/php.ini
Extensions directory: /usr/local/ampps/php-5.6/lib/extensions/ext
Следующий порядок действий будет основан на предложенной инструции с поправкой для локального сервера Ampps:
- Первым шагом будет скачивание предложенной версии Xdebug по ссылке, находящийся в первом пункте инструкции. В моей случае, это будет выглядеть таким образом:
Download xdebug-2.4.0rc3.tgz - Распаковываем архив с Xdebug в ту папку, в которую он был скачан:
Получится папка с подобным именем: xdebug-2.4.0RC3tar -xvzf xdebug-2.4.0rc3.tgz
Теперь идем в директорию:
Копируем файл phpize в директорию xdebug-2.4.0RC3. Важно скопировать файл phpize именно с указанной директории!/usr/local/ampps/php-5.6/bin/
- Переходим в директорию xdebug-2.4.0RC3:
cd xdebug-2.4.0RC3
- Запускаем команду phpize:
Если возникает ошибка:./phpize
Тогда устанавливаем autoconf:Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then, rerun this script.
И заново запускаем команду phpize. Далее появится вывод работы этой программы, в котором важны следующие строки:apt-get install autoconf
Они должны совпадать с информацией, полученной на странице Xdebug:Configuring for: ... Zend Module Api No: 20131226 Zend Extension Api No: 220131226
Если они совпадают, значит мы всё делаем правильно и можно приступить к компиляции модуля Xdebug из исходных кодов.PHP API nr: 20131226 Zend API nr: 220131226
-
Запускаем выполнение конфигурации с указанием пути к файлу php-config:
./configure --with-php-config=/usr/local/ampps/php-5.6/bin/php-config
- Запускаем команду make
- Теперь копируем скомпилированный модуль Xdebug в директорию PHP:
cp modules/xdebug.so /usr/local/ampps/php-5.6/lib/extensions/ext
- Редактируем конфигурацию PHP:
И добавляем в конец файла путь к модулю Xdebug:nano /usr/local/ampps/conf/php-5.6.ini
zend_extension = /usr/local/ampps/php-5.6/lib/extensions/ext/xdebug.so
- Сохраняемся и перезапускаем сервер apache
Теперь можно проверить через phpinfo(), что модуль установлен и загружен:
http://localhost/cgi-bin/phpinfo.cgi
Начальная настройка Xdebug
Настройки для Xdebug хранятся в файле php.ini. Давайте откроем его для редактирования и внесем нужные изменения:
nano /usr/local/ampps/conf/php-5.6.ini
Немного приведем в порядок код, добавив секцию Xdebug в самый конец файла. И перенесем под неё подключение модуля Xdebug:
[Xdebug]
zend_extension = /usr/local/ampps/php-5.6/lib/extensions/ext/xdebug.so
Теперь добавим несколько настроек.
Следующие настройки отвечают за то, какая дополнительная информация будет выводится на страницу при ошибке выполнения PHP-скрипта. В данном случае, это содержимое супер-глобальных массивов
REQUEST, REQUEST и SERVER:
xdebug.dump.REQUEST = *
xdebug.dump.REQUEST = *
xdebug.dump.SERVER = REMOTE_ADDR,REQUEST_METHOD
Данная опция отвечает за отключение PHP-оператора подавления ошибок @, таким образом все сообщения об ошибках будут показаны:
xdebug.scream = 1
Количество вложенных объектов или массивов, которые будут отображаться на странице:
xdebug.var_display_max_children = 256
Отвечает за длину строки, выводимой через var_dump():
xdebug.var_display_max_data = 1024
Влияет на количество отображаемых на странице вложенных элементов массива или свойств объекта:
xdebug.var_display_max_depth = 16
Со всем списком возможных настроек и их значений вы можете ознакомиться в официальной документации Xdebug:
http://xdebug.org/docs/all_settings
На этом установка и настройка модуля Xdebug завершена.