10 февраля, 2014

Включаем модуль XDebug для PHP

В начале нужно определиться с версией библиотеки Xdebug, которая подойдет вашему PHP.
Версия подходящего модуля зависит от версии PHP.
Смотрим свою версию:

for Drush:
==========
C:\xampp\htdocs>php -v
PHP 5.3.6 (cli) (built: Mar 17 2011 10:48:37)
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies


for XAMPP:
==========
C:\xampp\htdocs>"c:\xampp\php\php.exe" -v
PHP 5.3.1 (cli) (built: Nov 20 2009 17:26:32)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies

У меня на машине две инсталляции ПХП: первая - для Друпаловского Драша и вторая - в AMP пакете. Их версия несколько отличается, но на процедуре установки и включения модуля Xdebug это не скажется.
Процедура включения Xdebug различна для версий PHP 5.2 и PHP 5.3
В конце этой заметки можно найти ссылку на более подробный мануал.
Кстати, можно заранее проверить, включен ли уже  Xdebug. Выведем список включенных в PHP  модулей:
Для инсталляции РНР 5.3.6, которая входит в состав Drush:
C:\xampp\htdocs\test-hm.local>php -m
[PHP Modules]
bcmath
calendar
com_dotnet
Core
ctype
curl
date
dom
ereg
exif
filter
ftp
gd
gettext
hash
iconv
imap
json
libxml
mbstring
mcrypt
mhash
mysql
mysqli
mysqlnd
odbc
openssl
pcre
PDO
pdo_mysql
pdo_sqlite
pdo_sqlsrv
Phar
Reflection
session
SimpleXML
soap
SPL
sqlsrv
standard
tidy
tokenizer
wddx
xml
xmlreader
xmlrpc
xmlwriter
zip
zlib

[Zend Modules]

Xdebug в списке отсутствует.
Теперь выведем список модулей, включенных в инсталляции РНР 5.3.1, которая входит в состав пакета XAMPP:

C:\xampp\htdocs\test-hm.local>"c:\xampp\php\php.exe" -m
[PHP Modules]
bcmath
bz2
calendar
com_dotnet
Core
ctype
curl
date
dom
ereg
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
imap
json
libxml
mbstring
mcrypt
mhash
ming
mysql
mysqli
mysqlnd
odbc
openssl
pcre
pdf
PDO
pdo_mysql
PDO_ODBC
pdo_sqlite
Phar
Reflection
session
SimpleXML
soap
sockets
SPL
SQLite
sqlite3
standard
tokenizer
wddx
xml
xmlreader
xmlrpc
xmlwriter
xsl
zip
zlib

[Zend Modules]

Можно видеть, что модуль Xdebug и в этом списке отсутствует. Скачиваем подходящую нашей инсталляции РНР версию модуля с его официального сайта xdebug.org или сайта русскоязычного сообщества xdebug.ru
Скачанный DLL-файл размещаем в директории для расширений PHP:
Вот так получилось для РНР в составе Drush:
C:\xampp\drush\Php\ext\php_xdebug-2.1.2-5.3-vc9-nts.dll

И вот так получилось для XAMPP:
C:\xampp\php\ext\php_xdebug.dll

Кстати, для PHP в составе XAMPP  файл php_xdebug.dll скачивать не пришлось - он уже содержался по указанному пути. Просто модуль не был включен. Включим модуль, отредактировав файл php.ini

Для РНР в составе Drush необходимо наличие следующей строки в каком-либо одном из этих разделов: [PECL] или [XDebug]

[PECL]
zend_extension = "C:\xampp\drush\Php\ext\php_xdebug-2.1.2-5.3-vc9-nts.dll"

[XDebug]
; Only Zend OR (!) XDebug
zend_extension = "./ext/php_xdebug-2.1.2-5.3-vc9-nts.dll

Следите за номером версии модуля в имени его файла: 2.1.2-5.3-vc9-nts
О том, как она читается, есть информация на сайте модуля.

Необходимые строки в файле php.ini для PHP в составе XAMPP:

[PECL]
zend_extension = "C:\xampp\php\ext\php_xdebug.dll"

[XDebug]
xdebug.remote_host = 127.0.0.1
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_port = 9000

Сохраните файл php.ini.
Перезапустите сервер Apache.

Снова просмотрим список включенных модулей:
Для ПХП в составе Драш:
C:\xampp\htdocs\test-hm.local>php -m
[PHP Modules]
bcmath
calendar
com_dotnet
Core
ctype
curl
date
dom
ereg
exif
filter
ftp
gd
gettext
hash
iconv
imap
json
libxml
mbstring
mcrypt
mhash
mysql
mysqli
mysqlnd
odbc
openssl
pcre
PDO
pdo_mysql
pdo_sqlite
pdo_sqlsrv
Phar
Reflection
session
SimpleXML
soap
SPL
sqlsrv
standard
tidy
tokenizer
wddx
xdebug
xml
xmlreader
xmlrpc
xmlwriter
zip
zlib

[Zend Modules]
Xdebug

Видим, что модуль включен.
Для ПХП в составе КСАМП:

C:\xampp\htdocs\test-hm.local>"c:\xampp\php\php.exe" -m
[PHP Modules]
bcmath
bz2
calendar
com_dotnet
Core
ctype
curl
date
dom
ereg
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
imap
json
libxml
mbstring
mcrypt
mhash
ming
mysql
mysqli
mysqlnd
odbc
openssl
pcre
pdf
PDO
pdo_mysql
PDO_ODBC
pdo_sqlite
Phar
Reflection
session
SimpleXML
soap
sockets
SPL
SQLite
sqlite3
standard
tokenizer
wddx
xdebug
xml
xmlreader
xmlrpc
xmlwriter
xsl
zip
zlib

[Zend Modules]
Xdebug

Видим, что модуль Xdebug включен.
Подробные сведения о модуле можно просмотреть, воспользовавшись выводом phpinfo():
Вот лишь урывок:
xdebug
xdebug support enabled
Version 2.0.6-dev



Вот тут более подробно об установке и включении рассматриваемого модуля:
https://netbeans.org/kb/docs/php/configure-php-environment-windows.html#installAndEnableXDebug

Комментариев нет:

Отправить комментарий