2016-11-09 4 views
0

PHP 프로젝트 C:\project1이 PhpStorm에서 열리고 다른 PHP 프로젝트의 PHP 코드 인 C:\project2이 PhpStorm의 다른 인스턴스에서 실행됩니다. 이런 식으로 뭔가 : 나는 project1에서 디버깅을 시작할 때PhpStorm + Xdebug : 중첩 된 CLI 호출을 디버그하는 방법

// in project1: 
exec('php ../project2/script.php'); 

이 중단 점 잘 칠 수 있습니다. project2/script.php의 코드가 실행될 때 다른 PhpStorm의 중단 점이 충돌 할 수 있도록 다른 프로젝트를 설정하려고합니다.

function runCommand($cmd) { 

    $env = $_SERVER;  

    if (isset($_SERVER["XDEBUG_CONFIG"])) { 
     $env['XDEBUG_CONFIG'] = 'idekey=project2 remote_host=127.0.0.1 remote_port=9001'; 
    } 

    $process = new Symfony\Process($cmd, null, $env); 
    $process->run(); 
} 

하지만 기쁨, 프로젝트 2에서 중단 점 적중되지 않습니다


지금까지,이 같은 프로젝트 1에서 함수를 작성했습니다.

답변

1

정확하게 OP에서 설명한대로 작동합니다. 중첩 된 프로세스에서 PhpStorm이 원격 디버깅을 자동으로 구성하지 않으므로 php.ini에서 수동으로 xdebug.remote_enable을 설정해야한다는 사실을 잊어 버렸습니다.