Docker에서 실행중인 php7.1을 PhpStorm에서 단계 실행

개발 환경을 Docker로 구축하는 것이 많아지고 있다고 생각합니다만, 그것을 디버그 하는 사례로 새로운 눈의 녀석이 눈에 띄지 않았기 때문에 공유입니다.

Ubuntu17.04에서 확인했지만 Mac + Docker for Mac에서도 Windows + Docker for Windows에서도 작동합니다. . 입니다.
움직이지 않으면 댓글을 달아주세요!

기타 주요 도구 버전
Docker version 17.09.0-ce
PHP 7.1.10
PhpStorm 2017.2.4

Docker로 php7.1 이동



깊이 생각하지 않고 공식 이미지 apache-7.1 태그를 사용합니다.
xdebug가 설치되어 있지 않으므로 그냥 추가합니다.

Dockerfile
FROM  php:7.1-apache
RUN pecl install xdebug

php.ini에 xdebug를 사용하기위한 최소한의 설정을 씁니다.

php.ini
zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so
xdebug.idekey = "PHPSTORM"
xdebug.remote_autostart= 1
xdebug.remote_connect_back = 1
xdebug.remote_enable = 1


php:7.1-apache는 php.ini 들어 있지 않습니다. .
아니 깜짝.
정말 최소한의 설정만 하고 있습니다. 실제로 많은 설정을 작성해야 할 것입니다. .

나중에 단계 실행 동작을 확인하기 위해 index.php스텝 실행하고 있는지 확인하고 싶기 때문에 간단하게 변수나 루프를 사용해 보겠습니다.

index.php
<?php

$str = "";

for ($i = 0; $i < 10; $i++) {
    $str .= "+";
    echo $str . "<br/>";
}

phpinfo();

최소한의 설정을 가진 docker-compose.yml

docker-compose.yml
version: "3"
services:
  apache-php71:
    build: .
    ports:
      - "80:80"
    volumes:
      - "./:/var/www/html"

현재 디렉토리를 DocumentRoot로 설정합니다.

지금까지 생성한 파일은 현재 디렉토리에 모두 둡니다.php.ini 가 DocumentRoot 아래에 있거나 무서운 구성입니다만, 이것으로 apache가 읽어 주기 때문에. 우선 테스트를 위해서입니다. 다시 말하지만 실제 환경에서는 (ry

플랫 디렉토리 구성
--+- カレントディレクトリ
  + docker-compose.yml
  + Dockerfile
  + index.php
  + php.ini

준비가되면 재밌게 시작
docker-compose up

시작하면 http://localhost 에 액세스하여 phpinfo가 표시되면 성공합니다.



xdebug가 활성화되어 있는지 확인



PhpStorm에서 연결


  • PhpStorm에서 index.php가있는 디렉토리를 엽니 다.
  • File > Setting에서 Setting 대화 상자 열기
  • Setting 대화 상자에서 Languages ​​& Frameworks > PHP를 선택
  • Debug > DBGp Proxy에 값을 설정


  • IDE key:PHPSTORM
    Host:localhost
    Post:9000
    
  • 서버에 값 설정


  • Name:なんでも
    Host:localhost
    Post:80
    Debuggger:Xdebug
    Use path mappings にチェック
    カレントディレクトリを /var/www/htmlにマッピング
    

    이번에는 PHP가 1 파일 밖에 없기 때문에 매핑은 하나뿐입니다만, 실제 프로젝트에서는 디렉토리마다 매핑이 ​​필요하게 될 것입니다.

    이상으로 준비 완료.

    단계 실행


  • PhpStorm 메뉴 > Run > Start Listening for PHP Debug Connections 선택


  • index.php에 중단점을 설정.


  • 브라우저에서 http://localhost 다시로드
  • 브레이크 포인트의 장소에서 멈췄다!



  • 변수의 내용이 둥근 모양입니다. 좋아요.
    F8에서 스텝 아웃, F7에서 스텝 인, F9에서 리줌입니다.

    넷에서는 호스트 OS측의 IP 주소의 취급이 어려운 예가 많이 있었습니다만, 특히 문제 없었습니다.
    PhpStorm이 최선을 다하고 있습니까?
    어쨌든 생각했던 것보다 쉽게 ​​준비 할 수있었습니다.

    그건 그렇고,이 테스트 코드는 아래에 있습니다. clone 하면 그대로 동작할 것.
    htps : // 기주 b. 코 m / 후루 8 마 / 도 c 케 r_php71_x

    그럼 좋은 디백 라이프를!

    좋은 웹페이지 즐겨찾기