Как-то сидим мы с другом, кодим каждый свое. Очередную свою неполадку я пытался отладить типичным способом die(). Это не очень понравилось другу и он сообщил, что если я не научусь нормально отлаживать “как бог”, то за эти дополнительные знания никто не заплатит. Мотивация была поставлена, и я решил разобраться с тем, чтобы все-таки запустить у себя xdebug. Он и до этого работал, но только на уровне “покажи колстек ошибки”.
Коротко о том, как под запустить xDebug под MAMP (учитываем, что работаем на Mac OS X).
1. Идем на http://xdebug.org/wizard.php и вставляем в текстовое поле ввода результат выполнения функции phpinfo() на локальной машине
2. После нажатие “Analyze” мы получаем четкое руководство к действию. Что-то вроде этого:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
Instructions Download xdebug-2.3.2.tgz Unpack the downloaded file with tar -xvzf xdebug-2.3.2.tgz Run: cd xdebug-2.3.2 Run: phpize (See the FAQ if you don't have phpize. As part of its output it should show: Configuring for: ... Zend Module Api No: 20121212 Zend Extension Api No: 220121212 If it does not, you are using the wrong phpize. Please follow this FAQ entry and skip the next step. Run: ./configure Run: make Run: cp modules/xdebug.so /Applications/MAMP/bin/php/php5.5.3/lib/php/extensions/no-debug-non-zts-20121212 Edit /Library/Application Support/appsolute/MAMP PRO/conf/php.ini and add the line zend_extension = /Applications/MAMP/bin/php/php5.5.3/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so Restart the webserver |
Скорее всего, в системе xdebug у вас уже установлен (как это было у меня), но он подключен в режиме php-расширения. Нам же нужно Zend-расширение, чтобы были возможными разного рода breakpoints и иже с ними.
Поэтому строку extension=phalcon.so стираем из php.ini
3. Все вышеописанные действия дают установленное Zend-расширение. Остается только в актуальном php.ini дописать в конце:
1 2 3 4 5 |
xdebug.remote_enable=1 xdebug.remote_handler=dbgp xdebug.remote_mode=req xdebug.remote_host=127.0.0.1 xdebug.remote_port=9000 |
В принципе, все!
Если для отладки использовать Sublime Text, то нужно через Packages Manager установить Xdebug Client. Затем через меню Tools > Xdebug выбрать “Start new session” (или что-то вроде этого). Ставим бряки, обновляем страницу сайта и радуемся!
Я убил на это часа 3…