Xdebug 설치 PHP 디버그 Mac Big Sur

Xdeubg 설치에 엄청나게 많은 시간을 보냈습니다.

환경


  • mac OS Big Sur 버전 11.3.1
  • $ brew list | grep php
    
    [email protected]
    phpmyadmin
    

    결론



    ↓대로 설치해 에러를 해결하면서 해 나가면, Xdebug를 인스톨 할 수 있었다.

    Homebrew에서 php7.4 + Xdebug 설치

    그러나 pecl에서 설치하는 동안 오류가 발생했습니다.
    pecl install xdebug
    
    ・・・エラー省略。
    asm goto' constructs are not supported yet
    

    이것은 ↓ 웬다
    Command Line Tools for xcode (CLT) 버전의 문제다.

    htps : // / gs. php. 네 t/부 g. php? D = 80939 & E t = 1

    ↓로 확인해 보면
    $ clang --version
    
    Apple clang version 11.0.0 (clang-1100.0.33.17)
    Target: x86_64-apple-darwin19.6.0
    Thread model: posix
    InstalledDir: /Library/Developer/CommandLineTools/usr/bin
    

    거기서
    CLT를 업데이트했습니다.
    덧붙여서, CLT에는 2종류 있고 ①시스템에 인스톨되어 있는 CLT
    ②Xcode 패키지에 내장된 CLT
    있다는 것.

    brew upgrade의 오류 해결에서 Command Line Tools에 대해 요약해 봅니다.

    업데이트 방법은 ↑의 기사에 쓰여져 있는 대로.
    일단 시스템에 설치된 CLT를 제거. 다시 설치.
    $ sudo rm -rf /Library/Developer/CommandLineTools
    $ sudo xcode-select --install
    

    맑고, 버전 업에 성공.
    $clang --version
    
    Apple clang version 12.0.5 (clang-1205.0.22.9)
    Target: x86_64-apple-darwin20.4.0
    Thread model: posix
    InstalledDir: /Library/Developer/CommandLineTools/usr/bin
    

    다시 pecl에서 xdebug를 설치하면 성공.
    $ pecl install xdebug
    
    ・・・
    Build process completed successfully
    Installing '/usr/local/Cellar/[email protected]/7.4.19/pecl/20190902/xdebug.so'
    install ok: channel://pecl.php.net/xdebug-3.0.4
    Extension xdebug enabled in php.ini
    
    
    Installing '/usr/local/Cellar/[email protected]/7.4.19/pecl/20190902/xdebug.so'
    

    의 부분을 적어 php.ini에 쓴다.

    php.ini를 찾는 방법↓
    $ /usr/local/opt/[email protected]/bin/php -r "echo phpinfo();" | grep "php.ini"
    

    php.ini
    zend_extension="/usr/local/Cellar/[email protected]/7.4.19/pecl/20190902/xdebug.so"
    

    이제 드디어 VSCode에서 PHP를 디버깅 할 수 있습니다.

    라고 생각하면, VSCode로 디버그 개시해도, 브레이크 포인트로 멈추지 않는다.
    그래서 VSCode의 extension으로 인스톨 한 PHP Debug의 문서를 보면


    There are other ways to tell Xdebug to connect to a remote debugger, like cookies, query parameters or browser extensions. I recommend remote_autostart (Xdebug v2)/start_with_request (Xdebug v3) because it "just works". There are also options, like the port, please see the Xdebug documentation on remote debugging for more information. Please note that the default Xdebug port changed between Xdebug v2 to v3 from 9000 to 9003. The extension still defaults to 900 .json and php.ini match.

    즉, 「Xdebug의 버젼에 맞추어 쓸 수 있다」라는 것. (의역)
    그리고 "Xdebug 버전 v2에서 v3에 맞게 포트 번호가 9000에서 9003으로 바뀌었다. launch.json과 php.ini 확인해라"라는 것.

    필자의 경우라면 이하를 추기하면 브레이크 포인트에서 멈추게 되었다.

    php.ini
    zend_extension="/usr/local/Cellar/[email protected]/7.4.19/pecl/20190902/xdebug.so"
    
    [PHP]
    xdebug.mode = debug
    xdebug.start_with_request = yes  ←こいつをonにすることでプレー区ポイントで止まった。
    ;デフォルトは9003
    xdebug.client_port = 9003
    

    추가



    문서를 따라 해도 된다.
    htps : // x로 부는 g. 오 rg / 우자 rd

    ※그러나, 스텝 8의,↓는, 20190902라고 하는 폴더가 있는 것을 확인할 필요가 있습니다. 아무 생각없이 명령을 실행했지만 20190902라는 폴더가 만들어지지 않았습니다.
    //20190902というフォルダがあるか確かめる
    cp modules/xdebug.so /usr/local/lib/php/pecl/20190902
    



    작은 재료



    ↓와 같이, 화면 최하부가 오렌지색으로 「Launch curreently open script」가 되어 있지 않으면, 브레이크 포인트를 두고의 디버그는 할 수 없기 때문에 주의.
    왼쪽 사이드바의 디버그 버튼을 누르고 ▷ 옆을 눌러 "Listen for xdebug"또는 "Listen for xdebug"를 선택할 수 있습니다.

    그 때문에, 상당히 시간을 낭비했기 때문에, 요주의.

    좋은 웹페이지 즐겨찾기