2017-10-28 11 views
0

내 현재 설정에는 기본적으로 CLI 도구 인 Symfony 3 프로젝트를 가져온 PhpStorm IDE가 관련되어 있습니다. 호스트 컴퓨터에는 PHP가 설치되어 있지 않아 PHP와 Xdebug가 설치된 Docker 컨테이너에서 응용 프로그램을 실행하고 있습니다.Docker 컨테이너에 PhpStorm이있는 Symfony CLI 응용 프로그램

Docker 컨테이너에서 웹 응용 프로그램을 디버깅하는 데 문제가 없지만 Symfony와이 CLI 도구를 사용하면 조금 더 까다로운 것으로 보입니다.

제 질문은 이것을 올바르게 설정하고 PhpStorm에서 디버깅하는 방법입니까? 새로운 디버그 구성 (PHP 원격 디버그)을 만들려고했지만 중단 점은 trigged되지 않습니다.

+0

CLI 도구라고 말하면 왜 "PHP Remote Debug"구성을 만들려고합니까? PHP 원격 통역사를 만들고 CLI 스크립트를 실행/디버깅하기위한 "PHP 스크립트"유형의 구성을 사용해야합니다 (IDE가 해당 Docker 컨테이너에서이를 실행합니다). – LazyOne

+0

제대로 디버거를 트리거 할 수 있었지만 이제는 시간대와 관련된 문제가 발생합니다. PHP 치명적인 오류입니다. '예외'메시지와 함께 '예외'예외가 발생했습니다. 시스템의 시간대 설정에 의존하는 것이 안전하지 않습니다. date.timezone 또는 date_default_timezone_set() 함수를 사용하려면 * 필수 항목입니다. 어떤 방법을 사용 했는데도 여전히이 경고 메시지가 나타나면 시간대 식별자의 철자가 틀릴 가능성이 가장 높습니다. '나는 PHP에서 1000 %를 확인할 수 있습니다.ini는 시간대가 올바르게 설정되어 있고 php -i는 시간대가로드되어 있음을 보여줍니다. – tslid

+0

좋아요. timezone을 -d 옵션 (phpstorm 인터프리터 옵션으로 설정)으로 전달하여 해결했지만 php.ini에이 설정이 포함되어 있어도 여전히 이상합니다. 그것은 완전히 무시되는 것 같습니다. – tslid

답변

0

은 다음 링크로 언급 한 지침에 따랐다 Suppossing :

또는 유사한 질문

그런 다음 theese 단계를 수행 할 필요가

:

1 단계 : 실행을 통해 컨테이너에 가져 오기 쉘 액세스 :

docker exec -ti ^container_id^ /bin/sh 

또는 경우 데비안/우분투 기반의 하나를 실행 (또는 수동 bash 설치) :

docker exec -ti ^container_id^ /bin/bash 

^container_id^ 찾을 수 docker ps 명령을 통해 그것은 테이블의 첫 번째 열입니다. 명령을 결과 less -S에 단지 파이프 INT 작은 창에서 실행중인 경우 :

docker ps | less -S 

그런 다음 다음과 같은 환경적인 변수를 내보내기 :

export PHP_IDE_CONFIG="serverName=0.0.0.0:5092" 
export XDEBUG_CONFIG="idekey=PHPSTORM" 

이 설정에 마음에 Servers 섹션 등으로 지정된 정확한 값을 보관하십시오 당신은 이미지를 참조하십시오

Phpstorm settings

이 순서대로 중요하지 않음 this 질문에 명시된 문제가 발생합니다.

그런 다음 symfony 응용 프로그램을 실행할 때처럼 phpstorm에 디버거 listentin을 설정하고 cli를 생성하십시오.