Apache не загружает Xdebug, но делает это при запуске из командной строки

Я знаю, что это звучит странно, но поверьте мне, это то, что происходит. Вот мои настройки системы:

Windows 7
Apache 2.2
PHP 5.2.12
Xdebug 2.0.5

У меня XDebug настроен в моем файле PHP.ini. Когда я запускаю php -m, я действительно вижу, что Xdebug загружен. Теперь, если я запускаю Apache AS A SERVICE (или с помощью Apache Monitor) и запускаю phpinfo (), он НЕ показывает Xdebug как загружаемый.

Однако (теперь вот сумасшедшая часть), если я перехожу в свой каталог Apache bin и просто запускаю httpd.exe, а затем перейду и посмотрю на phpinfo (), Xdebug теперь показывает, что он загружен!

Кроме того, сравнивая некоторые phpinfo () при запуске через службу или по командной строке, похоже, что файл php.ini для обоих случаев одинаковый. Все выглядит одинаково, за исключением загружаемой части Xdebug.

Пожалуйста, если у вас есть какие-либо идеи, мы будем очень благодарны.

Как правило, существуют разные файлы конфигурации для каждого возможного способа вызова экземпляра php: HTTP / CLI и т. Д. (По крайней мере, это может быть в случае с * nix)

Я бы предложил выполнить поиск в вашей системе для php * ini и посмотреть, есть ли у вас несколько файлов с разными / отсутствующими настройками Xdebug.

Недавно я столкнулся с одной и той же проблемой, но мне пришлось затушить SELinux, чтобы разрешить доступ httpd к модулю xdebug.so:

chcon -v -R --type=httpd_sys_content_t /path/to/your/xdebug.so 

Перезагруженный httpd и все работало, как ожидалось.

У меня была аналогичная проблема с Xdebug в Windows / IIS. Php -m показал модуль как загруженный, но phpinfo () этого не сделал. Оказалось, что проблема с правами доступа – как только я установил xdebug .dll, чтобы предоставить доступ для чтения анонимным пользователям, он начал работать. Я бы проверял разрешения на эту .dll, чтобы убедиться, что любой пользователь Apache работает, так как имеет доступ к нему.

Возможно, это ошибка или комбинация. У меня была другая проблема (XDebug не распознавал некоторые переменные), проблема устранена, когда я до 2.1.0.

http://xdebug.org/download.php

У меня была эта проблема, и я узнал, что это было вызвано тем, что в моем php.ini вместо обратных косых черт. Итак, попробуйте: C: \ php \ ext \ xdebug.dll вместо C: /php/ext/xdebug.dll

Майк Перселл, у вас было это ПОЧТИ правильно …

В новой Red Hat и других дистрибутивах Linux SELinux включен (отсасывает большой) и блокирует дочерние элементы Apache (например, xdebug.so) от выполнения определенных действий, например, для доступа к сети.

Таким образом, вам необходимо отключить SElinux, используя:

 vi /etc/selinux/config SELINUX=disabled 

поэтому и перезагрузиться, это отключит SE Linux, и X-Debug начнет работать … Убит целый день из-за этого, надеюсь, что это кому-то поможет ..

Это также то, как настроены серверы Amazon EC2 и AWS Linux …

Шон.