Это старая версия документа!
Содержание
Установка Xdebug
В принципе, весь процесс описан в официальной документации тут.
cd /tmp/ git clone git://github.com/xdebug/xdebug.git cd xdebug sudo ./rebuild.sh
phpize
.
Обновляем PHP5 до PHP7
Удаляем старую версию PHP5 через sudo apt purge php5
с зачисткой остальных php-пакетов (список можно посмотреть через sudo dpkg -l php\*
).
Мне также потребовалось сделать это:
sudo apt purge php-pear php5-cli php5-common php5-curl php5-dev php5-gd php5-mysql
Репозиторий PHP7 отсутствовал на Ubuntu 14.04 (sudo apt search php7
), но должен быть в новых версиях. Если репо нет, то sudo add-apt-repository ppa:ondrej/php
и sudo apt update && sudo apt upgrade
. Дальше ставим PHP7 и другие пакеты по вкусу из репо:
sudo apt install php7.3 php7.3-common php7.3-tidy php7.3-xml php7.3-mysql php7.3-mbstring php7.3-curl
Добавляем phpize
Тут все просто:
sudo apt install php7.3-dev
Теперь sudo ./rebuild.sh
выполняется с успехом. Последняя строчка рекомендует запустить sudo make test
- будут проведены тесты на исправленные баги.
Добавляем в конфиг
Я работаю с консольным вариантом, для апача процедура аналогичная, но ее нужно сделать в другом конфиге.
Идем в каталог конфигов: cd /etc/php/7.3/cli/conf.d
и наблюдаем список установленных расширений: ls -la
. Весь каталог состоит из симлинков:
10-mysqlnd.ini -> /etc/php/7.3/mods-available/mysqlnd.ini 10-opcache.ini -> /etc/php/7.3/mods-available/opcache.ini ...
Я просто добавил туда файл sudo vim 10-xdebug.ini
:
- /etc/php/7.3/cli/conf.d/10-xdebug.ini
; configuration for Xdebug zend_extension=xdebug.so
Проверяем Xdebug
php -v
выводит
PHP 7.3.0RC2 (cli) (built: Oct 1 2018 13:18:20) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.3.0-dev, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.3.0RC2, Copyright (c) 1999-2018, by Zend Technologies with Xdebug v2.7.0beta1, Copyright (c) 2002-2018, by Derick Rethans
Запускаем простой пример на PHP сразу из командой строки:
php -r '$a = "new string"; xdebug_debug_zval("a");'
выводит
a: (refcount=1, is_ref=0)='new string'