ServBay’de Xdebug Modülü Nasıl Etkinleştirilir ve Yapılandırılır
ServBay, güçlü bir yerel web geliştirme ortamı olarak PHP geliştiricileri için Xdebug hata ayıklama ve analiz aracını önceden entegre etmiş şekilde sunar. Xdebug’u etkinleştirmek, PHP uygulamalarınızın geliştirme verimliliğini önemli ölçüde artırır ve kod hata ayıklama, performans analizi ile kod kapsamı ölçümü süreçlerini çok daha pratik hale getirir. Bu makalede, ServBay’de Xdebug’un nasıl etkinleştirileceği ve yapılandırılacağı, ayrıca popüler entegre geliştirme ortamlarında (IDE) nasıl entegre edileceği ayrıntılı olarak açıklanmaktadır.
Xdebug Modülü Genel Bakış
Xdebug, PHP kodlarının hata ayıklaması ve performans analizi için özel olarak geliştirilmiş, özellik açısından zengin bir PHP eklentisidir. ServBay, Xdebug’u önceden entegre ederek geliştiricilerin manuel derleme ve kurulum sürecini ortadan kaldırır, bu da etkinleştirme ve yapılandırmayı oldukça basit hale getirir.
Xdebug’un Başlıca Özellikleri
- Breakpoint ile hata ayıklama: Kodun istediğiniz satırına durma noktası koyarak işlemi durdurabilir, mevcut değişken durumunu, çağrı yığınını ve kodu adım adım inceleyebilirsiniz.
- Adım adım hata ayıklama: Kod üzerinde birer birer (Step Over), fonksiyon içine girerek (Step Into) veya fonksiyondan çıkarak (Step Out) işlemler yaparak yürütme takibi sağlar.
- Değişken izlemesi: Hata ayıklama sırasında yerel ve global değişken değerlerini anlık olarak görüntüleyebilirsiniz.
- Yığın takibi: Hata veya istisna oluştuğunda ayrıntılı fonksiyon çağrı yığını bilgisi sunar, böylece hatanın kaynağını hızlıca bulabilirsiniz.
- Performans analizi (Profiling): Kodun çalışma süresine dair raporlar üretir, darboğazları tespit etmeye yardımcı olur.
- Kod kapsamı ölçümü (Code Coverage): Testlerin, program kodunda hangi bölümleri kapsadığını ölçer; test yeterliliği değerlendirmesinde kullanılır.
ServBay’de Xdebug’un Sürümü ve Port Haritalama
ServBay, farklı PHP sürümleri için uygun Xdebug modülünü önceden yüklenmiş halde sunar. Burada dikkat edilmesi gereken, her PHP sürümüne karşılık gelen Xdebug’un dinleme portunun (iç port), sürümle ilişkilendirilmiş ve bağımsız olduğudur. Bu detay, IDE üzerinde hata ayıklayıcı yapılandırırken çok önemlidir.
| PHP Sürümü | Ön Yüklü Xdebug Sürümü | Varsayılan Xdebug Portu |
|---|---|---|
| PHP 5.6 | Xdebug 2.5.5 | 39056 |
| PHP 7.0 | Xdebug 2.5.5 | 39070 |
| PHP 7.1 | Xdebug 2.5.5 | 39071 |
| PHP 7.2 | Xdebug 3.1.6 | 39072 |
| PHP 7.3 | Xdebug 3.1.6 | 39073 |
| PHP 7.4 | Xdebug 3.1.6 | 39074 |
| PHP 8.0 | Xdebug 3.3.1 | 39080 |
| PHP 8.1 | Xdebug 3.4.0 | 39081 |
| PHP 8.2 | Xdebug 3.4.0 | 39082 |
| PHP 8.3 | Xdebug 3.4.0 | 39083 |
| PHP 8.4 | Xdebug 3.4.0 | 39084 |
| PHP 8.5 | Xdebug 3.4.0 | 39085 |
Port Kuralı
Xdebug’un varsayılan dinleme portu kuralı 39000 + PHP alt sürüm numarası şeklindedir. Örneğin, PHP 8.3 için port 39000 + 83 = 39083, PHP 7.4 için ise 39000 + 74 = 39074 olur. Bu kuralı anlamak, farklı PHP sürümleri için Xdebug portunu hızlıca belirlemenizde yardımcı olur.
Xdebug Modülünü Nasıl Etkinleştirirsiniz?
ServBay’de Xdebug modülünü etkinleştirmek son derece kolaydır; en pratik yol ServBay’in grafik kullanıcı arayüzü (GUI) üzerinden işlemi gerçekleştirmektir. Dilerseniz konfigürasyon dosyasını elle düzenlemeyi de tercih edebilirsiniz.
ServBay GUI ile Xdebug’u Etkinleştirmek
En basit ve hızlı yöntem budur.
- ServBay uygulamasını açın.
- Sol taraftaki menüden
Diller(Languages) bölümünü seçin. PHPbölümünü açın ve Xdebug’u etkinleştirmek istediğiniz PHP sürümünü seçin, örneğinPHP 8.3.- O sürümün sağındaki
Eklentilerbutonuna tıklayın. - Açılan eklenti listesinde
Xdebugmodülünü bulun. Xdebugmodülünün solundaki anahtarı kapalıdan açık konuma getirin.- Gerekirse parametreleri değiştirin.
- Ekranın altında bulunan
Kaydetbutonuna tıklayın. - ServBay, ilgili PHP işlemini otomatik olarak yeniden başlatıp modülü yükleyecektir.
Görsel: Eklentiler kısmında Xdebug’u etkinleştirme
Xdebug Modülünün Başarıyla Yüklendiğini Nasıl Doğrularsınız?
En kesin doğrulama yolu, phpinfo() fonksiyonu ile PHP yapılandırmasını incelemektir.
- ServBay’in web sitesi kök klasöründe (varsayılan
/Applications/ServBay/www) basit bir PHP dosyası oluşturun, örneğinphpinfo.php. phpinfo.phpiçerisine aşağıdaki kodu ekleyin:php<?php // Xdebug'un etkin olup olmadığını kontrol etmek için phpinfo(); ?>1
2
3
4- Tarayıcıdan bu dosyayı açın, örneğin
https://servbay.demo/phpinfo.php(Buradakiservbay.demokısmını kendi ServBay sitesinin alan adıyla değiştirin). - Açılan
phpinfosayfasında "Xdebug" anahtar kelimesini arayın. Xdebug başarıyla yüklendiyse, ayrı bir "Xdebug" başlıklı bölümde sürüm bilgisi ve yapılandırma parametreleri görüntülenir.
Görsel: phpinfo çıktısında Xdebug bilgisini bulma
IDE’de Xdebug ile Hata Ayıklama Ayarları
Xdebug’u etkinleştirdikten sonra, IDE’de kırılma (breakpoint) kullanarak hata ayıklamak için PHP yorumlayıcısı, hata ayıklayıcı ve sunucu eşlemelerini yapılandırmanız gerekir. Aşağıda, PHPStorm ve Visual Studio Code (VS Code) örnekleriyle açıklanmaktadır.
PHPStorm’da Xdebug Yapılandırması
PHPStorm, Xdebug desteği açısından en zengin IDE’lerden biridir.
PHPStorm Ayarlarını Açın: PHPStorm’u başlatıp
File->Settings(Windows/Linux) ya daPHPStorm->Preferences(macOS) menüsünden ayarları açın.PHP CLI Yorumlayıcısı Ayarı:
Languages & Frameworks->PHPbölümüne gidin.CLI Interpreterkısmında sağdaki...butonuna tıklayın.- Açılan pencerede
+ile yeni bir yerel yorumlayıcı ekleyin. - ServBay’deki ilgili PHP sürümünün CLI dosya yolunu belirtin, örneğin
/Applications/ServBay/package/php/8.3/8.3.7/bin/php(Sürüm numarası ServBay’in güncel halinde farklı olabilir). - PHPStorm, yorumlayıcı sürümünü ve eklentileri otomatik olarak algılayacaktır; Xdebug dahil.
OKile kaydedin.
Görsel: PHPStorm’da ServBay PHP CLI yorumlayıcı ayarı
Xdebug Hata Ayıklayıcı Parametrelerinin Yapılandırılması:
Languages & Frameworks->PHP->Debugbölümüne gidin.XdebugkısmındaDebug Portolarak ilgili PHP sürümüne ait Xdebug portunu girin (ör. PHP 8.3 için39083). Bu portunxdebug.client_portile aynı olduğuna emin olun.Can accept external connectionsseçeneğini işaretleyin.Applyve ardındanOKile kaydedin.
Görsel: PHPStorm’da Xdebug dinlenme portu yapılandırması
PHP Web Sunucusunda Yol Eşlemesi Ayarı:
Languages & Frameworks->PHP->Serversbölümüne gidin.- Sağdaki
+ile bir sunucu ekleyin. - Sunucu adı girin (örn.
ServBay Localhost). Hostolarak ServBay’de tanımlı web sitesi alan adını girin (örn.servbay.demo).Portkısmına sitenin kullandığı portu yazın; genellikle443(HTTPS) veya80(HTTP).DebuggerolarakXdebugseçin.Use path mappingskutusunu işaretleyin.- Yereldeki projenizin yolu (
Yerel kaynak dizini) ile sunucudaki proje yolunun (Sunucudaki mutlak yol) bire bir eşleştiğinden emin olun. Örneğin, projeniz/Applications/ServBay/www/myprojectkonumundaysa vehttps://servbay.demo/adresinden erişiyorsanız, yerel yol/Applications/ServBay/www/myprojectsunucuda/ile eşleşmelidir. Alt alan adında ise mantık aynıdır. Yol eşlemesinin doğruluğu, Xdebug’un sağlıklı çalışmasının anahtarıdır. OKile ayarı kaydedin.
Görsel: PHPStorm’da sunucu ve yol eşleme ayarları
Hata Ayıklama Oturumunu Başlatma:
- PHPStorm’da, hata ayıklamak istediğiniz dosyayı açın.
- Satır numarasının yanında kırmızı bir daireye tıklayarak breakpoint ekleyin.
- Üst araç çubuğundaki
Start Listening for PHP Debug Connections(böcek ikonu) butonuna tıklayın. Yeşil olduğunda PHPStorm dinleme modundadır. - Tarayıcıdan uygulamanıza gidin (örn.
https://servbay.demo/index.php). - Ayarlar eksiksizse, Xdebug otomatik olarak PHPStorm’a bağlanır ve breakpoint’te işlemi durdurur; kodunuzu rahatlıkla inceleyebilirsiniz.
Görsel: PHPStorm’da Xdebug dinleme başlatmak
Visual Studio Code (VS Code)’da Xdebug Yapılandırması
VS Code, eklentiler yardımıyla Xdebug hata ayıklamayı oldukça iyi destekler.
PHP Debug Eklentisini Kurun:
- VS Code’u açın.
- Eklenti görünümüne geçin (
Ctrl+Shift+XveyaCmd+Shift+X). - "PHP Debug" aratıp, Felix Becker’in eklentisini yükleyin.
launch.jsonDosyasını Yapılandırın:- PHP projenizi açın.
- Çalıştır ve Hata Ayıkla görünümüne geçin (
Ctrl+Shift+DveyaCmd+Shift+D). - Üstteki dişli simgesine tıklayıp "PHP" seçin. Proje kök klasöründe
.vscode/launch.jsonoluşacaktır. launch.jsondosyasındaki "Listen for Xdebug" konfigürasyonunda,portdeğerinin ServBay’de etkin PHP sürümünün Xdebug portu ile aynı olduğuna emin olun (örn. PHP 8.3 için39083).- Yol Eşlemesi (Path Mapping) Yapılandırması: VS Code ile Xdebug arasında doğru hata ayıklama için şarttır.
pathMappingskısmında ServBay sunucusundaki proje yolunu, bilgisayarınızdaki proje yoluyla eşleştirin.jsonProje yapınız ve ServBay sitesi ayarınıza uygun şekilde{ "version": "0.2.0", "configurations": [ { "name": "Listen for Xdebug", "type": "php", "request": "launch", "port": 39083, // PHP sürümünüze göre bu portu güncelleyin "pathMappings": { // ServBay kök klasöründeki proje yolu ile bilgisayarınızdaki yolu eşleştirin // Örneğin projeniz /Applications/ServBay/www/myproject üzerinde ve // https://servbay.demo/ adresini kullanıyorsanız, sunucu kökü '/' yerelde proje köküyle eşleşir "/": "${workspaceRoot}" // Eğer /Applications/ServBay/www/myproject ve https://myproject.servbay.demo/ kullanıyorsanız, // yine aynı şekilde '/' kökü proje kökünüze eşleşir // "/": "${workspaceRoot}" // Aynı şekilde geçerli olur } }, { "name": "Launch currently open script", "type": "php", "request": "launch", "program": "${file}", "cwd": "${fileDirname}", "port": 39083 // PHP sürümünüze göre bu portu güncelleyin } ] }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28pathMappingsdeğerini güncelleyin.${workspaceRoot}genellikle VS Code’da açtığınız proje klasörünün köküyle aynıdır.
Hata Ayıklama Oturumunu Başlatın:
- VS Code’da PHP dosyanızı açın.
- Satır numarası yanına tıklayarak breakpoint ekleyin.
- Çalıştır ve Hata Ayıkla görünümüne geçin (
Ctrl+Shift+DveyaCmd+Shift+D). - Üstteki hata ayıklama konfigürasyonlarından "Listen for Xdebug"u seçin.
- Yeşil başlat simgesine tıklayın. VS Code’un alt kısmı turuncuya dönecek; bu, Xdebug isteğini dinlemeye başladığını gösterir.
- Tarayıcıda PHP uygulamanıza erişin; ayarlar doğruysa, Xdebug VS Code’a bağlanır ve breakpoint’te işlemi durdurur.
Sıkça Sorulan Sorular (SSS)
S: Xdebug,
phpinfo()ile görünmüyor mu?- C: ServBay GUI’den veya elle
xdebug.inidosyasından Xdebug’u etkinleştirdiğinizden emin olun. - İlgili PHP servisini yeniden başlattığınızdan emin olun.
xdebug.inidosya yolunun doğru vezend_extension = xdebug.sosatırının aktif olduğundan emin olun.- ServBay günlük dosyalarında (
/Applications/ServBay/logs/php/<sürüm>/error.log) Xdebug yükleme hatası olup olmadığını kontrol edin.
- C: ServBay GUI’den veya elle
S: IDE’de breakpoint ekledim ama program durmuyor?
- C: IDE’nin Xdebug isteği dinlediğinden emin olun (PHPStorm’da böcek ikonu yeşil, VS Code’da alt kısım turuncu).
- IDE’de ayarlanan Xdebug portunun, ServBay’deki
xdebug.client_portve ilgili PHP sürümüne ait port ile aynı olduğuna emin olun. - Yol eşlemelerinin (Path Mapping) IDE’de doğru olduğundan emin olun; sunucu ve yerel proje yolları doğru eşleşmeli. En sık yapılan hata budur.
- Güvenlik duvarının, IDE’nin Xdebug portunu (varsayılan
390xxserisi) engellemediğinden emin olun. xdebug.inidosyasındaxdebug.start_with_request=triggerkullanıyorsanız, tarayıcıda Xdebug Helper eklentisiyle veya URL’ye?XDEBUG_TRIGGER=1ekleyerek tetikleyici göndermelisiniz.
S: Xdebug bağlantısı bir süre sonra kopuyor mu?
- C:
xdebug.inidosyasındaxdebug.remote_autostartveyaxdebug.start_with_requestparametrelerini kontrol edin.yesolarak ayarlanırsa, her istekte hata ayıklama başlayabilir.triggermodunu kullanmak genellikle daha iyidir. - IDE’nin hata ayıklama ayarlarında zaman aşımı süresi varsa, kontrol edin.
- C:
Sonuç
ServBay’in önceden entegre edilmiş ve kolaylaştırılmış Xdebug yapılandırması sayesinde PHP geliştiricileri, Xdebug’u kullanmaya başlamak için karmaşık adımlarla uğraşmak zorunda kalmaz. İster GUI üzerinden sezgisel biçimde, ister yapılandırma dosyasını elle düzenleyerek ServBay’in farklı PHP sürümlerinde Xdebug’u dakikalar içinde etkinleştirebilirsiniz. PHPStorm, VS Code gibi güçlü IDE’lerle birleşen bu esneklik sayesinde, PHP kodunuzu daha hızlı hata ayıklayabilir, performansını analiz edebilir ve kaliteyi güvence altına alabilirsiniz. ServBay ve Xdebug’un birlikte kullanımı, yerel PHP geliştirme iş akışınızda büyük bir avantaj sunar.
