Я пытаюсь установить Xdebug на машине Linux для удаленной отладки PHP.Я столкнулся с рядом проблем, пытаясь его построить, я, кажется, решил некоторые, но сейчас я чувствую себя застрявшим.Краткое описание, «make» не завершается успешно, говорит, что не может найти zend_config.h или TSRM_config.h.Не знаю, как их получить.
Более подробное объяснение: (заметьте, я не очень разбираюсь в Linux, поэтому, если вы видите что-то, что я сделал, это явно неправильно, пожалуйста, дайте мне знать)
Я пытаюсь следовать инструкциям, которые я получил здесь при предоставлении моих данных phpinfo () (см. Конец сообщения).Первоначально я получал ряд ошибок, подобных этим, когда пытался «сделать»:
Error: ‘ZEND_USER_OPCODE_DISPATCH’ undeclared (first use in this function)
Error: ‘ZEND_RAISE_ABSTRACT_ERROR’ undeclared (first use in this function)
Etc.
Я предполагал, что это не phpize'd с правильной версией Zend (если я формулируюэто правильно).Возвращаясь к шагу phpize, возвращаемые версии не совпадают с phpinfo ().Вместо того, чтобы видеть:
PHP Api Version: whatever
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
Вместо этого я вижу:
PHP Api Version: 20020918
Zend Module Api No: 20020429
Zend Extension Api No: 20050606
Чтобы усложнить ситуацию, я использую старую версию XAMPP (1.6.8a), которая позволяет мнепереключаться между PHP 4.4.9 и PHP 5.2.6 (в настоящее время попытка перехода версий PHP на моей работе и отладка действительно ускорит процесс).В настоящее время у меня работает режим PHP5.Проверяя / opt / lampp / bin / phpize, я вижу, что это символическая ссылка на «phpize-5.2.6».Я предполагаю, что XAMPP просто переключает ссылку в зависимости от версии PHP, с которой ему было приказано запускаться.В любом случае, эта часть выглядит нормально, и я запускаю phpize-5.2.6 для проверки работоспособности и все еще получаю старые номера версий.Теперь php-config настроен аналогично, при запуске php-config --version возвращает «5.2.6», что просто отлично.
Я делаю еще несколько копаний и перебираю этот пост (2-й до последнего в теме).В итоге я загружаю исходный код PHP для версии 5.2.17 (надеюсь, это достаточно близко) и создаю программную ссылку, как описано в теме.Версии phpize теперь выглядят намного лучше и соответствуют тому, что сайт Xdebug говорит, что я должен увидеть:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
«Make» теперь выдает ошибки отсутствующего файла заголовка, перечисленные выше.Я вижу этот пост и решаю поиграться с моим файлом конфигурации.
Я закомментировал
-no-create | --no-create | --no-creat | --no-crea | --no-cre \ <br/>
| --no-cr | --no-c | -n)
no_create=yes ;;
И удалил - no-create из этой строки:
set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
Все еще не повезло.Я предполагаю, что configure должен создать эти файлы конфигурации или что-то в этом роде?Не уверен, что попробовать дальше.Если это помогает, я использую SUSE SLES 10. Спасибо.
Xdebug custom generated install instructions:
SUMMARY
• Xdebug installed: no
• Server API: Apache 2.0 Handler
• Windows: no
• Zend Server: no
• PHP Version: 5.2.6
• Zend API nr: 220060519
• PHP API nr: 20060613
• Debug Build: no
• Thread Safe Build: no
• Configuration File Path: /opt/lampp/etc
• Configuration File: /opt/lampp/etc/php.ini
• Extensions directory: /opt/lampp/lib/php/extensions/no-debug-non-zts-20060613
INSTRUCTIONS
1. Download xdebug-2.1.0.tgz
2. Unpack the downloaded file with tar -xvzf xdebug-2.1.0.tgz
3. Run: cd xdebug-2.1.0
4. Run: phpize
As part of its output it should show:
Configuring for:
...
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
If it does not, you are using the wrong phpize. Please follow this FAQ entry and skip the next step.
5. Run: ./configure
6. Run: make
7. Run: cp modules/xdebug.so /opt/lampp/lib/php/extensions/no-debug-non-zts-20060613
8. Edit /opt/lampp/etc/php.ini and add the line
zend_extension = /opt/lampp/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so
9. Restart the webserver