Xdebug configureren
Xdebug is een extensie voor foutopsporing in uw PHP. Hoewel u IDE van uw keus kunt gebruiken, verklaart het volgende hoe te om Xdebug en PhpStorm te vormen om in uw lokale milieu te zuiveren.
Om Xdebug toe te laten, moet u een dossier in uw bewaarplaats van de it vormen, uw winde vormen, en de opstellingspoort door:sturen. U kunt bepaalde instellingen configureren in het magento.app.yaml
-bestand. Nadat u de Git-wijzigingen hebt bewerkt, kunt u deze activeren door de Git-wijzigingen door te voeren in alle Starter-omgevingen en Pro-integratieomgevingen 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 het Staging en de milieu's van de Productie, zie extra instructiesvoor Xdebug.
Vereisten
Als u Xdebug wilt uitvoeren en gebruiken, hebt u de SSH-URL voor de omgeving nodig. U kunt de informatie vinden via Cloud Console of de Cloud Onboarding UI .
Xdebug configureren
Voer de volgende stappen uit om Xdebug te configureren:
Aan de slag met een vertakking
Om Xdebug toe te voegen, adviseert de Adobe het werken in een ontwikkelingstak.
Xdebug inschakelen in uw omgeving
U kunt Xdebug rechtstreeks inschakelen voor alle Starter-omgevingen en Pro-integratieomgevingen. Deze configuratiestap is niet vereist voor Pro Production & Staging-omgevingen. Zie zuiveren voor Pro het Opvoeren en de Productie.
Als u Xdebug wilt inschakelen voor uw project, voegt u xdebug
toe aan de sectie runtime:extensions
van het .magento.app.yaml
-bestand.
om Xdebug toe te laten:
-
Open het bestand
.magento.app.yaml
in de lokale terminal in een teksteditor. -
Voeg in de sectie
runtime
onderextensions
toexdebug
. Bijvoorbeeld:code language-yaml runtime: extensions: - redis - xsl - newrelic - sodium - xdebug
-
Sla de wijzigingen op in het
.magento.app.yaml
-bestand en sluit de teksteditor af. -
Voeg de wijzigingen toe, begaan en duw deze om de omgeving opnieuw te implementeren.
code language-bash git add .magento.app.yaml
code language-bash git commit -m "add xdebug"
code language-bash git push origin <environment-ID>
Wanneer Xdebug wordt geïmplementeerd in Starter-omgevingen en Pro-integratieomgevingen, is het nu beschikbaar. Ga door met het configureren van uw IDE. Voor PHPStorm, zie PHPStormvormen.
PHPStorm-server configureren
PpStormwinde moet worden gevormd om behoorlijk met Xdebug te werken.
om PhpStorm te vormen om met Xdebug te werken:
-
In uw project PhpStorm, open het paneel van Montages.
- macOS - selecteer PHPStorm > Montages.
- Vensters/Linux - selecteer Dossier > Montages.
-
In het paneel van Montages, breid PHP sectie uit en klik op Servers.
-
Klik + om een serverconfiguratie toe te voegen. De projectnaam is grijs bovenaan.
-
[ Facultatieve ] vorm de volgende montages voor de nieuwe serverconfiguratie. Zie Geen zuivert server diein de wordt gevormd PHPStorm documentatie.
- Naam - ga het zelfde als hostname in. Deze waarde moet de waarde voor de
PHP_IDE_CONFIG
variabele in aanpassen zuivert CLI bevelenom CLI voor het zuiveren te gebruiken. - Gastheer - ga hostname in.
- Haven - ga
443
binnen. - Debugger - selecteer
Xdebug
.
- Naam - ga het zelfde als hostname in. Deze waarde moet de waarde voor de
-
Selecteer de wegafbeeldingen van het Gebruik. In de ruit van het Dossier/van de Folder, de wortel van het project voor de
serverName
vertoningen. -
In de Absolute weg op de server kolom, klik geef pictogram uit en voeg het plaatsen toe die op het milieu wordt gebaseerd.
-
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/
- Productie:
-
-
Verander de Xdebug haven in
9000,9003
of u kunt het beperken tot enkel9000
in PHP > zuiveren > Xdebug > zuivert het paneel van de Haven. -
Klik toepassen.
De configuratie van PHPStorm Run/Debug maken
Hierdoor kan de toepassing de juiste foutopsporingsinstellingen hebben om de aanvraag van de Adobe Commerce-toepassing af te handelen.
-
Open de PHPStorm-toepassing en klik op Add Configuration rechtsboven in het scherm.
-
Klik op Add new run configuration.
-
Selecteer de optie PHP Remote Debug .
- Voer een unieke, maar herkenbare naam in.
- Schakel het selectievakje Filter debug connection by IDE key** in.
- Selecteer de server die u in de vorige sectiecreeerde. Als u het nog niet hebt gecreeerd, kunt u tot stand brengen nu, maar naar dat deel van de opstellingsgids verwijzen.
- Typ
PHPSTORM
in hoofdletters in het tekstveld IDE key(session id) . We zullen dit in andere delen van de opstelling gebruiken, dus het is belangrijk om dit te handhaven. Als u een ander koord kiest, moet u zich herinneren om het elders in de opstelling en het configuratieproces te gebruiken.
-
Klik op Apply > OK .
Poorten doorsturen instellen
Wijs de XDEBUG
verbinding van de server aan uw lokaal systeem toe. 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 opstellingshaven die op een Mac of in een milieu UNIX® door
-
Open een terminal.
-
Gebruik SSH om de verbinding te maken.
code language-bash ssh -R 9000:localhost:9000 <ssh url>
Gebruik de optie
-v
(verbose) zodat wanneer een socket is verbonden met de poort die wordt doorgestuurd, deze in de terminal wordt weergegeven.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.
om de verbinding problemen op te lossen:
-
Gebruik SSH om u aan te melden bij de externe integratie, staging of productieomgeving.
-
Een lijst met SSH-sessies weergeven:
who
-
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 zijn vergelijkbaar met
dd2q5ct7mhgus
- integratie: gebruikersnamen zijn vergelijkbaar met
-
Voor een gebruikerszitting die ouder is dan van u, vind de pseudo-terminal (PTS) waarde, zoals
pts/0
. -
Vernietig de proces-id (PID) die overeenkomt met de PTS-waarde.
code language-bash ps aux | grep ssh kill <PID>
Monsterrespons:
code language-none 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 voorbeeldstappen door een tunnel van SSH tot stand te brengen gebruikend Putty. U kunt andere toepassingen gebruiken, zoals Cygwin. Raadpleeg de documentatie van de leverancier bij deze toepassingen voor meer informatie over andere toepassingen.
aan opstelling een tunnel van SSH op Vensters gebruikend Putty:
-
Als u dit nog niet hebt gedaan, download Putty.
-
Start Putty.
-
In de ruit van de Categorie, klik Zitting.
-
Voer de volgende gegevens in:
- Hostname (of IP adres) gebied: Ga SSH URLvoor uw server van de Wolk in
- Poort gebied: Ga
22
binnen
-
In de ruit van de Categorie, klik Verbinding > SSH > Tunnels.
-
Voer de volgende gegevens in:
- Source haven gebied: Ga
9000
binnen - Doel gebied: Ga
127.0.0.1:9000
binnen - Klik Verre
- Source haven gebied: Ga
-
Klik toevoegen.
-
In de ruit van de Categorie, klik Zitting.
-
Op het Bewaarde gebied van Zittingen, ga een naam voor deze tunnel van SSH in.
-
Klik sparen.
-
Om de tunnel van SSH te testen, klik Lading, dan klik Open.
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 door Cloud Console en uw projectspreadsheet krijgen.
Voor Starter-omgevingen en Pro-integratieomgevingen kunt u de volgende magento-cloud
CLI-opdracht gebruiken om SSH in die omgevingen te gebruiken:
magento-cloud environment:ssh --pipe -e <environment-ID>
Om Xdebug te gebruiken, SSH aan 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
Als u Xdebug specifiek wilt gebruiken in de Pro-omgeving voor Staging en Productie van abonnementen, maakt u een aparte SSH-tunnel en websessie waartoe alleen u toegang 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 gegevens ophalen via de Cloud Console of de Cloud Onboarding UI .
-
De
xdebug_key
-waarde die is ingesteld bij het configureren van de Staging- en Pro-omgevingen.De
xdebug_key
kan worden gevonden door SSH te gebruiken om zich aan te melden bij het primaire knooppunt en het uitvoeren:code language-bash cat /etc/platform/*/nginx.conf | grep xdebug.sock | head -n1
aan opstelling een tunnel SSH aan een het Opvoeren of milieu van de Productie:
-
Open een terminal.
-
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'
-
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
USERNAME@CLUSTER.ent.magento.cloud
verkrijgen:- Methode 1: magento-cloud CLI:
magento-cloud ssh --all
- Methode 2: Commerce Console: https://CONSOLE-URL/ENVIRONMENT, klik
SSH v
dropdown
beginnen het zuiveren gebruikend het milieu URL:
Dit is een demonstratie van de gebruikte configuraties evenals een demonstratie van de parameter van de GET om een verre het zuiveren zitting te beginnen.
-
Foutopsporing op afstand inschakelen; ga naar de site in de browser en voeg het volgende toe aan de URL waar
KEY
de waarde voorxdebug_key
is.code language-http ?XDEBUG_SESSION_START=KEY
Met deze stap stelt u het cookie in dat browserverzoeken verzendt om Xdebug te activeren.
-
Voltooi de foutopsporing met Xdebug .
-
Wanneer u klaar bent om de sessie te beëindigen, gebruikt u de volgende opdracht om de cookie te verwijderen en de foutopsporing te beëindigen via de browser waar
KEY
de waarde voorxdebug_key
is.code language-http ?XDEBUG_SESSION_STOP=KEY
note note NOTE De XDEBUG_SESSION_START
die doorPOST
-aanvragen wordt doorgegeven, worden niet ondersteund.
Foutopsporing CLI-opdrachten
Deze sectie loopt door het zuiveren bevelen CLI.
Om CLI bevelen te zuiveren:
-
SSH in de server u wilt zuiveren gebruikend bevelen CLI.
-
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.
-
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 Staging- en Production-omgeving moet u het pad naar het Xdebug PHP-configuratiebestand opgeven wanneer u foutopsporing uitvoert voor 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.
-
Voor het menu van de Uitbreiding, klik zuivert om toe te laten.
-
Klik met de rechtermuisknop, selecteer het optiemenu en stel de IDE-sleutel in op PHPSTORM .
-
Installeer de Xdebug -client in de browser. Vorm en laat het toe.
Voorbeeld: Chrome instellen
In deze sectie wordt beschreven hoe u Xdebug in Chrome kunt gebruiken met de extensie Xdebug Helper. Raadpleeg de documentatie van de browser voor informatie over Xdebug -gereedschappen voor andere browsers.
om Helper Xdebug met Chrome te gebruiken:
-
Creeer een tunnel van SSHaan de server van de Wolk.
-
Installeer de uitbreiding van de Helper Xdebugvan de opslag van Chrome.
-
Schakel de extensie in Chrome in zoals in de volgende afbeelding.
toe
-
Klik in Chrome met de rechtermuisknop op het groene hulppictogram op de Chrome-werkbalk.
-
Van pop-up menu, klik Opties.
-
Van de Belangrijke winde lijst, klik PhpStorm.
-
Klik sparen.
-
Open uw PhpStorm-project.
-
In de hoogste navigatiebar, klik het Begin luisterend pictogram.
Als de navigatiebar niet wordt getoond, klik Mening > de Bar van de Navigatie.
-
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 alleen als
composer.json
verwijst naar pakketten in privéopslagruimten waartoe u geen toegang hebt. Met deze methode krijgt u de volledige Adobe Commerce-codebase. -
Kopieer de mappen
vendor
,app
,pub
,lib
ensetup
.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.
-
Alleen de map
vendor
kopiërenOmdat het grootste deel van de code zich in de map
vendor
bevindt, zal deze methode waarschijnlijk resulteren in goede tests, hoewel de volledige codebase niet wordt getest.
om dossiers te comprimeren en hen te kopiëren aan uw lokale machine:
-
Gebruik SSH om u aan te melden bij de externe omgeving.
-
Comprimeer de bestanden.
code language-bash tar -czf /tmp/<file-name>.tgz <directory list>
Als u bijvoorbeeld alleen de map
vendor
wilt comprimeren:code language-bash tar -czf /tmp/vendor.tgz vendor
-
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