2017-12-04 19 views
1

설정;PHP에서 VS 코드로 단일 웹 사이트 디버그하는 방법

  1. 윈도우 OS는
  2. 브라우저 구글 크롬

모든 제외하고 잘 작동 IDE를 위해 서버로

  • VS 코드를
  • WAMP (글쎄, 난에 있습니다) ... 나는 경우 내 웹 사이트를 디버깅하는 중이고 크롬에서 내 phpMyAdmin으로 db 값을 확인하기 위해 VS 코드/Xdebug가 phpMyAdmin 디버깅을 시작합니다 (다른 "localhost"사이트와 동일한 거래)

    이 시점에서 모든 것이 잠기고 작동을 멈추는 것처럼 보입니다. xdebug가 "다른"웹 사이트에서 경고/오류 등을 포착했기 때문에 그 사실을 이해합니다. "호출 스택"을 클릭하고 "계속"버튼을 클릭한다고해서 항상 (거의) 계속 움직이는 것은 아닙니다.

    하나의 웹 사이트 만 모니터링하도록 vs code/xdebug를 설정하려면 어떻게해야합니까? 내 주요 웹 애플리케이션이 http://reqapp.dev
    내 phpMyAdmin을에서 [로컬] 제공됩니다

    http://wamp/phpmyadmin/
    에 있고 다른 사이트는 http://localhost/path/to/website/

    에서 나는 Aptana에 스튜디오에서 문제 같은 일을하고 있었다 결코 (동일 dev에 있습니다 환경)하지만 디버깅을 위해 웹 사이트를 "시작"할 것이고 특별한 포트를 사용했다고 생각합니다. 이 코드를 VS ​​코드로 복제하는 방법을 모르겠습니다.

    편집 :
    대부분의 사이트가 가상 호스트로 정의된다

    아파치 - vhosts.conf

    <VirtualHost *:80> 
        ServerName localhost 
        DocumentRoot c:/Users/chadmeyers/Sites 
        <Directory "c:/Users/chadmeyers/Sites"> 
         Options +Indexes +Includes +FollowSymLinks +MultiViews 
         AllowOverride All 
         Require local 
        </Directory> 
    </VirtualHost> 
    
    <VirtualHost *:80> 
        ServerName wamp 
        DocumentRoot "c:/wamp64/www" 
        <Directory "c:/wamp64/www/"> 
         Options +Indexes +Includes +FollowSymLinks +MultiViews 
         AllowOverride All 
         Require local 
        </Directory> 
    </VirtualHost> 
    
    <VirtualHost *:80> 
        ServerName reqApp.dev 
        DocumentRoot "c:/users/chadmeyers/sites/aaappdev/public_html" 
        <Directory "c:/users/chadmeyers/sites/aaappdev/public_html/"> 
         Options +Indexes +Includes +FollowSymLinks +MultiViews 
         AllowOverride All 
         Require local 
        </Directory> 
    </VirtualHost> 
    

    그리고 php.ini의

    VS 코드 PHP 디버그 내
    [xdebug] 
    zend_extension ="c:\wamp64\bin\php\php7.0.10\ext\php_xdebug-2.5.5-7.0-vc14-x86_64.dll" 
    
    xdebug.remote_enable = On 
    xdebug.remote_autostart = On 
    xdebug.profiler_enable = On 
    xdebug.profiler_enable_trigger = On 
    xdebug.profiler_output_name = cachegrind.out.%t.%p 
    xdebug.profiler_output_dir ="c:/wamp64/tmp" 
    xdebug.show_local_vars=0 
    xdebug.var_display_max_depth = 5 
    xdebug.var_display_max_children = 256 
    xdebug.var_display_max_data = 1024 
    

    내가 가진이 설정,하지만 내가 사용하는 "프로필"어떤 차이가 없습니다

    "version": "0.2.0", 
        "configurations": [ 
        { 
         "name": "Listen for XDebug", 
         "type": "php", 
         "request": "launch", 
         "port": 9000 
        }, 
        { 
         "name": "Launch currently open script", 
         "type": "php", 
         "request": "launch", 
         "program": "${file}", 
         "cwd": "${fileDirname}", 
         "port": 9000 
        }, 
        { 
         "name": "debug FRAaap", 
         "type": "php", 
         "request": "launch", 
         "program": "${file}", 
         "cwd": "C:\\Users\\chadmeyers\\Sites\\aaAppDev\\public_html\\", 
         "port": 9000 
        } 
        ] 
    } 
    
  • +0

    Xdebug 설정? WAMP에서 사이트는 어떻게 정의됩니까? 가상 호스트 (각자 자신의 도메인 이름을 사용함) 또는 무엇 때문에? 디버깅 세션을 시작하기 위해 쿠키/쿼리 매개 변수를 사용하는 경우 다른 사이트에도 영향을 미치지 않아야합니다 (도메인 당). 그러나 아마도'xdebug.remote_autostart'가 활성화되었을 것입니다 -이 경우 xdebug는 모든 단일 스크립트를 디버그하려고합니다._possible_ 이유에 관해서는 - xdebug가 다른 디버그 세션을 시작할 수도 있고 VS 코드가 한 번에 하나 이상을 지원하지 않을 수도 있습니다. 그래서 현재 세션이 완료 될 때까지 기다리고 있습니다. – LazyOne

    +0

    당신은 자물쇠를 위해 그것을 가지고있다. 내 xdebug 설정을 게시 할 것입니다 – Chad

    +1

    글쎄 ..'xdebug.remote_autostart = On'이 있습니다. Xdebug 자체는 모든 도메인 *에서 모든 단일 요청을 디버그하려고 시도합니다 (CLI 모드 - 콘솔/터미널에서도). 이 옵션을 비활성화하고 "debug me"플래그를 다른 방법으로 전달하십시오 (쿠키 (xdebug 브라우저 확장 찾기) 또는 GET/POST 매개 변수 (IDE/편집기가 요청한 URL에 디버그에 추가해야 함). 1 개의 동시 디버깅 세션 - PhpStorm 시도 (기본 1에서 수동으로 한도를 늘린 후에 가능) 또한 다른 도메인 (아직 구성되지 않은 도메인)의 요청을 무시할 수 있습니다. – LazyOne

    답변

    0

    일부 팁을 기반으로합니다. xdebug.remote_autostart 좀 더 조사하고 this article을 찾아 나에게 더 나은 이해를주었습니다. xdebug.remote_autostart 해제 제안한대로 the Chrome Xdebug helper 또한 디버그 세션을 자동으로 시작하는 데 큰 도움이됩니다.

    Xdebug를 시작하려는 경우 XDEBUG_SESSION_START과 임의의 문자열을 내 URL에 추가하면 작동하거나 확장 프로그램을 사용합니다.

    아직이 작업을 훌륭하게 수행 할 수있는 방법이 많이 있지만, 지금은 잘 할 것입니다.