2012-04-01 54 views
22

我安裝了Xdebug,一切正常,直到突然停止工作。 phpinfo()給出了一個帶有所有變量的很好的XDebug輸出。Xdebug停止工作,我在哪裏查找錯誤?

php -m | grep deb 

也給出了兩次XDebug(用於Zend和PHP),所以再次看起來很好。我的php.ini中有這些行:

zend_extension=/usr/lib/php5/20090626/xdebug.so 
;extension=xdebug.so 
xdebug.remote_host=localhost 
xdebug.remote_enable=on 
xdebug.remote_port=9001 
xdebug.remote_handler=dbgp 
xdebug.remote_connect_back=1 

然而,運行此代碼應該檢查的XDebug(從Netbeans的文檔)時,它只是卡住了。所以沒有IDE與XDebug合作。

<?php 
$address = '127.0.0.1'; 
$port = 9001; 
$sock = socket_create(AF_INET, SOCK_STREAM, 0); 
socket_bind($sock, $address, $port) or die('Unable to bind'); 
socket_listen($sock); 
$client = socket_accept($sock); 
echo "connection established: $client"; 
socket_close($client); 
socket_close($sock); 

此外,根據XDebug安裝,我走了兩遍這些步驟。我的配置有什麼問題?謝謝。

+0

甚至在添加xdebug.remote_log =「/ tmp/xdebug.log」並重新啓動Apache2並運行應用程序日誌爲空之後... – valk 2012-04-02 05:50:59

回答

10

最後,只留下了兩個解決方案 - 重新安裝Ubuntu操作系統或安裝新的虛擬機,特別是xdebug,我打算爲第二個解決方案。 有趣的是,一切都按照「RTM」(f = freaking)工作。我無法弄清楚的一件事是如何閱讀XDebug的日誌,以便了解真正的問題所在。

UPDATE

有些掙扎之後,我刪除了所有的php.ini中,我不得不Xdebug的有關每一行。並將這些行移至/etc/php5/conf.d/xdebug.ini。重新啓動Apache,然後是PHPStorm,它可以工作。 P.S.在中間,我試圖從github和標準的Ubuntu版本中安裝pecl和xdebug。我認爲我編寫的那個目前正在工作。而且..日誌也會更新。

;xdebug configuration 
zend_extension = /usr/lib/php5/20090626/xdebug.so 
xdebug.remote_host = 127.0.0.1 
xdebug.remote_enable = 1 
xdebug.remote_port = 9000 
xdebug.remote_handler = dbgp 
xdebug.remote_mode = req 
xdebug.profiler_enable=0 
xdebug.profiler_enable_trigger=1 
xdebug.remote_autostart=1 
xdebug.idekey=PHPSTORM 
xdebug.remote_log="/tmp/xdebug.log" 
0

檢查端口沒有被佔用,檢查NetBeans是配置爲偵聽端口(我看你有沒有9001,9000是默認的通常情況下)也當我使用Eclipse調試我必須「終止並重新啓動」調試因爲它停止工作,永遠不會爲什麼,我懷疑某種過期的調試會話

2

我在Ubuntu更新php後也有這個問題。對我來說,在php.ini中打開HTML錯誤的XDebug了使用Netbeans重新工作......

sudo vi /etc/php5/apache2/php.ini 
display_errors = On 
html_errors = On 

並重新啓動Apache:

sudo /etc/init.d/apache2 restart 

http://ubuntuforums.org/showpost.php?p=9592364&postcount=14

6

在服務器上,試試這個命令:

$ netstat -anp | grep CLOSE_WAIT

任何:9000個條目會給你XDebug的麻煩;考慮kill -9 <pid>

+0

對於那些不完全熟悉linux的人,我使用ubuntu的PID命令是最後一列:3131/apache2 PID = 3131 – espradley 2017-07-21 16:31:32

1

我檢查我

netstat的-anp

輸出,並發現有我的遠程機器[運行的XDebug]上開放套接字(在XDebug的端口範圍)由主進程的數。

殺死'主'過程解決了我的問題。

對我來說就像是一個港口超限的情況。 認爲這些信息可能對某些人有用。