xdebug는 가파른 설정 학습 곡선을 가진 역사를 가지고 있습니다. Xdebug를 설정하는 것이 고통 스러울 필요는 없다는 것을 보여 드리겠습니다. 사실, 나는 당신이 약 1 분 안에 Docker와 함께 Xdebug를 사용할 수 있다고 확신합니다.
알았어, 아마도 몇 분이 걸릴 것입니다 :)
우리는 글을 쓰는 시점의 최신 안정 버전 인 Laravel, PHP 8.4 및 Xdebug v3.4.0으로 설정을 시연 할 것입니다.
도커 이미지로 Xdebug를 구하는 데 필요한 요점에는 다음이 포함됩니다.
xdebug 모듈 및 구성 a 파일
지원 편집기 또는 IDE XDEBUG 클라이언트 로 사용할 수 있습니다.
#project 설정
이 게시물에서는 Apache를 사용하여 서버 설정을 단순화 할 것입니다. 그러나 Dockerfile 코드는 PHP-FPM 이미지에서 Xdebug를 구성하는 것과 동일합니다.
우리는 당신이 따라 가고 싶다면 데모 프로젝트를 설정하는 것으로 시작합니다 :
.
우리는 명령 줄을 통해 설정을 위해 폴더와 파일을 만들었지 만 원하는대로 자유롭게 만들 수 있습니다. 일반적인 Docker 파일 외에도 응용 프로그램에 대한 웹 루트 경로를 구성하기 위해
파일을 만들었습니다.
#docker 이미지 설정
다음, 다음을 파일에 추가하십시오 :
dockerfile에는 줄이 꽤 많으므로 XDEBUG를 구성하는 방법을 파악하는 데 도움이되는 가장 중요한 코드를 살펴 보겠습니다. 먼저, 다단계 빌드를 사용하여 개발 환경에서 xdebug를 구성 할 수 있습니다. 단계는 환경에서 원하는 php 확장과 같은 이미지 요구 사항과 아파치 구성과 같은 기본 설정을 갖는 스테이지가 있기 전에.
다음 - 단계는 php.ini 파일의 개발 버전을 복사하고 xdebug에 사용자 정의를 보유 할
compose.yaml
구성을 복사합니다. 우리는 PHP 8.4를 지원하는 를 사용하고 글을 쓰는 시점의 최신 안정입니다.
마지막으로, 우리는
스테이지를 가지고 있으며, 이는 응용 프로그램 이미지가 프로덕션 빌드에서 사용할 것입니다. 대상 사용 xdebug 구성을 생략하고 php.ini 파일의 프로덕션 버전을 사용합니다.
#Apache vhost
우리는 Apache를 구성하는 방법을 배우기 위해 여기에 있지 않으며, Docker에서 Xdebug를 설정하는 것이 얼마나 쉬운 지 신속하게 입증하기 위해이를 사용하고 싶습니다. 다음 코드를 - 파일에 추가하여 Docker 이미지에 복사되어 응용 프로그램 코드를 가리 킵니다.
#xdebug configuration
다음으로 우리는 생성 한
파일을 통해 xdebug를 구성해야합니다. 이 파일에 다음을 팔로우하는 경우 다음을 추가하십시오.<!-- Syntax highlighted by torchlight.dev -->laravel new xdebug-demo --git --no-interaction
cd xdebug-demo
mkdir -p build/php/conf.d build/apache
touch compose.yaml \
build/Dockerfile \
build/php/conf.d/xdebug.ini \
build/apache/vhost.conf
로그인 후 복사
클라이언트 호스트를 정의하려면 사용자 정의가 필요합니다. Docker Network를 사용하고 있기 때문에 Xdebug는 호스트 컴퓨터와 통신하는 방법을 알아야합니다. Docker Desktop을 사용하는 경우 Docker는 호스트 컴퓨터를 가리키는 호스트가 있습니다.
그렇지 않은 경우 컴퓨터의 로컬 네트워크 IP를 찾아 사용해야합니다. 우리는 환경 변수 로이 값을 전제로 할 수 있지만 향후 게시물을 위해 저장하겠습니다. host.docker.internal
마지막으로
를 사용하여 모든 요청마다 항상 xdebug를 시작합니다. XDEBUG를 사용하고 싶지 않을 때 편집기 UI를 사용하여 XDEBUG를 비활성화 할 수 있지만 항상 연결을 설정하려고 시도합니다.
#이미지 xdebug 연결을 확인하기 전에 응용 프로그램 컨테이너를 구성해야합니다. 우리는 Docker Compose를 사용하여 다음을 에 추가하여 Docker로 응용 프로그램을 실행합니다.
우리의 서비스는 빌드의 단계를 대상으로하고, 볼륨을 마운트하여 이미지를 재건하지 않고 코드를 변경하고 포트 xdebug.start_with_request = yes
를 사용하여 로컬로 응용 프로그램을 제공합니다.
우리는 이제 docker compose를 사용하여 이미지를 만들고 시작할 수 있습니다 :
이전 명령은 이미지를 만들고 컨테이너를 시작하여 백그라운드에서 실행합니다. 이 시점에서 Xdebug는 연결을받을 준비가되었지만 IDE에서 작동하기 위해 한 가지 조정해야합니다. .
우리는 phpstorm을 사용하지만 xdebug를 지원하는 편집기를 사용할 수 있습니다. Docker를 사용하고 있으므로 Docker 볼륨을 로컬 프로젝트 코드에 매핑하는 PhpStorm에서 서버를 구성해야합니다. 설정을 열어서 그렇게 할 수 있습니다. & gt; PHP & GT; 서버 및
의 매핑으로 로컬 호스트 서버를 구성합니다.
compose.yaml
LocalHost 서버가없는 경우 Port 디버거를 선택할 수 있습니다. 서버 매핑을 통해 IDE는 서버 스택 추적을 프로젝트의 파일에 매핑하는 방법을 이해할 수 있습니다.
다음으로, 우리는 오른쪽 상단 메뉴 근처의 버그 아이콘을 사용하여 Xdebug를 활성화 할 준비가되어 있습니다. "PHP 디버그 연결을 듣기 시작하십시오"라는 말 : .
<!-- Syntax highlighted by torchlight.dev -->FROM php:8.4-apache as base
LABEL maintainer="Paul Redmond"
RUN docker-php-ext-install pdo_mysql opcache && \
a2enmod rewrite negotiation
COPY build/apache/vhost.conf /etc/apache2/sites-available/000-default.conf
FROM base as development
RUN cp $PHP_INI_DIR/php.ini-development $PHP_INI_DIR/php.ini
COPY build/php/conf.d/xdebug.ini $PHP_INI_DIR/conf.d/xdebug.ini
RUN pecl channel-update pecl.php.net && \
pecl install xdebug-3.4.0 && \
docker-php-ext-enable xdebug
FROM base as app
RUN cp $PHP_INI_DIR/php.ini-production $PHP_INI_DIR/php.ini
COPY . /srv/app
로그인 후 복사
클릭하면 아이콘이 녹색으로 바뀌는 것을 볼 수 있습니다. app
마지막으로해야 할 일은 중단 점을 설정하는 것입니다. development
파일을 열고 홈페이지 경로의 유일한 줄에서 중단 점을 설정하십시오.
8080
웹 브라우저 (LocalHost : 8080)에서 프로젝트를 열면 PHPStorm이 처음 연결하라는 메시지가 표시됩니다. 그런 다음 설정 한 중단 점에서 자동으로 일시 중지됩니다. 디버깅이 완료되면 버그 아이콘을 클릭하여 XDEBUG 연결을 비활성화 할 수 있습니다.
#Learn More
이 튜토리얼의 2 부에서 계속하십시오 : PHP INI 환경 변수가있는 Flexible Docker Images.
이제 프로젝트와 함께 XDEBUG를 사용할 수 있어야합니다! 또한 다단계 이미지를 사용하여 개발 도구를 설정하고 프로덕션 설정을위한 별도의 단계를 보여주었습니다. 멀티 단계 빌드를 사용하면 이미지가 다른 수준의 굽힘 성으로 가져갈 수 있습니다.
XDEBUG 설정의 편집기 부분에 갇히면 PHPStorm은 XDEBUG를 구성하는 방법에 대한 광범위한 문서를 가지고 있습니다. Xdebug의 문서는 설정, 도구, 구성 옵션 등에 대한 문서를 포함하여 또 다른 훌륭한 참조입니다.
위 내용은 1 분 안에 Docker 및 PHP 8.4와 함께 Xdebug를 받으십시오.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!