11

我知道这听起来很奇怪,但相信我,这就是正在发生的事情。这是我的系统设置:

Windows7
Apache 2.2
PHP 5.2.12
Xdebug 2.0.5

我在我的 PHP.ini 文件中配置了 XDebug。当我运行 php -m 时,我确实看到 Xdebug 已加载。现在,如果我启动 Apache AS A SERVICE(或通过 Apache Monitor)并运行 phpinfo(),它不会显示 Xdebug 正在加载。

然而,(现在这是疯狂的部分),如果我进入我的 Apache bin 目录,简单地运行 httpd.exe,然后去查看 phpinfo(),Xdebug 现在显示为正在加载!

此外,比较通过服务或命令行启动时的一些 phpinfo(),看起来 php.ini 文件对于任何一种情况都是相同的。除了正在加载的 Xdebug 部分外,一切看起来都一样。

请,如果您有任何想法,将不胜感激。

4

6 回答 6

1

我最近遇到了同样的问题,但我不得不针孔 SELinux 以允许 httpd 访问 xdebug.so 模块:

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

重新启动 httpd,一切都按预期工作。

于 2012-02-29T02:08:35.097 回答
0

迈克·珀塞尔,你说得几乎是对的……

在新的 Red Hat 和其他 Linux 发行版中,SELinux 被启用(吸大的)并阻止 Apache 衍生的孩子(例如 xdebug.so)做某些事情,比如访问网络。

因此,您需要使用以下方法禁用 SElinux:

vi /etc/selinux/config 

SELINUX=disabled

所以并重新启动,这将禁用 SE Linux,X-Debug 将开始工作......为此杀死了一整天,希望它对某人有所帮助..

这也是 Amazon EC2 和 AWS Linux 服务器的设置方式……

肖恩。

于 2013-07-24T00:24:12.107 回答
0

通常,每种调用 php 实例的可能方式都有不同的配置文件:HTTP/CLI 等(至少在 *nix 上可能是这种情况)

我建议在您的系统上搜索 php*ini 并查看您是否有多个具有不同/缺少 Xdebug 设置的文件。

于 2010-10-21T21:16:36.467 回答
0

我在 Windows/IIS 中遇到了与 Xdebug 类似的问题 - php -m 显示模块已加载,但 phpinfo() 没有。原来是权限问题 - 一旦我设置 xdebug .dll 为匿名用户提供读取权限,它就开始工作了。我会检查该 .dll 的权限,以确保 Apache 运行的任何用户都可以访问它。

于 2010-03-22T21:39:09.717 回答
0

这可能是一个错误的版本/组合。我有一个不同的问题(XDebug 无法识别某些变量),当我升级到 2.1.0 时问题就解决了。

http://xdebug.org/download.php

于 2010-10-23T22:53:01.567 回答
0

我遇到了这个问题,发现它是由我的 php.ini 中的正斜杠而不是反斜杠引起的。所以尝试: C:\php\ext\xdebug.dll 而不是 C:/php/ext/xdebug.dll

于 2012-07-24T13:58:10.530 回答