2010-02-05 14 views
11

我知道这听起来很奇怪,但相信我,这就是发生了什么。这里是我的系统设置:Apache没有加载Xdebug,但是从命令行启动时发生了什么

Windows7的
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被加载的部分之外,一切看起来都是一样的。

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

+0

我在Snow Leopard上遇到了同样的问题。 – 2010-03-04 20:39:14

+0

Ubuntu中的一些问题 – 2012-02-09 11:01:38

+0

山狮同样的问题。让我疯狂 – pal4life 2012-12-26 22:24:48

回答

0

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

+0

如何在山狮上做到这一点? – pal4life 2012-12-26 22:18:25

1

一般有用于调用PHP的一个实例的每个可能的方式不同的配置文件:HTTP/CLI等(至少这可以在* nix的情况下)

我建议做你的系统上执行搜索为php * ini,看看你是否有多个文件与不同/缺少Xdebug设置。

+0

我做了一个搜索.....没有其他的php.ini文件。 – JamesD 2012-02-16 03:18:43

0

这可能是一个错误版本/组合。我有一个不同的问题(XDebug没有认识到一些变量),当我达到2.1.0时,问题被解决了。

http://xdebug.org/download.php

1

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

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

而重新启动httpd和一切工作正常。

0

我有这个问题,发现它是由我的php.ini而不是反斜杠前倒斜杠造成的。 因此,尝试: C:\ PHP \分机\代替xdebug.dll C:/php/ext/xdebug.dll

0

迈克赛尔,你有它差不多吧......

在新Red Hat和其他Linux发行版中,启用了SELinux(吸引了大个子),并阻止了Apache衍生子(如xdebug.so)执行某些操作,如访问网络。

因此你需要使用禁用SELinux:

vi /etc/selinux/config 

SELINUX=disabled 

所以并重新启动,这将禁用的SE Linux和X-Debug将开始工作...... 打死这个一整天的事业,希望它有助于有人..

这也是亚马逊EC2和AWS Linux服务器是如何设置的?

肖恩。

相关问题