美文网首页
Mac系统下Xdebug模块在phpinfo()不显示的解决方案

Mac系统下Xdebug模块在phpinfo()不显示的解决方案

作者: Billie_f310 | 来源:发表于2021-08-21 13:58 被阅读0次

1这个问题困惑了我很久,全世界都搜不到能解决我的问题的答案,如果此答案可以帮到你们,那是你们的荣幸!因为我肯定能解决你们的问题,当然我是苹果系统,其他系统出现此情况的可能性比较低,尤其是windows几乎很难出现。除非你手欠。

2首先在php -m下明显可以显示xdebug模组的加载,但是在phpinfo()的输出却没有任何xdebug的信息。足以说明xdebug并没有完全加载成功。所以你的任何调试都毫无意义,如果phpinfo()不显示xdebug,全是白忙活。

3这个问题有2种解决思路。

第一网上的建议,他们说你有多个php环境,这个解释一百分,但是毫无意义。因为假设你是从网上下载的source源码自己 make成xdebug .so文件,前面有个phpsize的指令要执行,当然每个php版本的phpsize肯定不一样。假如你是php7.3你用php7.2的phpsize编译源码,到了php-m这一步都会显示生成的so文件不对的。。就别说他可以正确的载 php -m显示出来已经成功加载此模组。。        但是我们此时 php -m显示已经成功加载 xdebug.so 说明问题并不是 phpsize版本异常导致!!!!!! 总结一句话,如果你生成的xdebug.so 在php -m 模组下能看到,你就不要纠结 php版本的问题了

第二不是php环境的问题那么肯定就是Apache或者你的nginx的问题了,我在这里只用的apache,nginx我不说。当时我想直接卸载apache ,但是mac卸载apache极端复杂,我很懒。所以我没做。直到有一天我发现。我用sudo apachectl -k start   启动我的apache,发现他总是提醒我的servicename没有设置,我很纳闷,我一直在设置了呀。于是为了规避这个错误我每次都用/usr/sbin/apachectl 启动,我就没有去问这件事情。但是他就是加载不了xdebug。。shit!!

所以我一直在怀疑,我的mac里面有2个版本的apache,于是我执行

which-a apachectl

1.果然 返回了2个apache实例,分别是/usr/sbin/apachectl和/usr/local/bin/apachectl,问题很明显了,第一个是brew安装的apache,第二个应该是系统自带的apache。我每次用的都是brew自己安装的apache,但是他可能没有安装好,导致我饿xdebug加载不了。但我更倾向于这2个apache之间有冲突导致,或者需要配置什么文件让他两和谐共存,但是这个我就不研究了,没意思。

2.此时问题就很明了了我之前所有的配置都是配的/etc/apache2/httpd.conf 这个路径。也就是我的brew安装的apache的路径,而sudo apachectl -k start  是我本机apache的路径,所以他一直启动不起来,因为我就没有配置本机apache的配置文件。。

3.于是你只需要找到/usr/local/etc/httpd/httpd.conf 这个本机apache的配置文件一顿操作,然后

sudo /usr/local/bin/apachectl restart。 你发现xdebug已经加载到phpinfo了

结论就是2个apache冲突导致,xdebug无法加载,但是我不太清楚为何,我会有2个版本的apache。哎。烦死。。

相关文章

网友评论

      本文标题:Mac系统下Xdebug模块在phpinfo()不显示的解决方案

      本文链接:https://www.haomeiwen.com/subject/crufiltx.html