Почему xdebug аварийно завершает работу apache при каждой попытке установить XAMPP? - PullRequest
9 голосов
/ 16 октября 2008

Я установил пакет Windows XAMPP на трех отдельных компьютерах, 2 с 32-разрядной Windows Vista (1 Ultimate / 1 Home Premium) и 1 с Windows Vista 64 Home Premium.

После включения xdebug в php.ini и перезапуска apache при просмотре индекса локального хоста XAMPP по умолчанию каждый раз происходит сбой apache, сообщая о php_xdebug.dll в качестве имени модуля ошибки.

Вот полный отчет о Windows Crash Reporter:

Problem signature:
Problem Event Name: APPCRASH
Application Name:   apache.exe
Application Version:    2.2.9.0
Application Timestamp:  4853f994
Fault Module Name:  php_xdebug.dll
Fault Module Version:   2.0.3.0
Fault Module Timestamp: 47fcd9b9
Exception Code: c0000005
Exception Offset:   00008493
OS Version: 6.0.6001.2.1.0.768.3
Locale ID:  1033
Additional Information 1:   a34a
Additional Information 2:   c9c5f4fd744690d388ab9d5b3eb051a7
Additional Information 3:   cb2e
Additional Information 4:   650bb5690556a17e911375b94d3e16f0

Я пытался найти эту проблему, но не нашел решения, только сообщения о похожих ошибках.

РЕДАКТИРОВАТЬ: я включил линию расширения для php_xdebug.dll, и это, кажется, остановило сбой до сих пор.

Ответы [ 24 ]

6 голосов
/ 07 мая 2009

Я использую XAMPP для Windows версии 1.7.1 на моем компьютере с Win7 с xDebug, и он отлично работает.

Проверьте, установлен ли SP1, а затем следуйте этим примечаниям :

  1. Найдите строку, содержащую implicit_flush, и установите ее следующим образом:

    implicit_flush = On

  2. Найдите раздел с именем [Zend] и закомментируйте все строки, поставив точку с запятой (";") в начале каждой строки.

  3. Найдите строку: zend_extension = "c:\xampp\php\ext\php_xdebug.dll" и раскомментируйте ее.

  4. Найдите раздел [XDebug] и раскомментируйте все строки (кроме первой строки, которая является фактическим комментарием). Для Windows это должно выглядеть следующим образом:

    [XDebug]
    ;; Only Zend OR (!) XDebug
    zend_extension_ts="C:\xampp\php\ext\php_xdebug.dll"
    xdebug.remote_enable=true
    xdebug.remote_host=localhost
    xdebug.remote_port=10000
    xdebug.remote_handler=dbgp
    xdebug.profiler_enable=1
    xdebug.profiler_output_dir="C:\xampp\tmp"
    
2 голосов
/ 14 июня 2011

Я искал в интернете эту проблему и перепробовал много решений, но ни одно из них не помогло. Я попробовал эту конфигурацию, только последний тест и работал для меня, в Eclipse изменить в Windows / Preferences / PHP / Debug и выбрать Xdebug в качестве отладчика PHP.

1 голос
/ 20 февраля 2009

Ответ Мэтти помог мне предотвратить сбой Apache, но я не могу запустить сеанс удаленной отладки. Всякий раз, когда я пытаюсь пройтись по коду, мой клиент жалуется на то, что соединение было закрыто, поэтому для меня пока нет отладки.

Но, в случае, если это пригодится кому-либо еще, вот изменения, которые я сделал в файле apache \ bin \ php.ini в XAMPP 1.6.8 (то же самое работало в 1.7.0). Строка 671:

extension=php_xdebug-2.0.4-5.2.8.dll

и в строке 1297 я добавил:

[XDebug]
;; Only Zend OR (!) XDebug
zend_extension_ts="\xampplite\php\ext\php_xdebug-2.0.4-5.2.8.dll"
xdebug.remote_enable=true
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.profiler_enable=1
xdebug.profiler_output_dir="\xampplite\tmp"
xdebug.trace_output_dir="\xampplite\tmp"
1 голос
/ 12 февраля 2009

У меня тоже была эта проблема. Понизьте версию вашей установки XAMPP до предыдущей версии, и ошибка будет исправлена. Я не уверен, что именно вызвало это, но это единственное решение, известное на данный момент. Вы можете получить вторую самую последнюю версию здесь .

1 голос
/ 12 февраля 2009

Список совместимости с Windows доступен здесь . Кажется, xdebug не поддерживается для Vista ...

1 голос
/ 04 февраля 2009

Обычно может быть только ОДНО расширение уровня движка для PHP. В настоящее время я использую последнюю версию пакета xampp lite на своей машине с xdebug и все в порядке.

Используя grep (пакет gnu32 для windows) или какой-либо другой текстовый фильтр, получите список каждой строки в вашем PHP-файле со словом «extension» и убедитесь, что вы точно знаете, какие пакеты используются для вашего wamp. стек.

Далее. xdebug лучше работает как расширение движка, но, как отметили несколько человек, его можно использовать и как обычное расширение. Потеря производительности между движком и обычными расширениями заключается в том, что профилирование не так точно, отладка на сервере editor -> не надежна и не работает ни с чем, кроме явных операторов xdebug_break ().

Последнее, что нужно попробовать, это вызвать php -i и передать его в текстовый файл. Если там произойдет сбой, то пора пойти на более радикальные меры. Найдите все файлы php.ini на вашем компьютере с Windows и переименуйте их в что-то вроде php.disabled.ini или disabled_php.ini и попробуйте вызов php -i еще раз. Вполне возможно, у вас есть файл php.ini, скрывающийся в некоторых странных местах, таких как c: \ | c: \ windows \ | c: \ windows \ system или где-то еще, который имеет приоритет в пути, чем то, что вы ожидаете, будет xammp \ apache \ bin

1 голос
/ 25 февраля 2009

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

Eclipse Europa - Версия: 3.3.2 Идентификатор сборки: M20080221-1800

XAMPP - установщик win32 версии 1.6.8

xdebug - php_xdebug-2.0.2-5.2.5.dll

Содержимое ~ / xampp / apache / bin / php.ini

[Zend]
;zend_extension_ts = "C:\xampp\php\zendOptimizer\lib\ZendExtensionManager.dll"
;zend_extension_manager.optimizer_ts = "C:\xampp\php\zendOptimizer\lib\Optimizer"
;zend_optimizer.enable_loader = 0
;zend_optimizer.optimization_level=15
;;zend_optimizer.license_path =
; Local Variables:
; tab-width: 4
; End:

[XDebug]
;; Only Zend OR (!) XDebug
zend_extension_ts="C:\xampp\php\ext\php_xdebug-2.0.2-5.2.5.dll"
xdebug.remote_enable=true
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.profiler_enable=1
xdebug.profiler_output_dir="C:\xampp\tmp"

И абсолютно важный бит для меня ...

;extension=php_xdebug-2.0.2-5.2.5.dll

Это верно! Закомментируйте вышеприведенную строку.

Надеюсь, это поможет

1 голос
/ 20 мая 2009

Наткнулся на это, делая поиск в Google, почему XDebug ломал мой Apache WAMP. Я только что обновил ноутбук до Vista 64 с текущей версией WAMP (2.0), и вот что я добавил в свой php.ini, чтобы остановить сбой.

Я использую NetBeans в качестве своей IDE, и отладка работает очень хорошо.

Прежде всего, комментируйте в своем активном php.ini.

;extension=php_xdebug-2.0.4-5.2.8.dll

Затем добавьте это в конец вашего активного php.ini (Настройте ваши каталоги и имя файла xdebug соответственно.)

[XDebug]
; Only Zend OR (!) XDebug
zend_extension_ts="C:/Program Files (x86)/wamp/bin/php/php5.2.9-2/ext/php_xdebug-2.0.4-5.2.8.dll"
xdebug.remote_enable=on
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.profiler_enable=0
xdebug.profiler_output_dir="C:/Program Files (x86)/wamp/tmp"
1 голос
/ 04 ноября 2008

На другом форуме я обнаружил возможную подсказку - хотя обычно apache на xampp использует php.ini, который находится в каталоге apache / bin, некоторые модули этого не делают. Поэтому я поиграл с php.ini в этом каталоге (просто убрать его из-под вреда для меня до сих пор, как при переименовании / удалении). Могу хотя бы попробовать.

1 голос
/ 06 февраля 2011

Раствор при http://community.activestate.com/forum-topic/apache-crashes#comment-9812 Очевидный глючный модуль apache - запускает php как CGI.

...