Xdebug configureren

Xdebug is een extensie voor foutopsporing in uw PHP. Hoewel u winde van uw keus kunt gebruiken, verklaart het volgende hoe te te vormen Xdebug en PhpStorm om fouten op te sporen in uw lokale omgeving.

NOTE
U kunt Xdebug om in de Cloud Docker-omgeving voor lokale foutopsporing uit te voeren zonder de projectconfiguratie van uw Adobe Commerce op de cloud-infrastructuur te wijzigen. Zie Xdebug configureren voor Docker.

Inschakelen Xdebug, moet u een dossier in uw bewaarplaats van de Git vormen, uw winde vormen, en de haven van opstelling door:sturen. U kunt bepaalde instellingen configureren in het dialoogvenster magento.app.yaml bestand. Na het bewerken voert u de Git-wijzigingen door in alle Starter-omgevingen en Pro-integratieomgevingen om Xdebug. Xdebug is al beschikbaar in Pro Staging & Production-omgevingen.

Zodra gevormd, kunt u bevelen CLI, Webverzoeken, en code zuiveren. Houd er rekening mee dat alle omgevingen met cloudinfrastructuren alleen-lezen zijn. Kloont de code aan uw lokale ontwikkelomgeving om het zuiveren uit te voeren. Voor Pro Staging- en Productomgevingen raadpleegt u aanvullende instructies for Xdebug.

Vereisten

Uitvoeren en gebruiken Xdebug, hebt u de SSH-URL voor de omgeving nodig. U kunt de informatie vinden via de Cloud Console of uw Cloud Onboarding UI.

Xdebug configureren

Om te vormen XdebugVoer de volgende stappen uit:

Aan de slag met een vertakking

Toevoegen Xdebug, raadt de Adobe aan een ontwikkelingsafdeling.

Xdebug inschakelen in uw omgeving

U kunt Xdebug rechtstreeks naar alle Starter-omgevingen en Pro-integratieomgevingen. Deze configuratiestap is niet vereist voor Pro Production & Staging-omgevingen. Zie Foutopsporing voor Pro Staging en Production.

Inschakelen Xdebug voor uw project toevoegen xdebug aan de runtime:extensions van de .magento.app.yaml bestand.

Xdebug inschakelen:

  1. In uw lokale terminal, open .magento.app.yaml in een teksteditor.

  2. In de runtime sectie, onder extensions, toevoegen xdebug. Bijvoorbeeld:

    code language-yaml
    runtime:
        extensions:
            - redis
            - xsl
            - newrelic
            - sodium
            - xdebug
    
  3. Sla uw wijzigingen op in het dialoogvenster .magento.app.yaml en sluit de teksteditor af.

  4. Voeg de wijzigingen toe, begaan en duw deze om de omgeving opnieuw te implementeren.

    code language-bash
    git add -A
    
    code language-bash
    git commit -m "Add xdebug"
    
    code language-bash
    git push origin <environment-ID>
    

Bij implementatie in Starter-omgevingen en Pro-integratieomgevingen, Xdebug is nu beschikbaar. Ga door met het configureren van uw IDE. Voor PHPStorm raadpleegt u PhpStorm configureren.

PhpStorm configureren

De PhpStorm IDE moet worden gevormd om behoorlijk met te werken Xdebug.

PHPStorm configureren voor gebruik met Xdebug:

  1. Open in uw PhpStorm-project de Instellingen deelvenster.

    • macOS—Selecteren PhpStorm > Voorkeuren.
    • Windows/Linux—Selecteren Bestand > Instellingen.
  2. In de Instellingen het deelvenster, vouwt u de Talen en kaders > PHP > Servers sectie.

  3. Klik op de knop + een serverconfiguratie toevoegen. De projectnaam is grijs bovenaan.

  4. [Optioneel] Configureer de volgende instellingen voor de nieuwe serverconfiguratie. Zie Geen foutopsporingsserver geconfigureerd in de PHPStorm documentatie.

    • Naam—Ga het zelfde als hostname in. Deze waarde moet overeenkomen met de waarde voor de PHP_IDE_CONFIG variabele in Foutopsporing CLI-opdrachten om CLI voor het zuiveren te gebruiken.
    • Host—Voer de hostnaam in.
    • Poort—Enter 443.
    • Foutopsporing—Selecteren Xdebug.
  5. Selecteren Padtoewijzingen gebruiken. In de Bestand/map deelvenster, de hoofdmap van het project voor het deelvenster serverName worden weergegeven.

  6. In de Absoluut pad op de server kolom, klikt u op de Bewerken en voegt een instelling toe op basis van de omgeving.

    • Voor alle Starter-omgevingen en Pro-integratieomgevingen is het externe pad /app.

    • Voor Pro Staging- en Productieomgevingen:

      • Productie: /app/<project_code>/
      • Staging: /app/<project_code>_stg/
  7. Wijzig de Xdebug haven aan 9000 in Talen en kaders > PHP > Foutopsporing > Xdebug > Foutopsporingspoort deelvenster.

  8. Klikken Toepassen.

Poorten doorsturen instellen

Wijs de XDEBUG verbinding van de server met uw lokale systeem. Voor elk type foutopsporing moet u poort 9000 van uw Adobe Commerce op de server van de cloudinfrastructuur doorsturen naar uw lokale computer. Zie een van de volgende secties:

Poorten doorsturen op Mac of UNIX®

Aan opstellings haven die op een Mac of in een milieu UNIX® door:sturen:

  1. Open een terminal.

  2. Gebruik SSH om de verbinding te maken.

    code language-bash
    ssh -R 9000:localhost:9000 <ssh url>
    

    Gebruik de -v (verbose) optie zodat wanneer een contactdoos met de haven wordt verbonden die door:sturen het in de terminal toont.

    Als een "onbekwaam om"te verbinden of "niet aan haven op verre"fout kon luisteren wordt getoond, kon er een andere actieve zitting van SSH die op de server voortduurt die haven 9000 bezet. Als die verbinding niet wordt gebruikt, kunt u het eindigen.

Verbinding problemen oplossen:

  1. Gebruik SSH om u aan te melden bij de externe integratie, staging of productieomgeving.

  2. Een lijst met SSH-sessies weergeven: who

  3. Bestaande SSH-sessies op gebruiker weergeven. Wees voorzichtig dat u geen andere gebruiker aangaat dan uzelf!

    • integratie: gebruikersnamen zijn vergelijkbaar met dd2q5ct7mhgus
    • Staging: gebruikersnamen zijn vergelijkbaar met dd2q5ct7mhgus_stg
    • Productie: gebruikersnamen lijken op dd2q5ct7mhgus
  4. Voor een gebruikerszitting die ouder is dan van u, vind de pseudo-terminal (PTS) waarde, zoals pts/0.

  5. Vernietig de proces-id (PID) die overeenkomt met de PTS-waarde.

    code language-bash
    ps aux | grep ssh
    kill <PID>
    

    Monsterrespons:

    code language-terminal
    dd2q5ct7mhgus        5504  0.0  0.0  82612  3664 ?      S    18:45   0:00 sshd: dd2q5ct7mhgus@pts/0
    

    Om de verbinding te eindigen, ga een doodbevel met procesidentiteitskaart (PID) in.

    code language-bash
    kill 3664
    

Poorten doorsturen in Windows

Aan opstellingshaven door:sturen (het een tunnel graven van SSH) op Vensters, moet u uw eindtoepassing van Vensters vormen. Dit voorbeeld stappen door het creëren van een tunnel van SSH gebruikend Putty. U kunt andere toepassingen gebruiken, zoals Cygwin. Raadpleeg de documentatie van de leverancier bij deze toepassingen voor meer informatie over andere toepassingen.

Om een tunnel van SSH op Vensters te vestigen die Putty gebruikt:

  1. Als u dit nog niet hebt gedaan, downloadt u Putty.

  2. Start Putty.

  3. Klik in het deelvenster Categorie op Sessie.

  4. Voer de volgende gegevens in:

    • Hostnaam (of IP-adres) veld: voer de SSH-URL voor uw Cloud-server
    • Poort veld: Enter 22

    Putty instellen

  5. In de Categorie deelvenster, klikt u op Verbinding > SSH > Tunnels.

  6. Voer de volgende gegevens in:

    • Bronpoort veld: Enter 9000
    • Doel veld: Enter 127.0.0.1:9000
    • Klikken Extern
  7. Klikken Toevoegen.

    Een SSH-tunnel maken in Putty

  8. In de Categorie deelvenster, klikt u op Sessie.

  9. In de Opgeslagen sessies gebied, ga een naam voor deze tunnel van SSH in.

  10. Klikken Opslaan.

    Uw SSH-tunnel opslaan

  11. Om de tunnel van SSH te testen, klik Laden en klik vervolgens op Openen.

    Als de fout "Kan geen verbinding maken" wordt weergegeven, controleert u het volgende:

    • Alle instellingen voor Putty zijn correct
    • U gebruikt Putty op de computer waarop uw privé Adobe Commerce op de sleutels van de de infrastructuurSSH van de wolkeninfrastructuur wordt gevestigd

SSH-toegang tot Xdebug-omgevingen

Voor het in werking stellen van het zuiveren, het uitvoeren van opstelling, en meer, hebt u de bevelen van SSH voor de toegang tot van de milieu's nodig. U kunt deze informatie via de Cloud Console en uw projectspreadsheet.

Voor Starter-omgevingen en Pro-integratieomgevingen kunt u het volgende gebruiken magento-cloud CLI bevel aan SSH in die milieu's:

magento-cloud environment:ssh --pipe -e <environment-ID>

Te gebruiken Xdebug, SSH voor het milieu als volgt:

ssh -R <xdebug listen port>:<host>:<xdebug listen port> <SSH-URL>

Bijvoorbeeld:

ssh -R 9000:localhost:9000 pwga8A0bhuk7o-mybranch@ssh.us.magentosite.cloud

Foutopsporing voor Pro Staging en Production

NOTE
In Pro Staging & Production-omgevingen, Xdebug is altijd beschikbaar omdat deze omgevingen een speciale installatie hebben voor Xdebug. Alle normale webaanvragen worden gerouteerd naar een speciaal PHP-proces dat niet Xdebug. Daarom worden deze verzoeken op normale wijze verwerkt en zijn zij niet onderworpen aan de verslechtering van de prestaties wanneer Xdebug is geladen. Wanneer een webaanvraag wordt verzonden die de Xdebug key, het wordt gerouteerd naar een afzonderlijk PHP proces dat Xdebug geladen.

Te gebruiken Xdebug specifiek op Pro plan het Staging en van de Productie milieu, creeert u een afzonderlijke tunnel van SSH en Webzitting slechts u toegang tot hebt. Dit gebruik verschilt van typische toegang, die slechts toegang tot u en niet aan alle gebruikers verleent.

U hebt het volgende nodig:

  • SSH-opdrachten voor toegang tot de omgevingen. U kunt deze informatie via de Cloud Console of uw Cloud Onboarding UI.

  • De xdebug_key ingestelde waarde bij het configureren van de Staging- en Pro-omgevingen.

    De xdebug_key kan worden gevonden door SSH te gebruiken aan login aan de primaire knoop en het uitvoeren:

    code language-bash
    cat /etc/platform/*/nginx.conf | grep xdebug.sock | head -n1
    

Om een tunnel van SSH aan een het Staging of milieu van de Productie te vestigen:

  1. Open een terminal.

  2. Maak alle SSH-sessies op voor elk webknooppunt van de cluster.

    code language-bash
    ssh USERNAME@CLUSTER.ent.magento.cloud 'rm /run/platform/USERNAME/xdebug.sock'
    
  3. Opstelling de tunnel van SSH voor Xdebug voor elke Webknoop van de cluster.

    code language-bash
    ssh -R /run/platform/USERNAME/xdebug.sock:localhost:9000 -N USERNAME@CLUSTER.ent.magento.cloud
    

Foutopsporing starten met de URL van de omgeving:

  1. Foutopsporing op afstand inschakelen; de site in de browser bezoeken en het volgende aan de URL toevoegen waar KEY is waarde voor xdebug_key.

    code language-http
    ?XDEBUG_SESSION_START=KEY
    

    Met deze stap wordt het cookie ingesteld dat de browserverzoeken verzendt om te activeren Xdebug.

  2. Voltooi de foutopsporing met Xdebug.

  3. Wanneer u klaar bent om de zitting te beëindigen, gebruik het volgende bevel om het koekje te verwijderen en het zuiveren door browser te beëindigen waar KEY is waarde voor xdebug_key.

    code language-http
    ?XDEBUG_SESSION_STOP=KEY
    
    note note
    NOTE
    De XDEBUG_SESSION_START doorgegeven door POST aanvragen worden niet ondersteund.

Foutopsporing CLI-opdrachten

Deze sectie loopt door het zuiveren bevelen CLI.

Om CLI bevelen te zuiveren:

  1. SSH in de server u wilt zuiveren gebruikend bevelen CLI.

  2. Maak de volgende omgevingsvariabelen:

    code language-bash
    export XDEBUG_CONFIG='PHPSTORM'
    
    code language-bash
    export PHP_IDE_CONFIG="serverName=<name of the server that is configured in PHPSTORM>"
    

    Deze variabelen worden verwijderd wanneer de SSH-sessie wordt beëindigd.

  3. Foutopsporing starten

    Bij Starter-omgevingen en Pro-integratieomgevingen voert u de CLI-opdracht uit om fouten op te sporen.
    U kunt bijvoorbeeld runtime-opties toevoegen:

    code language-bash
    php -d xdebug.profiler_enable=On -d xdebug.max_nesting_level=9999 bin/magento cache:clean
    

    In een Pro-testomgeving moet u het pad naar de Xdebug PHP-configuratiebestand bij foutopsporing in CLI-opdrachten, bijvoorbeeld:

    code language-bash
    php -c /etc/platform/USERNAME/php.xdebug.ini bin/magento cache:clean
    

Fouten opsporen in webverzoeken

De volgende stappen helpen u Webverzoeken zuiveren.

  1. Op de Extensie menu, klikt u op Foutopsporing om in te schakelen.

  2. Klik met de rechtermuisknop, selecteer het optiemenu en stel de IDE-toets in op PHPSTORM.

  3. Installeer de Xdebug op de browser. Vorm en laat het toe.

Voorbeeld: Chrome instellen

In deze sectie wordt besproken hoe u het programma kunt gebruiken Xdebug in Chrome met de Xdebug Helperextensie. Voor informatie over Xdebug raadpleeg de documentatie van de browser voor andere browsers.

Xdebug Helper gebruiken met Chrome:

  1. Een SSH-tunnel naar de Cloud-server.

  2. Installeer de Xdebug Helper-extensie in de Chrome-winkel.

  3. Laat de uitbreiding in Chrome toe zoals aangetoond in het volgende cijfer.

    Xdebug-extensie inschakelen in Chrome

  4. Klik in Chrome met de rechtermuisknop op het groene hulppictogram op de werkbalk Chrome.

  5. Klik in het pop-upmenu op Opties.

  6. Van de IDE-sleutel lijst, klik PhpStorm.

  7. Klikken Opslaan.

    Xdebug Helper-opties

  8. Open uw PhpStorm-project.

  9. Klik in de bovenste navigatiebalk op de knop Beginnen met luisteren pictogram.

    Als de navigatiebalk niet wordt weergegeven, klikt u Weergave > Navigatiebalk.

  10. Dubbelklik in het navigatievenster PHP op het PHP-bestand dat u wilt testen.

Lokale code debuggen

Wegens de read-only milieu's, moet u code aan het lokale werkstation van een milieu of specifieke tak van de it trekken om het zuiveren uit te voeren.

De methode die u kiest, is aan u. U hebt de volgende opties:

  • Code uitchecken vanuit Git en uitvoeren composer install

    Deze methode werkt tenzij composer.json verwijst naar pakketten in privéopslagruimten waartoe u geen toegang hebt. Met deze methode krijgt u de volledige Adobe Commerce-codebase.

  • De vendor, app, pub, lib, en setup mappen

    Deze methode leidt ertoe dat u alle code hebt die u mogelijk kunt testen. Afhankelijk van het aantal statische elementen waarover u beschikt, kan dit resulteren in een lange overdracht met een groot volume bestanden.

  • De vendor alleen directory

    Omdat het grootste deel van de code zich in de vendor Deze methode zal waarschijnlijk resulteren in goede tests, hoewel de volledige codebase niet wordt getest.

Bestanden comprimeren en naar de lokale computer kopiëren:

  1. Gebruik SSH om u aan te melden bij de externe omgeving.

  2. Comprimeer de bestanden.

    code language-bash
    tar -czf /tmp/<file-name>.tgz <directory list>
    

    Als u bijvoorbeeld het dialoogvenster vendor alleen directory:

    code language-bash
    tar -czf /tmp/vendor.tgz vendor
    
  3. Gebruik PHPStorm in uw lokale omgeving om de bestanden te comprimeren.

    code language-bash
    cd <phpstorm project root dir>
    
    code language-bash
    rsync <SSH-URL>:/tmp/<file-name>.tgz .
    
    code language-bash
    tar xzf <file-name>.tgz
    
recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26