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.ini2 và
mkdir -p docker/php/conf.d touch docker/php/conf.d/xdebug.ini touch docker/php/conf.d/error_reporting.ini3;
Để 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 Xdebug1
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ướcclient_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 raSau đó, 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
7mkdir -p docker/php/conf.d
touch docker/php/conf.d/xdebug.ini
touch docker/php/conf.d/error_reporting.ini
0mkdir -p docker/php/conf.d
touch docker/php/conf.d/xdebug.ini
touch docker/php/conf.d/error_reporting.ini
1Vớ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 saumkdir -p docker/php/conf.d
touch docker/php/conf.d/xdebug.ini
touch docker/php/conf.d/error_reporting.ini
4mkdir -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ôiHiệ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 trangCấ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ổ sungTuy 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 nhauTô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ứa1
2
3
4
5
6
3Vì 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
1Tiế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ựngVà, 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
4Trong 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 MacBâ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ậtTí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