繁体   English   中英

Apache没有加载Xdebug,但是从命令行启动时

[英]Apache not loading Xdebug, but does when started from the Command Line

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

Windows 7的
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的部件外,一切看起来都一样。

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

我最近遇到了同样的问题,但我不得不针对SELinux进行针对xdebug.so模块的httpd访问:

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

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

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

Mike Purcell,你几乎没有...

在新的Red Hat和其他Linux发行版中,SELinux已启用(吸收大的)并阻止Apache生成的子进程(例如xdebug.so)执行某些操作,例如访问Web。

因此,您需要使用以下命令禁用SElinux:

vi /etc/selinux/config 

SELINUX=disabled

所以,重新启动,这将禁用SE Linux和X-Debug将开始工作...杀了一整天的原因,希望它有助于某人..

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

肖恩。

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

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

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

它可能是一个有缺陷的版本/组合。 我有一个不同的问题(XDebug没有识别出一些变量),当我达到2.1.0时,问题就解决了。

http://xdebug.org/download.php

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM