Я изо всех сил пытался настроить Xdebugger в PHPStorm на моем Mac. Вот краткое изложение того, что я пробовал и нашел. Любая помощь приветствуется.
После долгой борьбы и беспокойства, что я что-то испортил, я вытер свой Macbook и сделал новую установку MacOSX Mojave. Я установил XAMPP для Mac v7.3.0 (PHP7.3.0). После установки XAMPP я могу открыть Chrome и перейти на localhost, и я вижу подходящие сайты Apache, такие как dashboard, phpmyadmin и phpinfo. Я могу подтвердить, что информация php показывает v7.3.
Здесь на SO было сообщение, где кто-то установил 2 версии php, так что я обнаружил, что у меня действительно (с новой установкой os) есть 2 версии php. Если я делаю php -version из командной строки, я получаю v7.1. Но если я перехожу в каталог XAMPP (/ Applications / XAMPP / xamppfiles / bin), то php —info показывает мою версию 7.3. Это говорит мне о том, что я должен быть осторожен, когда буду ссылаться на команды в будущем, когда пытаюсь установить Xdebug.
Я также установил PHPStorm и настроил PHP 7.3 на языках, указывая на INI-файл в каталоге XAMPP. В PHPStorm все работает нормально, я могу создать тестовый файл php и вызвать метод phpinfo () для отображения правильной версии php версии 7.3. Но в разделе php языка PHPStorm отладчик показывает, что он не установлен.
Так что я думаю, что PHPStorm настроен правильно с XAMPP и PHP 7.3.
Разбирая различные версии php, я думаю, что php 7.1 находится в среде пути, что означает, что мне нужно обратиться к абсолютному местоположению, если я хочу использовать php 7.3 из папки XAMPP. Я запустил php —version и php —ini, которые дали такой вывод:
Terrys-MBP:~ terry$ /Applications/XAMPP/xamppfiles/bin/php --version
PHP 7.3.0 (cli) (built: Dec 11 2018 01:01:47) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.0-dev, Copyright (c) 1998-2018 Zend Technologies
Terrys-MBP:~ terry$
Terrys-MBP:~ terry$
Terrys-MBP:~ terry$ /Applications/XAMPP/xamppfiles/bin/php --ini
Configuration File (php.ini) Path: /Applications/XAMPP/xamppfiles/etc
Loaded Configuration File:
/Applications/XAMPP/xamppfiles/etc/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed: (none)
Terrys-MBP:~ terry$
Поэтому я скопировал вывод phpinfo в https://xdebug.org/wizard.php чтобы получить мои пользовательские инструкции по установке Xdebug. Это был выход и инструкция. (извините за форматирование)
Tailored Installation Instructions
Summary
Xdebug installed: no
Server API: Apache 2.0 Handler
Windows: no
Zend Server: no
PHP Version: 7.3.0
Zend API nr: 320180731
PHP API nr: 20180731
Debug Build: no
Thread Safe Build: no
Configuration File Path: /Applications/XAMPP/xamppfiles/etc
Configuration File: /Applications/XAMPP/xamppfiles/etc/php.ini
Extensions directory:
/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-
20180731
Instructions
Download xdebug-2.6.1.tgz
Unpack the downloaded file with tar -xvzf xdebug-2.6.1.tgz
Run: cd xdebug-2.6.1
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: 20180731
Zend Extension Api No: 320180731
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/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-
20180731
Edit /Applications/XAMPP/xamppfiles/etc/php.ini and add the line
zend_extension = /Applications/XAMPP/xamppfiles/lib/php/extensions/no-
debug-non-zts-20180731/xdebug.so
Restart the webserver
Итак, я следовал инструкциям Тейлора.
Я скачал xdebug-2.6.1.tgz и распаковал его в папку / Applications / XAMPP / xamppfiles /, затем перешел в папку xdebug-2.6.1.
Запуск phpize не дал мне правильного вывода, поэтому я нажал на эту ссылку https://xdebug.org/docs/faq#custom-phpize чтобы найти, какой файл phpize использовать. Итак, строка phpize, которую я запустил, была:
/Applications/XAMPP/xamppfiles/bin/phpize from the
/Applications/XAMPP/xamppfiles/xdebug-2.6.1 folder
phpize дал правильный вывод, поэтому я продолжил со строкой ./configure:
./configure --with-php-config=/Applications/XAMPP/xamppfiles/bin/php-config
Я считаю, что первый запуск дал мне ошибку с autoconf, который я скачал с Homebrew. При следующем запуске я получил сообщение о файле конфигурации «.in» и «.ac», который я посмотрел и переименовал в файл «.in», так как он постепенно сокращался в пользу файла «.ac». На этом этапе строка ./configure работала без каких-либо явных ошибок.
Наконец, я запустил «make» и получил следующие типы ошибок и предупреждений: (извините, форматирование отключено в отношении длин строк)
предупреждения:
/Applications/XAMPP/xamppfiles/xdebug-2.6.1/xdebug.c:1831:107: warning:
format
specifies type 'long' but the argument has type 'zend_long'
(aka 'long long') [-Wformat]
...nesting level of '%ld' reached, aborting!",
XG(max_nesting_level));
~~~ ^~~~~~~~~~~~~~~~~~~~~
%lld
./php_xdebug.h:323:15: note: expanded from macro 'XG'
#define XG(v) (xdebug_globals.v)
^~~~~~~~~~~~~~~~~~
а также
/Applications/XAMPP/xamppfiles/xdebug-
2.6.1/xdebug_code_coverage.c:624:17: warning:
implicit declaration of function 'RT_CONSTANT_EX' is invalid in
C99
[-Wimplicit-function-declaration]
array_value = RT_CONSTANT_EX(opa->literals,
opcode.op2);
^
ошибки: (больше, но я только включил первый)
/Applications/XAMPP/xamppfiles/xdebug-2.6.1/xdebug_compat.c:56:71:
error: too
few arguments to function call, expected 6, have 5
return zend_get_zval_ptr(op_type, node, zdata, &should_free,
BP_VAR_R);
~~~~~~~~~~~~~~~~~
Так что теперь я застрял на линии «сделать» и не знаю, как действовать дальше.
Извините, что это так долго, но я хотел подробно рассказать о том, что я пробовал до сих пор, и, надеюсь, помочь другим, кто может попробовать те же процедуры.
Оказывается, @Hannibal ответил на менее подробную версию этого вопроса. Я решил оставить этот вопрос здесь, потому что очень подробно рассказал о том, как правильно расположить пути к расположенным командам.
Причиной того, что файл ./configure работал неправильно, является ошибка в выпуске xdebug-2.6.1. @Hannibal указал, что xdebug-2.7.0beta1 исправляет эту ошибку. Таким образом, переход на бета-версию позволил простым инструкциям мастера работать. Теперь у меня есть xdebug, работающий в PHPStorm.
Вот ссылка на вопрос, который не имел дело с несколькими версиями PHP и Apache, а только с XAMPP и xdebug на Mac OSX. Более простой вопрос
Других решений пока нет …