1這個(gè)問題困惑了我很久,全世界都搜不到能解決我的問題的答案,如果此答案可以幫到你們,那是你們的榮幸!因?yàn)槲铱隙芙鉀Q你們的問題,當(dāng)然我是蘋果系統(tǒng),其他系統(tǒng)出現(xiàn)此情況的可能性比較低,尤其是windows幾乎很難出現(xiàn)。除非你手欠。
2首先在php -m下明顯可以顯示xdebug模組的加載,但是在phpinfo()的輸出卻沒有任何xdebug的信息。足以說明xdebug并沒有完全加載成功。所以你的任何調(diào)試都毫無意義,如果phpinfo()不顯示xdebug,全是白忙活。
3這個(gè)問題有2種解決思路。
第一網(wǎng)上的建議,他們說你有多個(gè)php環(huán)境,這個(gè)解釋一百分,但是毫無意義。因?yàn)榧僭O(shè)你是從網(wǎng)上下載的source源碼自己 make成xdebug .so文件,前面有個(gè)phpsize的指令要執(zhí)行,當(dāng)然每個(gè)php版本的phpsize肯定不一樣。假如你是php7.3你用php7.2的phpsize編譯源碼,到了php-m這一步都會(huì)顯示生成的so文件不對(duì)的。。就別說他可以正確的載 php -m顯示出來已經(jīng)成功加載此模組。。? ? ? ? 但是我們此時(shí) php -m顯示已經(jīng)成功加載 xdebug.so 說明問題并不是 phpsize版本異常導(dǎo)致!?。。。?! 總結(jié)一句話,如果你生成的xdebug.so 在php -m 模組下能看到,你就不要糾結(jié) php版本的問題了
第二不是php環(huán)境的問題那么肯定就是Apache或者你的nginx的問題了,我在這里只用的apache,nginx我不說。當(dāng)時(shí)我想直接卸載apache ,但是mac卸載apache極端復(fù)雜,我很懶。所以我沒做。直到有一天我發(fā)現(xiàn)。我用sudo apachectl -k start? ?啟動(dòng)我的apache,發(fā)現(xiàn)他總是提醒我的servicename沒有設(shè)置,我很納悶,我一直在設(shè)置了呀。于是為了規(guī)避這個(gè)錯(cuò)誤我每次都用/usr/sbin/apachectl 啟動(dòng),我就沒有去問這件事情。但是他就是加載不了xdebug。。shit!!
所以我一直在懷疑,我的mac里面有2個(gè)版本的apache,于是我執(zhí)行
which-a apachectl
1.果然 返回了2個(gè)apache實(shí)例,分別是/usr/sbin/apachectl和/usr/local/bin/apachectl,問題很明顯了,第一個(gè)是brew安裝的apache,第二個(gè)應(yīng)該是系統(tǒng)自帶的apache。我每次用的都是brew自己安裝的apache,但是他可能沒有安裝好,導(dǎo)致我餓xdebug加載不了。但我更傾向于這2個(gè)apache之間有沖突導(dǎo)致,或者需要配置什么文件讓他兩和諧共存,但是這個(gè)我就不研究了,沒意思。
2.此時(shí)問題就很明了了我之前所有的配置都是配的/etc/apache2/httpd.conf 這個(gè)路徑。也就是我的brew安裝的apache的路徑,而sudo apachectl -k start? 是我本機(jī)apache的路徑,所以他一直啟動(dòng)不起來,因?yàn)槲揖蜎]有配置本機(jī)apache的配置文件。。
3.于是你只需要找到/usr/local/etc/httpd/httpd.conf 這個(gè)本機(jī)apache的配置文件一頓操作,然后
sudo /usr/local/bin/apachectl restart。 你發(fā)現(xiàn)xdebug已經(jīng)加載到phpinfo了
結(jié)論就是2個(gè)apache沖突導(dǎo)致,xdebug無法加載,但是我不太清楚為何,我會(huì)有2個(gè)版本的apache。哎。煩死。。