Thiết lập xdebug docker phpstorm

Là một lập trình viên, gỡ lỗi là một công việc không thể thiếu trong quá trình xây dựng và phát triển sản phẩm. Hôm nay mình xin trình bày với các bạn cách debug các dự án sử dụng PHP và IDE PHPSTORM. Với Sublime text các bạn có thể tham khảo thêm tại đây

Làm dev thì ai cũng quen với việc debug. Chỉ cần

brew install php71-xdebug
7 là ta có thể biết biến đó chứa dữ liệu gì, chạy đến đây có sai không. Nhưng sẽ thật kinh khủng khi phải lần mò
brew install php71-xdebug
7 rồi chạy lại mã hết chỗ này đến chỗ kia. Lúc này IDE mới chứng tỏ sự khác biệt với những trình soạn thảo này. Hãy quên đi
brew install php71-xdebug
7,
sudo apt-get install php-xdebug
0,
sudo apt-get install php-xdebug
0, với IDE bạn chỉ cần nhấp chọn vị trí cần gỡ lỗi, sau đó yêu cầu. cao bồi. toàn bộ nội dung cần gỡ lỗi ở từng phần, từng chức năng sẽ hiển thị cho bạn. Bài viết này sử dụng PHPStorm để gỡ lỗi

Cài đặt Xdebug

hệ điều hành Mac

brew install php71-xdebug

Ubuntu

sudo apt-get install php-xdebug

Sau đó khởi động lại máy chủ

cấu hình php. ban đầu

Thêm vào tập tin php. ban đầu

[Xdebug]
zend_extension_ts=/usr/local/opt/php71-xdebug/xdebug.so
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"

Đường dẫn

sudo apt-get install php-xdebug
1 tùy theo nơi đặt xdebug của bạn

Cấu hình PHPStorm

Chọn Chạy > Chỉnh sửa cấu hình. Bấm vào nút

sudo apt-get install php-xdebug
2 để thêm cấu hình mới. Ở đây lấy ví dụ là PHP Web Application

Thiết lập xdebug docker phpstorm

Bấm vào nút
sudo apt-get install php-xdebug
3 ở phần Máy chủ để cấu hình máy chủ

Nhấp vào nút
sudo apt-get install php-xdebug
2 trong hộp thoại Máy chủ. Add information about server. Nhấp vào OK

Khi đó ta đã cấu hình xong phần máy chủ để gỡ lỗi. Nhấp vào OK

Nếu máy chủ bạn chạy https, cần chỉnh sửa phần URL bắt đầu đã sửa

Giờ đến phần thú vị nhất, thực hiện gỡ lỗi. Chọn Chạy > Gỡ lỗi [tên_máy chủ]

Một tab duyệt web sẽ hiển thị thông báo bắt đầu phiên gỡ lỗi. Không cần quan tâm, bạn cứ tắt tab đó đi. Bấm vào nút gỡ lỗi nghe, để nó chuyển sang trạng thái lắng nghe (màu xanh lá)

Bây giờ nó sẽ lắng nghe và ngắt ở bất kỳ vị trí nào của phần mã mà chúng ta chọn làm điểm ngắt (nhấp vào khoảng trống bên cạnh số dòng)

Thực hiện yêu cầu để bắt gỡ lỗi

Sử dụng nút hàng điều hướng để xem kỹ từng bước chạy của php. Xem thêm. https. //www. phản lực. com/help/phpstorm/debug-tool-window. html#steptoolbar

Khi không cần gỡ lỗi, hãy nhấp vào nút nghe gỡ lỗi lần nữa để tắt gỡ lỗi (màu đỏ)

Gỡ lỗi với Postman

With postman ta hoàn toàn có thể gỡ lỗi giống như trên web, chỉ cần thêm vào url mà bạn muốn kiểm tra tham số

sudo apt-get install php-xdebug
5

Thưởng. Debug with queue of Laravel

Ở trên chúng ta đã biết cách gỡ lỗi với web, giờ là phần nói về gỡ lỗi với hàng đợi của Laravel. Chọn Chạy > Chỉnh sửa cấu hình. Bấm vào nút

sudo apt-get install php-xdebug
2 để thêm cấu hình mới. Chọn Gỡ lỗi từ xa PHP

Chọn máy chủ, đặt tên khóa ide. Nhấp vào OK

Chọn Chạy > Gỡ lỗi [tên_máy chủ]

Run command
sudo apt-get install php-xdebug
7 in terminal with
sudo apt-get install php-xdebug
8 is ide key was set on. Tiếp theo thì bật debug listening, click break point, run
sudo apt-get install php-xdebug
9

Đã đăng ký Bản quyền

Biên dịch. Trần Thanh Dân

Docker đã làm thay đổi đáng kể cách chúng ta phát triển các ứng dụng. Docker thực sự dễ dàng để bắt bất kỳ trình lập trình viên nào có thể chạy các ứng dụng phức tạp chỉ với 1 dòng lệnh mà không cần phải lắng nghe về các thông tin chi tiết khác. Những lợi ích này rất tiện lợi khi sử dụng làm việc cùng nhóm hoặc bối cảnh doanh nghiệp

Tôi vẫn nhớ phải mất đến 3 ngày đầu tiên khi tham gia vào công ty hiện tại để cấu hình dự án  và tất cả các thư viện, công cụ liên quan khác. Docker có thể giúp công việc này dễ dàng hơn, nhanh hơn và có tính nhất quán

Việc duy trì các công cụ của Docker khá phức tạp, bên ngoài một số thứ có thể sẽ dễ dàng hơn khi chạy ứng dụng trong môi trường phát triển ứng dụng bình thường như gỡ lỗi ứng dụng của bạn từ trình soạn thảo (IDE). Khi sử dụng docker thì cần một số cấu hình bổ sung. Và trong trường hợp này là Xdebug, đây không phải là một nhiệm vụ dễ dàng

Tôi không tìm thấy bất kỳ hướng dẫn nào từ lúc bắt đầu cho đến khi kết thúc. Đó là lý do tại sao tôi viết bài này. Nó sẽ hướng dẫn bạn từng bước thông qua quá trình cài đặt và cấu hình Xdebug bằng PHPStorm với một ứng dụng Dockerized Symfony 4

Chuẩn bị

  • Chúng ta sẽ thực hiện nó trên máy tính Ubuntu 18. 04, PHPStorm 2018. 1. 4 và các phiên bản mới nhất của Docker, Docker Compose (Hướng dẫn này có thể sai khi thực hiện trên các hệ điều hành khác)
  • Bạn cần có kiến ​​thức 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ở để theo dõi hướng dẫn vì nó chứa một ứng dụng Symfony Flex cơ bản với tất cả các công cụ Docker được giải thích trong bài viết này

Cấu hình ứng dụng Dockerize

Tất nhiên, để có thể sử dụng Xdebug, bạn phải cài đặt nó trên Docker container của bạn

Cách để làm điều này, sẽ phụ thuộc vào hình ảnh cơ bản của bạn. Tôi luôn sử dụng hình ảnh dựa trên núi cao. Tôi sẽ không nói chi tiết về cách Dockerize một ứng dụng Symfony. Bạn có thể làm tương tự với Dockerfile đã có trong kho lưu trữ demo

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

brew install php71-xdebug
3

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

Sau đó, 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

brew install php71-xdebug
4

Xem toàn bộ tập tin docker-compose

Quan trọng là lệnh “env_file”, thông báo cho Compose tải các biến môi trường từ một tệp “. env”, là tiêu chuẩn cho các ứng dụng Symfony 4

Chúng tôi sẽ sử dụng tập tin đó để bổ sung 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 docker-compose bằng cách sử dụng phần “môi trường”

Các biến môi trường

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

  • PHP_IDE_CONFIG – Biến này định nghĩa cấu hình máy chủ được liên kết với ứng dụng. Chi tiết sẽ được giải thích sau
  • XDEBUG_CONFIG – Phiên bản này cho phép xác định một số cấu hình Xdebug. “Remote host” là ip máy chủ riêng của bạn (một trong những PHPStorm bạn đang chạy). “Remote_port” là cổng 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. Nó sẽ không làm việc mà không có điều này

Chúng ta sẽ thêm chúng vào tệp “. env” của chúng ta như sau

brew install php71-xdebug
5

Các 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 bạn. Trong PHPStorm, vào File -> Settings -> Languages ​​and Frameworks -> PHP> Debug

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

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

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

Đặ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 “PHP_IDE_CONFIG” của bạn. Chúng tôi sẽ gọi nó là “symfony-demo”

“Host” và “port” là cách truy cập ứng dụng của bạn. Trong trường hợp của tôi là localhost. 8888

Và sau đó là “Ánh xạ đường dẫn”

Trong phần “Tệp dự án”, bạn phải ánh xạ đường dẫn gốc của ứng dụng của bạn 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”

lướt vào “Áp dụng” để lưu cấu hình của bạn

Phần cuối cùng là cấu hình trình gỡ lỗi từ xa của dự án của bạn

Ở trên cùng bên phải, nhấp vào “chỉnh sửa cấu hình”

Lật vào ký hiệu “dấu cộng” màu xanh ở phía trên cùng bên trái và chọn “PHP Remote Debug” từ danh sách

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

Bảo đảm bạn liên kết nó với “máy chủ” đã tạo trước đó. Sử dụng “PHPSTORM” làm idekey

IDE của bạn bây giờ sẽ được cấu hình đúng

kiểm tra

  • Open “src/Controllers/ HelloController. php” and set breakpoint in method “hello”
  • Start Docker container of you with

[Xdebug]
zend_extension_ts=/usr/local/opt/php71-xdebug/xdebug.so
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"
0

  • 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

  • Open http. //máy chủ cục bộ. 8888?XDEBUG_SESSION_START=PHPSTORMNếu thực hiện đúng, bạn sẽ thấy điểm dừng thực hiện tại điểm dừng của bạn

Bây giờ bạn đã có một môi trường phát triển được cấu hình đầy đủ với Docker và Xdebug được tích hợp với IDE PHPStorm