2015-07-30 17 views
6

Sau khi thiết lập XDebug tôi đã thành công trong việc gỡ lỗi các tệp php bằng PHPStorm có thể truy cập trực tiếp.Gỡ lỗi Codeigniter bằng XDebug bằng PHPStorm

Nhưng gần đây tôi bắt đầu làm việc với CodeIgniter và tôi đã làm việc qua this tutorial. Bây giờ tôi đã tự hỏi nếu nó có thể gỡ lỗi cụ thể các tập tin MVC, controller.php ví dụ. Bởi vì sau khi thiết lập một điểm ngắt và bắt đầu gỡ lỗi tệp điều khiển bằng PHPStorm, tất nhiên đã tuyên bố 'Không cho phép truy cập tập lệnh trực tiếp' vì tôi đã truy cập trực tiếp tập lệnh.

Và khi truy cập tệp theo cách thủ công, ví dụ: http://localhost:63342/01_codeigniter_tutorial/public_html/index.php/controller nó chỉ hiển thị một trang 404 thay vì đầu ra thông thường được hiển thị khi không mở nó bằng PHPStorm.

Vì vậy, tôi tự hỏi là có một tài liệu cụ thể để đọc thông qua để gỡ lỗi CodeIgniter hoặc tôi chỉ xử lý nó sai?

+2

1) Mở URL của bạn theo cách thông thường 2) Bật biểu tượng "xử lý điện thoại" trong PhpStorm (để bắt đầu nghe kết nối gỡ lỗi đến) và đặt cookie xdebug trong trình duyệt (sử dụng tiện ích mở rộng trình duyệt hoặc dấu trang cụ thể); 3) Tải lại trang trong trình duyệt. https://confluence.jetbrains.com/display/PhpStorm/Zero-configuration+Web+Application+Debugging+with+Xdebug+and+PhpStorm – LazyOne

+2

* "nó chỉ hiển thị trang 404 thay vì" * Điều này là do bạn đang sử dụng PhpStorm's riêng * đơn giản * được xây dựng trong máy chủ web chứ không phải Apache của bạn. Máy chủ PhpStorm không xử lý các quy tắc mod_rewrite (URL đẹp) nên không thể sử dụng cho các trang web như vậy. – LazyOne

+2

Vì vậy, giải pháp tổng thể: bắt đầu yêu cầu gỡ lỗi bên ngoài/từ trình duyệt (bằng cách thêm cookie xdebug hoặc tham số GET/POST) bằng cách sử dụng URL bất kỳ hoạt động cho bạn chứ không phải từ bên trong PhpStorm. – LazyOne

Trả lời

5

Nhờ LazyOne, người đã chứng ngộ tôi trong các nhận xét tôi đã có thể tìm thấy những sai lầm và giải pháp của tôi.

Lý do đầu tiên tại sao trang 404 được hiển thị khi duyệt trang web bằng PhpStorm, là tôi đang sử dụng máy chủ web được xây dựng của PhpStorm chứ không phải Apache của tôi. Và cho biết máy chủ không xử lý các quy tắc mod_rewrite (mà đơn giản hóa các URL) để các trang web sử dụng CodeIgniter nó sẽ không hoạt động. Và kể từ khi các kịch bản không trực tiếp accesible nó không thể bằng cách nhấp vào chạy trong PhpStorm. Vì vậy, chúng tôi phải bắt đầu yêu cầu gỡ lỗi từ trình duyệt web bên ngoài /.

Bây giờ 2 thứ phải được thực hiện:

  • PhpStorm (hoặc IDE ưa thích của bạn) phải biết rằng một quá trình gỡ lỗi sắp xảy ra
    • Sử dụng PhpStorm bạn phải chuyển đổi “Start Đang nghe nút Kết nối gỡ lỗi PHP ”.
    • Xem thêm tại their documentation
  • Khi duyệt trang web của bạn như bình thường (trong trường hợp của tôi localhost/01_codeigniter_tutorial/public_html/index.php/controlle r), bạn phải thiết lập một cookie XDebug từ xdebug sẽ không tự động bắt đầu phiên gỡ lỗi khi bạn mở tập lệnh.
    • Cách đơn giản nhất là cài đặt một trình duyệt add on vì bạn chỉ phải bấm vào một nút (tôi đã sử dụng Các XDebug dễ dàng nhất cho FF)
    • đọc this để biết thêm thông tin

Sau mọi thứ đã được thiết lập, bạn chỉ cần làm mới trang của bạn và IDE sẽ nhận được yêu cầu gỡ lỗi của bạn.

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