Не удается заставить Xdebug работать в PHPStorm с PHP и XAMPP в Mac OS - PullRequest
0 голосов
/ 20 декабря 2018

Я изо всех сил пытался настроить 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

Итак, я следовал инструкциям Taylored.

Я скачал 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);
               ~~~~~~~~~~~~~~~~~    

Так что теперьЯ застрял на линии "make" и не знаю, как действовать дальше.

Извините, это так долго, но я хотел быть в курсе того, что я пробовал до сих пор,и, надеюсь, чтобы помочь другим, кто может попробовать те же процедуры.

1 Ответ

0 голосов
/ 03 января 2019

Оказывается, @Hannibal ответил на менее подробную версию этого вопроса.Я решил оставить этот вопрос здесь, потому что очень подробно рассказал о том, как правильно указать пути к расположению запускаемых команд.

Причина, по которой файл ./configure не работал правильно, заключается в ошибкевыпуск xdebug-2.6.1.@Hannibal указал, что xdebug-2.7.0beta1 исправляет эту ошибку.Таким образом, переход на бета-версию позволил простым инструкциям мастера работать.Теперь у меня есть xdebug, работающий в PHPStorm.

Вот ссылка на вопрос, который не имел дело с несколькими версиями PHP и Apache, а только с XAMPP и xdebug на Mac OSX. Простой вопрос

...