Xdebug được tải, nhưng không được tải dưới dạng tiện ích mở rộng zend. Nó có nghĩa là gì? Làm thế nào để giải quyết vấn đề này?Cảnh báo "XDEBUG NOT LOADED AS ZEND EXTENSION" có nghĩa là gì?
Trả lời
Lỗi này có nghĩa là bạn đã sử dụng "extension =" để tải Xdebug. Đó có thể là trong php.ini bình thường của bạn, hoặc trong một tệp có tên là xdebug.ini mà một số bản phân phối muốn thêm vào. Trong mọi trường hợp, Xdebug cần được tải dưới dạng phần mở rộng Zend cho một số tính năng nhất định như gỡ lỗi từng bước. Vì Xdebug không có nghĩa là làm việc như một phần mở rộng bình thường, nó có thể bị sập và ghi.
Cú pháp tải Xdebug dưới dạng phần mở rộng Zend phụ thuộc vào phiên bản PHP và bản dựng. Tôi sẽ đề nghị bạn sử dụng http://xdebug.org/wizard.php để cung cấp cho bạn các dòng chính xác.
"Trong mọi trường hợp, Xdebug cần được tải dưới dạng phần mở rộng Zend" - bạn có thể giải thích tại sao không? Khi tôi cài đặt xdebug thông qua PECL, tôi được nhắc thêm "extension = xdebug.so" vào php.ini và phpinfo() báo cáo tất cả các loại lòng tốt về cách xdebug được cài đặt và làm việc, nhưng nó cũng nhắc tôi rằng đó là " không được tải dưới dạng tiện ích mở rộng Zend "mà không có bất kỳ giải thích nào về lý do tôi sẽ quan tâm. –
Ít nhất trong Windows, trình hướng dẫn xdebug tạo ra một lỗi nhỏ: nó gợi ý thêm một số thứ như 'zend_extension = C: \ Program Files (x86) \ PHP \ v5.3 \ ext \ php_xdebug-2.2.1-5.3-vc9-nts. dll'. Nó phải là 'zend_extension =" C: \ Program Files (x86) \ PHP \ v5.3 \ ext \ php_xdebug-2.2.1-5.3-vc9-nts.dll "' để thực sự hoạt động. – texnic
@texnic Thanks !. Trình hướng dẫn đã cho biết thêm "zend_extension = ext \" vào tệp php.ini. Nó nên nói thêm xdebug.dll như một phần của đường dẫn mở rộng, ví dụ: "zend_extension = ext \ php_xdebug-2.2.2.dll". Tôi lãng phí 30 phút cố gắng tìm ra điều đó. – b01
Đảm bảo rằng cấu hình được định cấu hình để tải chính xác dưới dạng zend_extension
. Bên trong php.ini
thêm dòng này
zend_extension="/usr/local/php/modules/xdebug.so"
Trong bản cài đặt CentOS 6 của tôi, nó là: 'zend_extension =/usr/local/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so' (Ngoài ra, tôi có một php.ini địa phương trong web root mà hơn cưỡi php.ini mặc định.Có vẻ như tôi phải thêm chỉ thị ở đó nếu tôi muốn nó hoạt động bên trong đường dẫn web đó.) –
Những người khác đã giải thích rằng lỗi là do Xdebug đang được tải dưới dạng mô-đun PHP thông thường thay vì là phần mở rộng Zend. Bạn có thể sử dụng wizard mà Derick liên kết hoặc nhập thủ công dòng như Starx đã hiển thị.
Tuy nhiên, có sự cố mà bạn có thể gặp phải. Chỉ thị extensions_dir
trong php.ini
hiện chỉ áp dụng cho các mô-đun PHP, not to Zend extensions. Vì vậy, bạn không thể sử dụng một cấu hình chung như thế này:
[PHP]
extension_dir = .\ext
extension = php_memcache.dll
…
[zend]
zend_extension = php_xdebug-2.2.3-5.3-vc9-nts.dll
Trong khi PHP sẽ được tải một cách chính xác php_memcache.dll
từ thư mục con ext
, nó sẽ không tải php_xdebug-2.2.3-5.3-vc9-nts.dll
và sẽ ném lỗi Failed loading php_xdebug-2.2.3-5.3-vc9-nts.dll
.
Để sửa lỗi này, bạn sẽ cần phải hoặc là sử dụng một/đường dẫn tuyệt đối đầy đủ điều kiện như:
zend_extension = C:\foobar\PHP\ext\php_xdebug-2.2.3-5.3-vc9-nts.dll
hoặc một đường dẫn tương đối như thế này:
zend_extension = ext\php_xdebug-2.2.3-5.3-vc9-nts.dll
zend_extension = ..\phpexts\php_xdebug-2.2.3-5.3-vc9-nts.dll
zend_extension = \dev\phpexts\php_xdebug-2.2.3-5.3-vc9-nts.dll
(wizard sẽ trả lại zend_extension=.\ext\php_xdebug-2.2.3-5.3-vc9-nts.dll
bao gồm thư mục nhưng cũng thừa một số .\
)
Nếu bạn muốn kích hoạt zend*nts*.dll
vào bạn php.ini
tập tin trên máy chủ Windows, bạn phải sử dụng zend_extension_ts
chỉ thị thay vì zend_extension
Ví dụ để tải Xdebug:
[XDeug]
zend_extension_ts="DRIVE:/PATH_TO_XDEBUG/php_xdebug.dll"
xdebug.show_local_vars=1
xdebug.default_enable=On
Lưu ý: các dấu ngoặc kép vào tập tin dll của bạn
Hy vọng rằng sẽ giúp ai đó :)
Cấu hình của bạn là gì? Có gì trong ** php.ini ** của bạn? ('zend_extension_debug = *'). Biết thêm chi tiết sẽ được đánh giá cao. – Liyali
Làm cách nào để bạn biết nó không được tải dưới dạng tiện ích mở rộng zend? bạn đọc những thứ đó ở đâu? Bạn có thể cung cấp ảnh chụp màn hình không? – hakre