Установка XDebug для PHP с XAMPP на Mac - PullRequest
0 голосов
/ 30 декабря 2018

У меня Mac с новой установкой OSX Mojave.Я скачал XAMPP (7.3) и установил.Локальный веб-сервер Apache работает, и PHPInfo (), который я получаю с панели инструментов, показывает всю правильную информацию для файла php.ini, который является /Applications/XAMPP/xamppfiles/etc/php.ini.

Я взял копию PHPInfo и поместил ее в мастер по адресу:

https://xdebug.org/wizard.php

Инструкции выглядят просто.Мне сначала пришлось использовать homebrew для установки autoconf.

Но потом я смог скачать и распаковать xdebug-2.6.1.tgz в папку / Applications / XAMPP / xamppfiles /.

Я изменил свою переменную $ PATH таким образом, чтобы / Applications / XAMPP / xamppfiles / bin был первым найденным путем, чтобы был запущен правильный phpize.

Я изменил на / Applications / XAMPP / xamppfiles / xdebug-2.6.1 и запустил phpize, затем я запустил ./configure.Казалось, все работает хорошо, без видимых ошибок.

Но потом я получил ошибки, когда запустил команду "make".Вот вывод, который я получил:

> Terrys-MacBook-Pro:xdebug-2.6.1 terry$ make /bin/sh
> /Applications/XAMPP/xamppfiles/xdebug-2.6.1/libtool --mode=compile cc 
> -I. -I/Applications/XAMPP/xamppfiles/xdebug-2.6.1 -DPHP_ATOM_INC -I/Applications/XAMPP/xamppfiles/xdebug-2.6.1/include -I/Applications/XAMPP/xamppfiles/xdebug-2.6.1/main -I/Applications/XAMPP/xamppfiles/xdebug-2.6.1 -I/Applications/XAMPP/xamppfiles/include/php -I/Applications/XAMPP/xamppfiles/include/php/main -I/Applications/XAMPP/xamppfiles/include/php/TSRM -I/Applications/XAMPP/xamppfiles/include/php/Zend -I/Applications/XAMPP/xamppfiles/include/php/ext -I/Applications/XAMPP/xamppfiles/include/php/ext/date/lib  -DHAVE_CONFIG_H  -g -O2   -c /Applications/XAMPP/xamppfiles/xdebug-2.6.1/xdebug_compat.c -o
> xdebug_compat.lo   cc -I.
> -I/Applications/XAMPP/xamppfiles/xdebug-2.6.1 -DPHP_ATOM_INC -I/Applications/XAMPP/xamppfiles/xdebug-2.6.1/include -I/Applications/XAMPP/xamppfiles/xdebug-2.6.1/main -I/Applications/XAMPP/xamppfiles/xdebug-2.6.1 -I/Applications/XAMPP/xamppfiles/include/php -I/Applications/XAMPP/xamppfiles/include/php/main -I/Applications/XAMPP/xamppfiles/include/php/TSRM -I/Applications/XAMPP/xamppfiles/include/php/Zend -I/Applications/XAMPP/xamppfiles/include/php/ext -I/Applications/XAMPP/xamppfiles/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /Applications/XAMPP/xamppfiles/xdebug-2.6.1/xdebug_compat.c 
> -fno-common -DPIC -o .libs/xdebug_compat.o /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);
>                ~~~~~~~~~~~~~~~~~                                             ^
> /Applications/XAMPP/xamppfiles/include/php/Zend/zend_execute.h:330:1:
> note: 'zend_get_zval_ptr' declared here ZEND_API zval
> *zend_get_zval_ptr(const zend_op *opline, int op_type, const znode_op *node, const zend_execute_data *execute_data, zend_free_op *should_free, int type); ^ /Applications/XAMPP/xamppfiles/include/php/main/php_config.h:9:19:
> note: expanded from macro 'ZEND_API'
> # define ZEND_API __attribute__ ((visibility("default")))
>                   ^ /Applications/XAMPP/xamppfiles/xdebug-2.6.1/xdebug_compat.c:194:88:
> error: too few arguments to function call, expected 9, have 8
>         php_setcookie(name_s, value_s, expires, path_s, domain_s, secure, url_encode, httponly);
>         ~~~~~~~~~~~~~                                                                         ^ /Applications/XAMPP/xamppfiles/include/php/ext/standard/head.h:40:1:
> note: 'php_setcookie' declared here PHPAPI int
> php_setcookie(zend_string *name, zend_string *value, time_t expires,
> zend_string *path, zend_string *domain, int secure, int httponly,
> zend_string *samesite, int url_encode); ^
> /Applications/XAMPP/xamppfiles/include/php/main/php.h:72:18: note:
> expanded from macro 'PHPAPI'
> #               define PHPAPI __attribute__ ((visibility("default")))
>                               ^ 2 errors generated. make: *** [xdebug_compat.lo] Error 1

Итак, первая ошибка, которую я вижу в команде "make", это "> error: слишком мало аргументов для вызова функции, ожидается 6, есть 5".

Понятия не имею, куда идти отсюда.Кажется, что бесконечные документы, которые я читал, предназначены для ПК или для PHP 5.

Ответы [ 2 ]

0 голосов
/ 04 февраля 2019

Ганнибал прав, но его ответ немного краткий, поэтому я хочу немного его расширить.

Это ошибка XDebug для PHP 7.3.x, поэтому вам необходимо установить XDebug 2.7.0beta1:

$ pecl install xdebug-2.7.0beta1

Поскольку я установил последнюю версию PHP с помощью Homebrew, установка XDebug фактически вызвала две mkdir() ошибки.Это произошло потому, что в каталоге PHP Homebrew уже была символическая ссылка pecl.

Сначала я хотел проверить это, поэтому я запустил $ ls -al /usr/local/Cellar/php/<YOUR_PHP_VERSION_NUMBER>

Если у вас есть какие-либо сомнения относительно вашей версии PHP, он должен быть в журнале установки pecl и отображаться рядом с ошибками mkdir().

Как только я подтвердил, что там уже есть символическая ссылка, я просто удалил ее:

$ rm /usr/local/Cellar/php/<YOUR_PHP_VERSION_NUMBER>/pecl

После того, как я это сделал, я снова запустил установку, и она прошла гладко.

Конечно, $ php --ini показывал ошибки, поэтому мне пришлось правильно настроить PHP.Габор Яворский на самом деле написал отличную статью, в которой рассказывается, как обеспечить правильную загрузку XDebug, и он отлично сработал для меня. См. Шаг 2 в его статье здесь: https://javorszky.co.uk/2018/05/03/getting-xdebug-working-on-php-7-2-and-homebrew/.

Не забудьте перезагрузить PHP после настройки вашего конфига, который для меня был:

$ brew services stop php@7.2 && brew services start php@7.2

После этого $ php --ini не должно отображать ошибок!

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

Существует ошибка для этого.Таким образом, ссылка: https://bugs.xdebug.org/view.php?id=1593

Описывает, что вам нужно использовать Xdebug 2.7.0beta1 сейчас.

...