[英]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时,问题就解决了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.