2009-12-14 40 views
6

Tôi đã cài đặt gói XAMPP mới nhất bao gồm PHP 5.3.0. Tôi đang cố gắng kích hoạt Xdebug, nhưng nó sẽ không hoạt động.Không thể sử dụng Xdebug trên Windows 7

Đây là những gì tôi đã thay đổi trong php.ini vận chuyển với XAMPP:

; uncommented 
zend_extension = "X:\xampp\php\ext\php_xdebug.dll" 

; added the following lines: 
xdebug.remote_enable=true 
xdebug.remote_host=localhost 
xdebug.remote_port=9000 
xdebug.remote_handler=dbgp 

Apache bắt đầu tốt, nhưng khi tôi mở http://localhost/ trong trình duyệt của tôi, tôi nhận được lỗi sau:

alt text

Nếu tôi nhấp vào nút Close the program, thông báo lỗi sẽ xuất hiện lại trong giây lát như thể nó đang ở trong vòng lặp vô hạn. Tôi rất muốn đánh giá cao bất kỳ bất kỳ trợ giúp nào trong việc thực hiện điều này.

Tôi đang chạy một cài đặt mới của Windows 7 Ultimate 64-bit.

EDIT: Từ kết quả của phpinfo():

Zend Extension Build API220090626,TS,VC6 
PHP Extension Build  API20090626,TS,VC6 
Debug Build    no 
Thread Safety   enabled 

Trả lời

4

Có thể bạn có phiên bản sai của Xdebug. Tôi sẽ xem phpinfo() và so sánh thông tin ở đó với different versions of the Xdebug dll.

Cụ thể, bạn muốn xem liệu "An toàn chủ đề" có được bật hay không, và bạn cần biết liệu bạn đang chạy một PHP được biên dịch VC6 hay VC9 (nếu bạn đang sử dụng Apache, nó gần như được bảo đảm rằng bạn muốn VC6).

+0

Chủ đề an toàn được kích hoạt. PHP được tuân thủ với VC6. Tôi nắm lấy thread-safe 5.3 VC6 và không phải là hương vị 32-bit cũng không phải là hương vị 64-bit được nạp. Tuy nhiên, Apache không sụp đổ nữa. – Derek

+0

Điều này rất hữu ích, tôi đã có php 5.4 nhưng đã cố gắng để cài đặt 5.3 dll mà không đưa ra một lỗi mặc dù. – Nap

0

Vâng, có một vấn đề được biết đến - là hầu như không thể có được Xdebug làm việc với tất xampp và 64-bit Vista/Win 7.

Có một bug báo cáo với nhiều người sử dụng phàn nàn về nó.

Giải pháp có vẻ là latest beta version on Xampp. Nó bao gồm phiên bản 2.0.6 (dev) của xdebug và nó hoạt động tốt.

Tôi đã thử nghiệm trên Vista 64 bit trong khoảng 10 ngày và chưa gặp phải bất kỳ sự cố nào.

0

Giống như những người khác đã nói, bạn cần phải khớp với phiên bản xdebug của bạn với phiên bản php của bạn.

Bạn đã khớp với số phiên bản PHP, an toàn luồng và trình biên dịch.

Nếu bạn chưa tìm ra (đây là một chuỗi cũ), những gì bạn thiếu là cấu hình INI. Nếu bạn đang tải một mô-đun của chủ đề an toàn, bạn cần phải sử dụng các dòng sau:

zend_extension="C:\Path\To\The\Extension.dll" 

Nếu module là không chủ đề an toàn, sau đó bạn sử dụng các chỉ thị INI bạn đã cố gắng để sử dụng.

Điều này chỉ áp dụng cho tiện ích mở rộng của zend_extension và không thường xuyên.

+1

Lưu ý: Sử dụng _ts KHÔNG đúng cho Apache 2.2.21, PHP 5.3 dưới W7 x64, ngay cả khi PHP và Apoache là TS, hãy sử dụng khóa thông thường (chỉ gán dll chính xác cho nó, cái đó không chịu _nts_ trong đó). Có lẽ nó đã được chính xác một số thời gian trở lại. –

+0

Bạn là chính xác, nghi ngờ bất cứ ai sẽ bao giờ nhìn thấy bài viết của tôi vào thời điểm này nhưng tôi cập nhật nó – dcousineau

0

Khi xdebug được cài đặt không phải với XAMPP, chỉ với PHP (32bit, TS, VC6, trong C: \ Program Files (x86) \ PHP) và Apache (32bit) trên Windows 7 (64bit), trong php.ini bạn cần chỉ định đường dẫn đầy đủ đến x86 thư mục của Tệp chương trình như thế nào.

zend_extension="C:\Program Files (x86)\PHP\ext\php_xdebug-2.1.1-5.3-vc6.dll" 

KHÔNG

zend_extension="C:\Program Files\PHP\ext\php_xdebug-2.1.1-5.3-vc6.dll" 

Đây là sai lầm của tôi, khi thay đổi vào thư mục x86, Xdebug bắt đầu làm việc một cách hoàn hảo. Hy vọng điều này sẽ giúp bạn, quá.

2

thẳng thắn-ly, tôi cũng đã có 2 ngày thực sự tồi tệ, và tôi làm không phải bây giờ những gì cuối cùng cố định nó, vì vậy đây là bộ sưu tập của tôi của Đỗ và cạm bẫy:

; this is the thread safe version, 
; the absence of _nts_ in the dll name 'shows' this 
; do not use _ts, your library won't get registered and won't show in phpInfo() 
zend_extension = "D:/wamp/bin/php/php5.3.8/zend_ext/php_xdebug-2.1.2-5.3-vc9-x86_64.dll" 

kiểm tra php.ini của bạn, kiểm tra phpinfo() nếu tất cả các giá trị (đến)

xdebug.remote_enable = on 
xdebug.remote_handler=dbgp 
xdebug.profiler_enable = off 
xdebug.profiler_enable_trigger = off 
; if you have multiple virtual hosts (like 'local.fooclient') 
; maybe using the IP is safer (for any same-machine-debugging) 
xdebug.remote_host=127.0.0.1 
; maybe a -much- lower port helped, 84 was free. use netstat to figure out. 
xdebug.remote_port=84 
; idekey! also see note below 
xdebug.idekey=netbeans-xdebug 

Nhiều cạm bẫy:

tôi đã thấy một lỗi đánh máy của xdebug.remote _handle (không r) nhiều lần trên web. hãy cẩn thận.

Ghi chú trên idekey: Id trên đã hiển thị trong phpinfo() làm giá trị chính, NHƯNG bị ghi đè bằng 'giá trị cục bộ' như MYMACHINENAME $. ==> Thiết lập một env var toàn cục (trong thuộc tính máy tính) có tên là DBGP_IDEKEY và khởi động lại (hoặc có thể chỉ cần đăng xuất) tới (cũng) netbeans-xdebug sẽ giúp! Một lần nữa: kiểm tra lại trong phpInfo() nó có hiệu lực.

Tất nhiên điều chỉnh menu netbeans: tùy chọn-> tab php-> phần gỡ lỗi cho cổng này và id phiên.

Here là một tập lệnh, để kiểm tra (bằng php nghĩa là) nếu cổng bạn dự định nói chuyện đang mở. (dưới đây cũng có trong các ý kiến, đối với những người lười quá loại từ hình ảnh)

Để trình duyệt của bạn kết nối, đừng quên (giữa thất vọng) để luôn đính kèm tham số gỡ lỗi bắt đầu:

http://localhost/myTest.php?XDEBUG_SESSION_START=netbeans-xdebug 

Trên cổng biên giới, cũng this tool có thể giúp ích.

Kiểm tra tứ mô bạn đang giữ các phiên bản được biên dịch VC6 và VC9 của mọi thứ.

Chạy whatever/path/php.exe myTest.php của bạn từ dòng lệnh (khi các cài đặt ở trên được thực hiện) cũng có thể hiển thị lỗi bổ sung (nó đã xảy ra, trong khi tôi đang làm việc với một dll không chính xác).

tôi có thể khuyên http://www.wampserver.com (vì lý do cá nhân nó phù hợp với tôi tốt hơn so với gói xampp phổ biến ...)

3

Các bạn đã thử chương trình cài đặt tùy chỉnh của Xdebug, nó phân tích cài đặt php của bạn và cung cấp các bước chính xác mà bạn cần Để theo dõi

Các tệp nhị phân Windows thường hoạt động cho mọi bản phát hành mini cho phiên bản PHP đã đề cập, mặc dù phần mở rộng được xây dựng dựa trên phiên bản PHP mới nhất tại thời điểm đó. Điểm đánh dấu VCx cho biết phần mở rộng của trình biên dịch nào được xây dựng và không an toàn cho dù ZTS bị vô hiệu hóa. Những vòng loại đó cần khớp với phiên bản PHP bạn đang sử dụng.Nếu bạn không biết bạn cần cái nào, vui lòng tham khảo hướng dẫn cài đặt tùy chỉnh.

http://xdebug.org/wizard.php

Chỉ cần dán phpinfo của bạn ra đặt vào hộp văn bản và bạn sẽ nhận dll Xdebug chính xác mà bạn sẽ cần cho php của bạn

+0

Điều này là rực rỡ. Vấn đề duy nhất là nó cài đặt nó trực tiếp vào PHP, vì vậy bạn sẽ cần một chút tinh chỉnh hơn để chạy nó từ dòng lệnh - đó là những gì một số công cụ làm. – Dunhamzzz

+0

Trình hướng dẫn đã lưu tôi, không có gì khác tôi đã thử làm việc. Kết thúc là tuyệt đối so với đường dẫn tương đối. – Josh

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