2012-04-01 29 views
22

Tôi đã cài đặt Xdebug và tất cả đều ổn, cho đến khi đột ngột nó ngừng hoạt động. phpinfo() cho ra một đầu ra XDebug đẹp với tất cả các biến.Xdebug ngừng hoạt động, tôi tìm lỗi ở đâu?

php -m | grep deb 

cũng cung cấp hai lần XDebug (cho Zend và PHP), vì vậy lại có vẻ tốt. Php.ini của tôi có các dòng sau:

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 

Chưa hết, khi chạy mã này nên kiểm tra XDebug (từ tài liệu Netbeans) nó chỉ bị kẹt. Vì vậy, không có IDE đang làm việc với 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); 

Ngoài ra, theo cài đặt XDebug, tôi đã thực hiện hai lần các bước. Có gì sai với cấu hình của tôi? Cảm ơn.

+0

ngay cả sau khi thêm xdebug.remote_log = "/ tmp/xdebug.log" và khởi động lại Apache2, và chạy một ứng dụng nhật ký trống ... – valk

Trả lời

10

Cuối cùng, chỉ còn lại hai giải pháp - để cài đặt lại hệ điều hành Ubuntu hoặc cài đặt một máy ảo mới đặc biệt là cho xdebug, tôi sẽ dùng phiên bản thứ hai. Điều thú vị là, mọi thứ đều hoạt động theo "RTM" (f = freaking). Một điều mà tôi không thể tìm ra là làm thế nào để đọc các bản ghi cho XDebug để hiểu được vấn đề thực sự ở đâu.

CẬP NHẬT

Sau khi gặp khó khăn, tôi đã xóa từng dòng liên quan đến xdebug khỏi mọi php.ini mà tôi có. Và chuyển những dòng này vào /etc/php5/conf.d/xdebug.ini. Khởi động lại Apache, và sau đó PHPStorm, và nó hoạt động. P.S. ở giữa, tôi đã thử cài đặt xdebug với pecl, từ github và phiên bản Ubuntu chuẩn. Tôi nghĩ rằng một trong đó tôi biên dịch hiện đang làm việc. Và .. nhật ký cũng được cập nhật.

;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

cổng kiểm tra không được chiếm đóng, netbeans kiểm tra được cấu hình để lắng nghe cổng đó (tôi thấy bạn có 9001, 9000 là mặc định thường) cũng có khi tôi gỡ lỗi với nhật thực tôi phải "chấm dứt và relaunch" gỡ lỗi phiên mỗi bây giờ và sau đó kể từ khi nó ngừng hoạt động, không bao giờ theo lý do tại sao, tôi nghi ngờ một số loại phiên gỡ lỗi hết hạn

2

Tôi đã có vấn đề này quá trên Ubuntu sau khi cập nhật php. Đối với tôi, quay về lỗi html trong php.ini có Xdebug với Netbeans để làm việc một lần nữa ...

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

Và khởi động lại apache:

sudo /etc/init.d/apache2 restart 

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

6

Mở máy chủ của bạn, hãy thử này lệnh:

$ netstat -anp | grep CLOSE_WAIT

Bất kỳ: 9000 mục sẽ cung cấp cho bạn những rắc rối XDebug; xem xét kill -9 <pid>.

+0

Đối với những người không hoàn toàn quen thuộc với Linux, PID trên ubuntu cho tôi bằng cách sử dụng lệnh là cột cuối cùng: 3131/apache2 PID = 3131 – espradley

1

Tôi đã kiểm tra

netstat -anp đầu ra

của tôi và phát hiện ra rằng có số lượng ổ cắm mở (trong phạm vi cảng XDebug) bởi quá trình tổng thể máy từ xa của tôi [chạy xDebug] .

Giết quy trình 'chính' đã giải quyết được sự cố cho tôi.

Dường như tình huống tràn ngập cổng đối với tôi. Nghĩ rằng thông tin có thể hữu ích đối với một số người.

Các vấn đề liên quan