PhpStorm xdebug docker

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.

1
2
3
4
5
6
0 và
1
2
3
4
5
6
1;

Để 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

1
2
3
4
5
6
0, hãy 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

1
2
3
4
5
6
1, 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

Để loại bỏ những chi phí này, các chuyên gia phần mềm không bao giờ nên bỏ qua việc kiểm tra và sửa lỗi. Trong và sau quá trình sản xuất, họ có thể chạy bộ thử nghiệm tự động để đảm bảo rằng sản phẩm của họ không có lỗi và hoạt động như mong đợi

Tương tự như vậy, trong Dockers, bạn phải chạy các lệnh để tạo và quản lý vùng chứa cũng như chạy một ứng dụng phức tạp để kiểm tra và thực hiện quy trình gỡ lỗi.  

Nhưng như đã nói, con đường nào cũng có vũng lầy; . Các ứng dụng gỡ lỗi trước đó từ IDE của bạn rất đơn giản trong môi trường phát triển cục bộ điển hình. Nhưng hiện tại, Xdebug yêu cầu một số cơ chế cấu hình bổ sung

Để giúp bạn, blog này sẽ hướng dẫn bạn từng bước về quá trình cài đặt và cấu hình của Xdebug trong PHPStorm với một .

Điều kiện tiên quyết-

  • Nó đã được thử nghiệm trên Ubuntu 18. 04 máy chạy PHPStorm 2018. 1. 4 và các phiên bản mới nhất của Docker và Docker Compose. Vài thứ có thể hoạt động hơi khác một chút trong các hệ điều hành khác
  • Có hiểu biết cơ bản về Docker, PHP và XDebug
  • Bạn có thể sao chép kho lưu trữ repository này làm cơ sở để làm theo hướng dẫn này vì nó chứa ứng dụng Symfony Flex cơ bản với tất cả nội dung Docker được giải thích trong .

Bước 1 - Dockerize ứng dụng

Cài đặt Xdebug trên bộ chứa Docker của bạn. Cách để làm điều này sẽ phụ thuộc vào hình ảnh cơ sở của bạn. Tôi luôn sử dụng hình ảnh dựa trên núi cao. Tham khảo   Dockerfile này để biết cách bạn có thể cập bến ứng dụng Symfony, như được bao gồm trong kho lưu trữ demo.

Đây là đoạn trích có liên quan của Dockerfile cài đặt Xdebug-

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

Tôi không muốn có một Dockerfile riêng để phát triển và sản xuất, vì vậy tôi đã xác định một đối số bản dựng sẽ cho biết có nên cài đặt Xdebug hay không

Tiếp theo, trên tệp Docker-compose của tôi, tôi có định nghĩa sau cho ứng dụng của mình-

 

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

Tìm hiểu thêm về tệp docker-compose hoàn chỉnh.

Phần thiết yếu là hướng dẫn "env_file" yêu cầu Compose tải các biến môi trường từ một ". tập tin env". Đó là cách tiêu chuẩn cho các ứng dụng Symfony 4

Chúng tôi sẽ sử dụng tệp đó để thêm một số biến môi trường cần thiết cho Xdebug. Nếu thích, bạn cũng có thể thêm trực tiếp vào tệp soạn thảo docker bằng phần "môi trường"

Biến môi trường

Chúng tôi sẽ xác định các biến môi trường sau-

  • PHP_IDE_CONFIG - Biến này xác định cấu hình máy chủ được liên kết với ứng dụng. Thêm về điều này sau
  • XDEBUG_CONFIG - Biến này xác định một vài cấu hình Xdebug. "Máy chủ từ xa" là IP riêng của máy chủ của bạn (máy mà PHPStorm của bạn đang chạy). "remote_port" là cổng mà PHPStorm sẽ lắng nghe các kết nối Xdebug đến. Hai cài đặt này cho phép PHPStorm và Xdebug giao tiếp hiệu quả.  

Lưu ý- Bắt buộc phải bật hai cài đặt này để hỗ trợ hoạt động.

Chúng tôi sẽ thêm chúng vào ". env" như thế này-

PHP_IDE_CONFIG=serverName=symfony-demo XDEBUG_CONFIG=remote_host=192. 168. 1. 102 remote_port=9001

 

Và đó là về mã

Tiếp theo, hãy đi sâu vào cấu hình PHPStorm

Bước 2 - Cấu hình PHPStorm

Điều đầu tiên bạn nên làm là kiểm tra cài đặt Gỡ lỗi của mình. Trong PHPStorm, đi tới Tệp -> Cài đặt -> Ngôn ngữ và Khung -> PHP > Gỡ lỗi

Đảm bảo rằng bạn có cùng một cổng mà bạn đã định cấu hình trước đó trong biến môi trường "XDEBUG_CONFIG"

 

PhpStorm xdebug docker

 

Tiếp theo, chúng ta cần cấu hình một máy chủ. Đó là cách PHPStorm sẽ ánh xạ đường dẫn tệp trong hệ thống cục bộ của bạn tới đường dẫn trong vùng chứa của bạn

Chuyển đến Tệp -> Cài đặt -> Ngôn ngữ và Khung -> PHP -> Máy chủ

 

PhpStorm xdebug docker

 

  1. Đặt tên cho máy chủ của bạn. Nó phải khớp với giá trị bạn đã xác định trong biến môi trường "PHP_IDE_CONFIG" của mình. Chúng tôi sẽ gọi nó là "Symfony-demo. "
  2. "Máy chủ" và "cổng" sẽ cho phép bạn truy cập vào ứng dụng. Trong trường hợp của tôi, đó là máy chủ cục bộ. 8888
  3. Và sau đó là "Ánh xạ đường dẫn. "
  4. Trong phần "Tệp dự án", bạn phải ánh xạ đường dẫn gốc của ứng dụng tới đường dẫn bên trong vùng chứa. Trong trường hợp của tôi, đó là "/var/www/app"
  5. Nhấp vào "Áp dụng" để lưu cấu hình của bạn
  6. Phần cuối cùng là cấu hình trình gỡ lỗi từ xa cho dự án của bạn
  7. Ở trên cùng bên phải, nhấp vào "chỉnh sửa cấu hình"

 

PhpStorm xdebug docker

 

   8. Nhấp vào dấu "cộng" màu xanh lục ở trên cùng bên trái và chọn "Gỡ lỗi từ xa PHP" từ danh sách.

       Bây giờ hãy định cấu hình nó như thế này.

 

PhpStorm xdebug docker

 

Đảm bảo rằng bạn liên kết nó với định nghĩa "máy chủ" đã tạo trước đó. Sử dụng "PHPSTORM" làm khóa IDE để định cấu hình phù hợp.  

Khi nó được thiết lập, chúng ta có thể chuyển sang thử nghiệm

Bước 3 - Kiểm tra

 

  • Mở "src/Bộ điều khiển/HelloController. php" và đặt một điểm ngắt trong phương thức "hello"
  • Bắt đầu bộ chứa Docker của bạn với docker-compose up
  • Sau đó nhấp vào biểu tượng "Bắt đầu nghe các kết nối Gỡ lỗi PHP" ở góc trên cùng bên phải của PHPStorm

 

PhpStorm xdebug docker

  • Mở - http. //máy chủ cục bộ. 8888?XDEBUG_SESSION_START=PHPSTORM

Nếu bạn đã làm theo các bước một cách cẩn thận, bạn sẽ thấy quá trình thực thi dừng tại điểm dừng của bạn

 

PhpStorm xdebug docker

Và đó là nó. Bạn hiện có một môi trường phát triển được định cấu hình đầy đủ với Docker và Xdebug được tích hợp với PHPStorm IDE

Làm cách nào để bật Xdebug trong Docker?

Để bật Xdebug cho môi trường Docker của bạn, tạo tệp cấu hình Docker Compose ở chế độ nhà phát triển với tùy chọn --with-xdebug và bất kỳ tùy chọn bắt buộc nào khác, for example. This command adds the Xdebug configuration to your docker-compose. yml file.

Làm cách nào để sử dụng Xdebug với PhpStorm?

Định cấu hình Xdebug để sử dụng ở chế độ Theo yêu cầu .
Vô hiệu hóa Xdebug cho tập lệnh dòng lệnh. Trong hộp thoại Cài đặt/Tùy chọn ( Ctrl+Alt+S ), đi tới PHP. .
Để cho phép PhpStorm kích hoạt Xdebug khi cần thiết, hãy chỉ định đường dẫn đến nó trong trường tiện ích Trình gỡ lỗi, trong khu vực Bổ sung