Recent, am început să mă concentrez mai mult pe PHP și trebuia să configurez un mediu de depanare local. Deoarece nu există multe tutoriale despre cum să o faceți, am întâmpinat câteva probleme cu privire la modul de pornire a configurării.

Combinând câteva tutoriale și petrecând câteva ore pe mai multe forumuri, am venit cu acest text. Aplicația la care lucrez rulează în interiorul unei cutii Vagrant, care este tremurată cumva. Se prăbușește din când în când, așa că trebuie să refac această configurare și, prin urmare, știu că această configurare funcționează :).

Scopul acestui tutorial este de a face Xdebug să funcționeze pe serverul dvs. și apoi să îndrepte PhpStorm către Xdebug.

Să începem.

Condiții prealabile

Dacă nu aveți Xdebug instalat pe server, dar utilizați PHP7, puteți face acest lucru folosind Instrucțiuni de instalare personalizate de pe site-ul oficial Xdebug Aici.

Cu toate acestea, întrucât proiectul meu folosește PHP5, a trebuit să o fac în stilul vechi: căutând-o pe forumuri.

În acest tutorial voi presupune că aveți instalat Xdebug.

Noțiuni de bază

Mai întâi trebuie să găsiți locația fișierului xdebug.so pe serverul dvs. Copiați locația undeva, așa cum o veți folosi mai târziu.

locate xdebug.so

Acum trebuie să navigați în serverul dvs. către o locație: /etc/php5/apache2/conf.d/ și să verificați dacă fișierul 20-xdebug.ini există acolo. Dacă nu există, creați unul. Puteți crea una folosind comenzi precum touch, vim, vi, nano și așa mai departe.

Puteți vedea că proiectul meu este realizat în PHP5, deci schimbați numele / locația folderului în funcție de versiunea dvs. de PHP.

Acum deschideți fișierul 20-xdebug.ini și lipiți-l în:

zend_extension=”location to your xdebug.so file”
xdebug.remote_enable=1
xdebug.remote_port=9000
xdebug.remote_host=”your localhost address”
xdebug.remote_autostart=1
xdebug.remote_connect_back=0
xdebug.remote_handler=”dbgp”
xdebug.remote_mode=req
xdebug.remote_cookie_expire_time=-9999
xdebug.remote_log=”/tmp/xdebug.log”
xdebug.var_display_max_depth=15
xdebug.profiler_enable=0
xdebug.idekey=”phpstorm”

Din explicația fișierului 20-xdebug.ini care este scris mai jos, veți vedea că unele dintre aceste setări nu sunt necesare sau că sunt setate la o valoare implicită. Păstrez aceste valori în fișierul 20-xdebug.ini deoarece sunt bine de știut.

Explicația fișierului 20-xdebug.ini:

  • xdebug.remote_enable – controlează dacă Xdebug ar trebui să încerce să contacteze un client de depanare care ascultă pe gazdă și port așa cum este setat cu setările
  • xdebug.remote_port – Portul la care Xdebug încearcă să se conecteze pe gazda de la distanță. Valoarea implicită este 9000.
  • xdebug.remote_host – Selectează gazda unde rulează clientul de depanare. Implicit este localhost.
  • xdebug.remote_autostart – când această setare este setată la 1, Xdebug va încerca să înceapă o sesiune de depanare la distanță și va încerca să se conecteze la un client.
  • xdebug.remote_connect_back – Dacă este activat, fișierul xdebug.remote_host setarea este ignorată și Xdebug va încerca să se conecteze la clientul care a făcut cererea HTTP. Valoarea implicită este 0.
  • xdebug.remote_handler – Poate fi fie „php3” care selectează vechiul Debugger stil PHP 3 ieșire, ‘gdb’ care permite GDB ca interfața de depanare sau ‘dbgp’ – protocol de depanare. Protocolul DBGp este singurul protocol acceptat. Implicit este dbgp.
  • xdebug.remote_mode – Selectează când este inițiată o conexiune de depanare. Această setare poate avea două valori diferite: req – Xdebug va încerca să se conecteze la clientul de depanare imediat ce începe scriptul. jit – Xdebug va încerca să se conecteze la clientul de depanare imediat ce apare o condiție de eroare.
  • xdebug.remote_cookie_expire_time – Această setare poate fi utilizată pentru a mări (sau micșora) timpul în care sesiunea de depanare la distanță rămâne în viață prin cookie-ul de sesiune. Valoarea implicită este 3600.
  • xdebug.remote_log – Dacă este setată la o valoare, este utilizată ca nume de fișier la un fișier la care sunt înregistrate toate comunicațiile de depanare la distanță.
  • xdebug.var_display_max_depth – Controlează câte niveluri imbricate de elemente matrice și proprietăți ale obiectelor sunt atunci când variabilele sunt afișate fie cu xdebug_var_dump (), xdebug.show_local_vars sau prin Urme funcționale. Valoarea implicită este 3.
  • xdebug.profiler_enable – Activează profilerul Xdebug care creează fișiere în director de ieșire profil. Valoarea implicită este 0.
  • xdebug.idekey – Controlează ce cheie IDE Xdebug ar trebui să transmită handler-ului de depanare DBGp. Valoarea implicită se bazează pe setările de mediu.

Salvați fișierul și reporniți serverul Apache:

sudo service apache2 restart

Xdebug și PhpStorm

Mai întâi trebuie să deschideți PhpStorm și să selectați Run> Edit Configuration. Acolo ar trebui să selectați + (Adăugați o nouă configurație) și să alegeți „PHP Remote Debug”.

Schimbați numele configurației din „Unnamed” în altceva. Am ales numele „Tutorial” din motive evidente;) Apoi verificați „Filtrați conexiunea de depanare după cheia IDE”.

Cum se configureaza un mediu de depanare local in PHP

Selectați butonul Servere (…) și apoi selectați + (Adăugați un server nou).

  • Redenumiți serverul dvs. cu ceva mai liniștitor. Am ales „localbackend1” în acest exemplu.
  • În câmpul gazdă, tastați în localhost. Setați Debugger la Xdebug.
  • Selectați „Utilizați maparea căilor” și indicați spre dosarul aplicației dvs.

Faceți clic pe Aplicare. Veți fi returnat la fereastra anterioară unde veți vedea că cheia IDE este editabilă și acum trebuie să introduceți o cheie. Pun mereu „phpstorm” sau ceva similar.

1612186207 571 Cum se configureaza un mediu de depanare local in PHP

Veți observa că cheia IDE „phpstorm” este deja în fișierul dvs. 20-xdebug.ini:

xdebug.idekey=”phpstorm”

De asemenea, ar trebui să selectați o singură instanță, deoarece vă va împiedica să lansați mai multe instanțe ale aceluiași proiect.

Faceți clic pe pentru a aplica și Voilà!

Ați terminat cu configurarea!

Testarea și încheierea

Acum ești complet. Ar trebui să vedeți configurația Tutorial pe care am creat-o în colțul din dreapta sus al PhpStorm.

1612186207 449 Cum se configureaza un mediu de depanare local in PHP

Puteți să-l testați setând un punct de întrerupere în proiect. Faceți clic pe butonul „bug” din fereastra de configurare a Tutorialului și apoi rulați aplicația.

Asta ar trebui să fie tot, dacă totul este OK, ar trebui să atingi punctul de întrerupere.

Și amintiți-vă, nimic nu depășește senzația de a vedea valorile timpului de rulare în timpul depanării.

Mulțumesc că ai citit! Consultați mai multe articole de acest gen și alte lucruri distractive pe care le fac pe profilul meu Github: https://github.com/GoranAviani