Cài đặt docker xdebug PhpStorm

Khi đã cài đặt và bật Xdebug, chúng tôi cần bật gỡ lỗi theo bước. Để làm điều đó, hãy tạo hai tệp cấu hình.

mkdir -p docker/php/conf.d
touch docker/php/conf.d/xdebug.ini
touch docker/php/conf.d/error_reporting.ini
2 và
mkdir -p docker/php/conf.d
touch docker/php/conf.d/xdebug.ini
touch docker/php/conf.d/error_reporting.ini
3;

Để tiết kiệm thời gian, bạn có thể sử dụng các lệnh sau để làm như vậy

1
2
3
mkdir -p docker/php/conf.d
touch docker/php/conf.d/xdebug.ini
touch docker/php/conf.d/error_reporting.ini

Trong

mkdir -p docker/php/conf.d
touch docker/php/conf.d/xdebug.ini
touch docker/php/conf.d/error_reporting.ini
2, thêm cấu hình sau để định cấu hình Xdebug

1
2
3
4
5
6
zend_extension=xdebug

[xdebug]
xdebug.mode=develop,debug
xdebug.client_host=host.docker.internal
xdebug.start_with_request=yes

Đây là những gì cài đặt làm

  • chế độ Cài đặt này kiểm soát các tính năng Xdebug được bật. Chúng tôi đã đặt

    mkdir -p docker/php/conf.d
    touch docker/php/conf.d/xdebug.ini
    touch docker/php/conf.d/error_reporting.ini
    
    1 để bật hỗ trợ phát triển, chẳng hạn như nhận thông báo lỗi tốt hơn và
    mkdir -p docker/php/conf.d
    touch docker/php/conf.d/xdebug.ini
    touch docker/php/conf.d/error_reporting.ini
    
    2 để bật gỡ lỗi theo bước

  • client_host Cài đặt này cho Xdebug biết địa chỉ IP hoặc tên máy chủ của máy đang chạy trình soạn thảo văn bản hoặc IDE của bạn

  • start_with_request Cài đặt này xác định xem theo dõi chức năng, thống kê thu gom rác, lập hồ sơ hoặc gỡ lỗi từng bước có được kích hoạt khi bắt đầu yêu cầu PHP hay không. Đặt nó thành

    mkdir -p docker/php/conf.d
    touch docker/php/conf.d/xdebug.ini
    touch docker/php/conf.d/error_reporting.ini
    
    3 hướng dẫn Xdebug luôn bắt đầu phiên gỡ lỗi

Sau đó, trong

mkdir -p docker/php/conf.d
touch docker/php/conf.d/xdebug.ini
touch docker/php/conf.d/error_reporting.ini
3, hãy thêm cấu hình sau để bật báo cáo lỗi đầy đủ. Luôn luôn tốt để biết điều gì đang xảy ra, nếu và khi nào nó xảy ra

Sau đó, trong định nghĩa dịch vụ

mkdir -p docker/php/conf.d
touch docker/php/conf.d/xdebug.ini
touch docker/php/conf.d/error_reporting.ini
5 trong
mkdir -p docker/php/conf.d
touch docker/php/conf.d/xdebug.ini
touch docker/php/conf.d/error_reporting.ini
6, hãy thêm hai mục sau vào phần tử
mkdir -p docker/php/conf.d
touch docker/php/conf.d/xdebug.ini
touch docker/php/conf.d/error_reporting.ini
7

mkdir -p docker/php/conf.d
touch docker/php/conf.d/xdebug.ini
touch docker/php/conf.d/error_reporting.ini
0
mkdir -p docker/php/conf.d
touch docker/php/conf.d/xdebug.ini
touch docker/php/conf.d/error_reporting.ini
1

Với các tệp ini được tạo và cập nhật

mkdir -p docker/php/conf.d
touch docker/php/conf.d/xdebug.ini
touch docker/php/conf.d/error_reporting.ini
8, để vùng chứa
mkdir -p docker/php/conf.d
touch docker/php/conf.d/xdebug.ini
touch docker/php/conf.d/error_reporting.ini
5 sử dụng chúng, hãy khởi động lại và xây dựng lại bằng cách chạy lệnh sau

mkdir -p docker/php/conf.d
touch docker/php/conf.d/xdebug.ini
touch docker/php/conf.d/error_reporting.ini
4
mkdir -p docker/php/conf.d
touch docker/php/conf.d/xdebug.ini
touch docker/php/conf.d/error_reporting.ini
5

Cờ

1
2
3
4
5
6
0 xây dựng hình ảnh trước khi bắt đầu vùng chứa. Việc sử dụng cờ này là cần thiết vì nếu không có nó, những thay đổi mà chúng tôi đã thực hiện trong
1
2
3
4
5
6
1 sẽ không có hiệu lực

Bây giờ, nếu chúng ta khởi động bộ chứa của mình và thực thi phương thức

mkdir -p docker/php/conf.d
touch docker/php/conf.d/xdebug.ini
touch docker/php/conf.d/error_reporting.ini
6 và tìm kiếm thuật ngữ Xdebug trên trang, chúng ta sẽ thấy rằng xdebug được cài đặt bên trong Bộ chứa PHP của chúng ta

mô-đun xdebug được cài đặt bên trong vùng chứa của chúng tôi

Hiện tại, bỏ qua vùng đánh dấu màu đỏ. Chúng tôi sẽ định cấu hình nó sau. Nhưng

mkdir -p docker/php/conf.d
touch docker/php/conf.d/xdebug.ini
touch docker/php/conf.d/error_reporting.ini
6 sẽ hiển thị phần xdebug trên trang

Cấu hình

Với Xdebug 3, bạn có thể bật/tắt các tính năng khác nhau. Nếu bạn chắc chắn rằng bạn muốn bật các tính năng cụ thể, bạn chỉ cần lấy cấu hình phù hợp và kết xuất cấu hình đó trong thư mục cấu hình. Bạn có thể tìm thấy thư mục từ bãi chứa

mkdir -p docker/php/conf.d
touch docker/php/conf.d/xdebug.ini
touch docker/php/conf.d/error_reporting.ini
6 của mình. Trong hình ảnh sau đây, hộp hình chữ nhật màu đỏ hiển thị đường dẫn nơi chúng ta nên đặt các cấu hình bổ sung

Hiển thị thư mục để đặt cấu hình bổ sung

Tuy nhiên, tôi đã nghĩ đến việc cấu hình nó theo cách mà tôi có thể bật hoặc tắt các tính năng khi khởi động bộ chứa. Vì vậy, tôi đã thay đổi Dockerfile của mình theo cách này. Ý chính sau đây cho thấy cách tôi định cấu hình Xdebug

Giải trình

Ở trên, có năm tệp ini.

mkdir -p docker/php/conf.d
touch docker/php/conf.d/xdebug.ini
touch docker/php/conf.d/error_reporting.ini
9 chứa cấu hình cơ bản.
mkdir -p docker/php/conf.d
touch docker/php/conf.d/xdebug.ini
touch docker/php/conf.d/error_reporting.ini
80 để tắt xdebug. Và các tệp ini còn lại dành cho các loại tính năng khác nhau

Tôi có tất cả các tệp ini của mình trong thư mục

mkdir -p docker/php/conf.d
touch docker/php/conf.d/xdebug.ini
touch docker/php/conf.d/error_reporting.ini
81. Và thư mục cũng chứa PHP's
mkdir -p docker/php/conf.d
touch docker/php/conf.d/xdebug.ini
touch docker/php/conf.d/error_reporting.ini
82

Đầu tiên, trong

mkdir -p docker/php/conf.d
touch docker/php/conf.d/xdebug.ini
touch docker/php/conf.d/error_reporting.ini
82 tôi đã sao chép tất cả các tệp cấu hình bên trong thư mục
mkdir -p docker/php/conf.d
touch docker/php/conf.d/xdebug.ini
touch docker/php/conf.d/error_reporting.ini
84 của vùng chứa

1
2
3
4
5
6
3

Vì tôi muốn bật/tắt các tính năng khi khởi động vùng chứa, tôi đã đặt một vài đối số để chúng có thể được chuyển trong quá trình xây dựng

1
2
3
4
5
6
4

Đối số

mkdir -p docker/php/conf.d
touch docker/php/conf.d/xdebug.ini
touch docker/php/conf.d/error_reporting.ini
85 xác định chế độ tôi muốn bật hoặc tắt.
mkdir -p docker/php/conf.d
touch docker/php/conf.d/xdebug.ini
touch docker/php/conf.d/error_reporting.ini
86 được đặt thành
mkdir -p docker/php/conf.d
touch docker/php/conf.d/xdebug.ini
touch docker/php/conf.d/error_reporting.ini
87 nếu tôi muốn bật gỡ lỗi theo bước.
mkdir -p docker/php/conf.d
touch docker/php/conf.d/xdebug.ini
touch docker/php/conf.d/error_reporting.ini
88 cũng dành cho cổng để gỡ lỗi theo bước.
mkdir -p docker/php/conf.d
touch docker/php/conf.d/xdebug.ini
touch docker/php/conf.d/error_reporting.ini
89 được đặt thành
1
2
3
4
5
6
30 theo mặc định và cũng dành cho bước gỡ lỗi. Sau này chúng ta sẽ xem cách tích hợp với PhpStorm để thực hiện bước gỡ lỗi

Tiếp theo, các đối số được đặt thành các biến môi trường để chúng có sẵn bên trong vùng chứa

Trong bước tiếp theo trên Dockerfile, chúng ta sẽ xác định và thiết lập điểm vào cho vùng chứa

zend_extension=xdebug

[xdebug]
xdebug.mode=develop,debug
xdebug.client_host=host.docker.internal
xdebug.start_with_request=yes
1

Tiếp theo, trong tệp điểm đầu vào

1
2
3
4
5
6
31, chúng tôi đang đẩy các tệp ini vào thư mục cấu hình dựa trên các chế độ chúng tôi đã đặt trong thời gian xây dựng

Và, cuối cùng trong tệp

1
2
3
4
5
6
32 của chúng tôi, [cũng xem qua các nhận xét]

zend_extension=xdebug

[xdebug]
xdebug.mode=develop,debug
xdebug.client_host=host.docker.internal
xdebug.start_with_request=yes
4

Trong docker-compose ở trên. yml, chúng tôi đã gắn

1
2
3
4
5
6
33 của máy chủ vào
1
2
3
4
5
6
33 của vùng chứa. Trong xdebug-default. ini, chúng tôi đã đặt thư mục đầu ra mặc định thành
1
2
3
4
5
6
33 bên trong vùng chứa. Vì các tệp sẽ phát triển theo thời gian, trong mỗi lần khởi động, nó sẽ dọn sạch thư mục
1
2
3
4
5
6
36. Đó là lý do tại sao chúng tôi đã gắn thư mục
1
2
3
4
5
6
36 của máy chủ. Đọc các bình luận của tệp
1
2
3
4
5
6
38.
mkdir -p docker/php/conf.d
touch docker/php/conf.d/xdebug.ini
touch docker/php/conf.d/error_reporting.ini
86 được đặt thành
mkdir -p docker/php/conf.d
touch docker/php/conf.d/xdebug.ini
touch docker/php/conf.d/error_reporting.ini
87 cho Linux. Bạn có thể sử dụng
1
2
3
4
5
6
41 trên máy Mac

Bây giờ, nếu bạn xây dựng và chạy vùng chứa, đồng thời thực thi_______56 từ tệp PHP của mình, thì bạn sẽ thấy rằng xdebug đã được cài đặt trong vùng chứa của bạn và các tính năng đã bật như bên dưới

xdebug được bật và các tính năng được bật

Tích hợp gỡ lỗi từng bước với PhpStorm

Mở tùy chọn PhpStorm của bạn. Và tìm kiếm thuật ngữ gỡ lỗi. Tiếp theo, trong Language & Frameworks > PHP > Debug, bạn sẽ tìm thấy cổng gỡ lỗi. 9000, 9003 trong phần Xdebug. 9003 này là cổng chúng tôi đã sử dụng trong đối số

1
2
3
4
5
6
43 trong Dockerfile và docker-compose của chúng tôi. tập tin yml

Tiếp theo, Chuyển đến Ngôn ngữ & Khung > PHP > Máy chủ, Nhấp vào nút dấu cộng, thêm tên cho máy chủ. Đặt máy chủ thành

1
2
3
4
5
6
44 và cổng thành
1
2
3
4
5
6
45. Trình gỡ lỗi được đặt thành Xdebug. Đánh dấu vào Sử dụng ánh xạ đường dẫn. Nó sẽ cho bạn thấy thư mục dự án. Nhấp vào bên phải bên dưới “Đường dẫn tuyệt đối trên máy chủ” và đặt thành
1
2
3
4
5
6
46. Thư mục
1
2
3
4
5
6
46 này là nơi các nguồn nằm trong máy chủ web. Nếu của bạn nằm trong một thư mục khác, hãy sử dụng đường dẫn đó tại đây. Tiếp theo, lưu cấu hình

Tiếp theo, từ thanh menu trên cùng, đi tới Chạy> Chỉnh sửa cấu hình và điều này sẽ hiển thị cửa sổ bật lên như bên dưới. Sau đó bấm vào dấu PLUS[+] ở góc trên cùng bên trái

Tìm kiếm thông qua và nhấp vào Gỡ lỗi từ xa PHP. Đặt tên. Đánh dấu vào “Filter debug connection by IDE Key”. Đặt máy chủ từ danh sách thả xuống thành máy chủ bạn đã đặt trong bước thiết lập máy chủ trước đó. Trong Khóa IDE, hãy đặt nó thành khóa bạn đã đặt trong Dockerfile hoặc docker-compose. tập tin yml. Trước đây chúng tôi đã đặt nó thành

1
2
3
4
5
6
30. Lưu nó và thoát khỏi cửa sổ bật lên

Tiếp theo, đặt điểm dừng. Trong dự án của tôi, đã đặt trong

1
2
3
4
5
6
49. Sau đó, vào menu Run > Debug. Nó sẽ hiển thị một cửa sổ bật lên. Nhấp vào tên bạn đã đặt cho Trình gỡ lỗi từ xa PHP.
1
2
3
4
5
6
30 là tên trong trường hợp của tôi trong hình ảnh sau

Nhấp vào trình gỡ lỗi sẽ hiển thị thanh công cụ như sau

Và bây giờ, nếu bạn tải lại trang từ trình duyệt, thì nó sẽ tạm dừng thực thi tại điểm ngắt

Tiếp theo, tùy thuộc vào cách bạn muốn gỡ lỗi mã của mình. Thuật ngữ bạn sẽ thấy

  • Bước vào — Vào bên trong hàm và kiểm tra xem nó hoạt động như thế nào
  • Bước qua — Đừng đi sâu vào chức năng, chỉ cần thực hiện chức năng
  • Bước ra ngoài — Thoát khỏi chức năng. Bạn có thể đã sử dụng bước vào, bây giờ hãy tiếp tục thực hiện thêm mà không cần gỡ lỗi từng dòng và quay lại trình gọi

Hy vọng điều này sẽ giúp thiết lập và định cấu hình Xdebug trong bộ chứa docker và tích hợp với PhpStorm

Chủ Đề