{"id":33021,"date":"2025-10-28T14:31:50","date_gmt":"2025-10-28T11:31:50","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/ddev-ve-lando-yerel-yonlendirme-sihrini-kesfedin\/"},"modified":"2025-10-28T14:31:50","modified_gmt":"2025-10-28T11:31:50","slug":"ddev-ve-lando-yerel-yonlendirme-sihrini-kesfedin","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/ddev-ve-lando-yerel-yonlendirme-sihrini-kesfedin\/","title":{"rendered":"DDEV ve Lando: Yerel Y\u00f6nlendirme Sihrini Ke\u015ffedin"},"content":{"rendered":"<p><body><\/p>\n<p>Geli\u015ftiricilerin kabusu olan karma\u015f\u0131k yerel ortam kurulumlar\u0131na veda edin! DDEV ve Lando, Docker tabanl\u0131 g\u00fc\u00e7l\u00fc y\u00f6nlendirme mekanizmalar\u0131yla projelerinizi an\u0131nda eri\u015filebilir k\u0131lar. Bu makalede, bu ara\u00e7lar\u0131n arkas\u0131ndaki sihirli d\u00fcnyay\u0131, nas\u0131l \u00e7al\u0131\u015ft\u0131klar\u0131n\u0131 ve geli\u015ftirme s\u00fcre\u00e7lerinizi nas\u0131l h\u0131zland\u0131rd\u0131klar\u0131n\u0131 ke\u015ffedin.<\/p>\n<p>Modern yaz\u0131l\u0131m geli\u015ftirme d\u00fcnyas\u0131nda, projenizi \u00fcretim ortam\u0131na benzer bir \u015fekilde yerel makinenizde \u00e7al\u0131\u015ft\u0131rmak, sorunsuz bir geli\u015ftirme s\u00fcreci i\u00e7in hayati \u00f6neme sahiptir. Peki, bu neden bu kadar kritik? Cevap olduk\u00e7a basit: \u201cBenim makinemde \u00e7al\u0131\u015f\u0131yordu!\u201d c\u00fcmlesini duymak istemezsiniz. Geli\u015ftiriciler olarak, genellikle ekip \u00fcyelerinin farkl\u0131 i\u015fletim sistemleri ve farkl\u0131 yaz\u0131l\u0131m versiyonlar\u0131 kullanmas\u0131 gibi durumlarla kar\u015f\u0131la\u015f\u0131r\u0131z. Bu uyumsuzluklar, projeyi bir makineden di\u011ferine ta\u015f\u0131rken, hatta \u00fcretim ortam\u0131na da\u011f\u0131t\u0131rken ciddi ba\u015f a\u011fr\u0131lar\u0131na yol a\u00e7abilir. Bu noktada, yerel geli\u015ftirme ortamlar\u0131 devreye girer ve bize adeta bir can simidi uzat\u0131r.<\/p>\n<p>Yerel geli\u015ftirme ortamlar\u0131, projenizin t\u00fcm ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 (veritabanlar\u0131, web sunucular\u0131, programlama dili versiyonlar\u0131 vb.) tek bir izole ve tutarl\u0131 ortamda bar\u0131nd\u0131rma olana\u011f\u0131 sunar. B\u00f6ylece, her ekip \u00fcyesi ayn\u0131 yap\u0131land\u0131rma \u00fczerinde \u00e7al\u0131\u015f\u0131r, bu da hatalar\u0131 azalt\u0131r ve i\u015fbirli\u011fini kolayla\u015ft\u0131r\u0131r. Docker teknolojisi, bu tutarl\u0131l\u0131\u011f\u0131 sa\u011flaman\u0131n en pop\u00fcler ve etkili yollar\u0131ndan biri haline gelmi\u015ftir. Docker konteynerleri sayesinde, uygulaman\u0131z ve t\u00fcm ba\u011f\u0131ml\u0131l\u0131klar\u0131 k\u00fc\u00e7\u00fck, hafif ve ta\u015f\u0131nabilir paketler halinde izole edilebilir. Bu da geli\u015ftiricilere, projelerini farkl\u0131 platformlarda (yerel makine, test sunucusu, \u00fcretim sunucusu) ayn\u0131 \u015fekilde \u00e7al\u0131\u015ft\u0131rma g\u00fcc\u00fc verir. Konteynerler, bir nevi minyat\u00fcr sanal makineler gibidir, ancak \u00e7ok daha h\u0131zl\u0131 ba\u015flar ve daha az kaynak t\u00fcketirler.<\/p>\n<p>\u0130\u015fte tam bu noktada DDEV ve Lando gibi ara\u00e7lar sahneye \u00e7\u0131k\u0131yor. Her ikisi de Docker&#8217;\u0131n g\u00fcc\u00fcn\u00fc kullanarak, web geli\u015ftiricilerinin yerel ortam kurulumunu basitle\u015ftiren ve otomatikle\u015ftiren ara\u00e7lard\u0131r. Amac\u0131, geli\u015ftiricilerin saatlerce s\u00fcren yap\u0131land\u0131rma i\u015flemleriyle u\u011fra\u015fmak yerine, do\u011frudan kod yazmaya odaklanmalar\u0131n\u0131 sa\u011flamakt\u0131r. Bu ara\u00e7lar, projenize \u00f6zel bir Docker ortam\u0131 olu\u015fturur, gerekli t\u00fcm servisleri (Nginx, PHP-FPM, MySQL\/PostgreSQL vb.) aya\u011fa kald\u0131r\u0131r ve en \u00f6nemlisi, bu servisleri yerel makinenizdeki bir alan ad\u0131 (domain) \u00fczerinden eri\u015filebilir hale getirir. Bu eri\u015filebilirli\u011fi sa\u011flayan mekanizma ise &#8220;routing&#8221; yani y\u00f6nlendirme olarak adland\u0131r\u0131l\u0131r. Y\u00f6nlendirme, belirli bir URL&#8217;yi do\u011fru Docker konteynerine ve do\u011fru servise y\u00f6nlendirerek, taray\u0131c\u0131n\u0131zdan projenize kolayca eri\u015fmenizi sa\u011flar. Karma\u015f\u0131k port numaralar\u0131 veya IP adresleri ezberlemek yerine, \u00f6rne\u011fin <code>http:\/\/projeadi.ddev.site<\/code> veya <code>http:\/\/projeadi.lndo.site<\/code> gibi anla\u015f\u0131l\u0131r adresler kullanabilirsiniz. Bu, geli\u015ftirme deneyimini b\u00fcy\u00fck \u00f6l\u00e7\u00fcde iyile\u015ftirir ve projeler aras\u0131nda ge\u00e7i\u015f yapmay\u0131 son derece pratik hale getirir.<\/p>\n<h2>DDEV&#8217;in Routing Mekanizmas\u0131: Traefik ve DNS \u00c7\u00f6z\u00fcmlemesi Nas\u0131l \u0130\u015fler?<\/h2>\n<p>DDEV, yerel geli\u015ftirme ortamlar\u0131n\u0131z\u0131 olu\u015ftururken ve y\u00f6netirken, projelerinize otomatik olarak alan adlar\u0131 (domainler) atayarak eri\u015filebilirli\u011fi sa\u011flayan olduk\u00e7a sofistike bir y\u00f6nlendirme sistemine sahiptir. Bu sistemin kalbinde Traefik ad\u0131nda g\u00fc\u00e7l\u00fc bir ters proxy ve dinamik y\u00f6nlendirme arac\u0131 ile DDEV&#8217;in kendi yerel DNS \u00e7\u00f6z\u00fcm\u00fc yatar. DDEV, varsay\u0131lan olarak <code>.ddev.site<\/code> uzant\u0131l\u0131 yerel alan adlar\u0131 kullan\u0131r, \u00f6rne\u011fin bir Drupal projesi i\u00e7in <code>http:\/\/drupalprojesi.ddev.site<\/code> gibi bir adres otomatik olarak olu\u015fturulur.<\/p>\n<p>Peki, bu sihir nas\u0131l ger\u00e7ekle\u015fiyor? \u0130lk olarak, DDEV sisteminize \u00f6zel bir yerel DNS servisi kurar (Windows ve macOS&#8217;ta <a href=\"https:\/\/dnsmasq.org\/\">dnsmasq<\/a> veya kendi i\u00e7 mekanizmas\u0131, Linux&#8217;ta genellikle sistemin yerel DNS ayarlar\u0131 kullan\u0131l\u0131r). Bu servis, t\u00fcm <code>*.ddev.site<\/code> isteklerini yerel makinenizin IP adresine (genellikle 127.0.0.1) y\u00f6nlendirir. Taray\u0131c\u0131n\u0131z bir <code>.ddev.site<\/code> adresine eri\u015fmeye \u00e7al\u0131\u015ft\u0131\u011f\u0131nda, bu DNS servisi iste\u011fi yakalar ve DDEV&#8217;in \u00e7al\u0131\u015ft\u0131\u011f\u0131 yere g\u00f6nderir. Ayn\u0131 zamanda DDEV, yerel geli\u015ftirme ortam\u0131n\u0131z i\u00e7in otomatik ve g\u00fcvenli SSL sertifikalar\u0131 olu\u015fturmak \u00fczere <a href=\"https:\/\/mkcert.dev\/\">mkcert<\/a> arac\u0131n\u0131 kullan\u0131r, b\u00f6ylece projelerinize <code>https:\/\/<\/code> \u00fczerinden de sorunsuzca eri\u015febilirsiniz.<\/p>\n<div class=\"expert-tip\">\n        Uzman \u0130pucu: DDEV&#8217;in kulland\u0131\u011f\u0131 yerel DNS servisi sayesinde, farkl\u0131 DDEV projeleriniz birbirinden ba\u011f\u0131ms\u0131z olarak ayn\u0131 anda \u00e7al\u0131\u015fabilir ve her birine benzersiz bir <code>.ddev.site<\/code> adresi \u00fczerinden eri\u015febilirsiniz. Bu, \u00e7oklu proje geli\u015ftirenler i\u00e7in muazzam bir kolayl\u0131kt\u0131r.\n    <\/div>\n<p>\u0130kinci a\u015famada, DDEV, Docker konteynerleri aras\u0131nda bir k\u00f6pr\u00fc g\u00f6revi g\u00f6ren Traefik&#8217;i kullan\u0131r. Traefik, Docker soketini dinleyerek yeni konteynerler ba\u015flat\u0131ld\u0131\u011f\u0131nda veya durduruldu\u011funda otomatik olarak alg\u0131lar. Bir DDEV projesi (\u00f6rne\u011fin bir Nginx web sunucusu konteyneri) ba\u015flat\u0131ld\u0131\u011f\u0131nda, DDEV bu konteynere belirli etiketler (labels) ekler. Bu etiketler, Traefik&#8217;e hangi gelen isteklerin hangi konteynere y\u00f6nlendirilmesi gerekti\u011fini bildirir. \u00d6rne\u011fin, <code>http:\/\/projeadi.ddev.site<\/code> adresine gelen bir iste\u011fin hangi Nginx konteynerine gitmesi gerekti\u011fini Traefik bu etiketler arac\u0131l\u0131\u011f\u0131yla anlar. Traefik, bu etiketlere dayanarak dinamik olarak y\u00f6nlendirme kurallar\u0131 olu\u015fturur ve gelen HTTP\/HTTPS isteklerini ilgili projenin web sunucusu konteynerine (genellikle Nginx veya Apache) y\u00f6nlendirir.<\/p>\n<p><code>ddev start<\/code> komutunu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda, DDEV arka planda \u015funlar\u0131 yapar:<\/p>\n<ol>\n<li>Projeniz i\u00e7in gerekli Docker konteynerlerini (web sunucusu, PHP, veritaban\u0131 vb.) olu\u015fturur ve ba\u015flat\u0131r.<\/li>\n<li>Yerel DNS kayd\u0131n\u0131 g\u00fcnceller veya do\u011frular.<\/li>\n<li>Traefik proxy&#8217;sini ve SSL sertifikalar\u0131n\u0131 y\u00f6netir.<\/li>\n<li>Projenizin varsay\u0131lan URL&#8217;lerini (hem HTTP hem de HTTPS i\u00e7in) size bildirir.<\/li>\n<\/ol>\n<p>Bu komutun \u00e7\u0131kt\u0131s\u0131nda, projenizin eri\u015filebilir oldu\u011fu URL&#8217;leri g\u00f6receksiniz. \u00d6rne\u011fin:<\/p>\n<pre><code>\n    $ ddev start\n    Starting ddev-router ... done\n    Starting projeadi ... done\n    Your project can be reached at https:\/\/projeadi.ddev.site or http:\/\/projeadi.ddev.site\n    <\/pre>\n<p><\/code><\/p>\n<p>Ayr\u0131ca, <code>ddev describe<\/code> komutu ile projenizin t\u00fcm detaylar\u0131n\u0131, URL'leri ve servis bilgilerini g\u00f6r\u00fcnt\u00fcleyebilirsiniz. <code>ddev router status<\/code> ise Traefik y\u00f6nlendiricisinin genel durumunu ve hangi projeleri y\u00f6nlendirdi\u011fini g\u00f6sterir. Bu komutlar, y\u00f6nlendirme sorunlar\u0131n\u0131 gidermek i\u00e7in olduk\u00e7a faydal\u0131d\u0131r. DDEV'in bu entegre ve otomatik y\u00f6nlendirme sistemi, geli\u015ftiricilerin karma\u015f\u0131k a\u011f yap\u0131land\u0131rmalar\u0131yla u\u011fra\u015fmadan an\u0131nda kod yazmaya ba\u015flamas\u0131n\u0131 sa\u011flar, b\u00f6ylece \u00fcretkenli\u011fi art\u0131r\u0131r.<\/p>\n<h3>Bir DDEV Projesinde \u00d6zel Y\u00f6nlendirme Kurallar\u0131 Tan\u0131mlamak M\u00fcmk\u00fcn m\u00fc?<\/h3>\n<p>DDEV'in otomatik y\u00f6nlendirme mekanizmas\u0131 genellikle \u00e7o\u011fu senaryo i\u00e7in yeterli olsa da, bazen projenizin \u00f6zel ihtiya\u00e7lar\u0131 do\u011frultusunda ek alan adlar\u0131 veya farkl\u0131 y\u00f6nlendirme kurallar\u0131 tan\u0131mlaman\u0131z gerekebilir. DDEV, bu t\u00fcr esnekli\u011fi sa\u011flamak i\u00e7in \u00e7e\u015fitli yap\u0131land\u0131rma se\u00e7enekleri sunar.<\/p>\n<p>En basit y\u00f6ntemlerden biri, projenizin <code>.ddev\/config.yaml<\/code> dosyas\u0131na <code>additional_hostnames<\/code> ve <code>additional_urls<\/code> eklemektir. <code>additional_hostnames<\/code>, <code>.ddev.site<\/code> uzant\u0131l\u0131 ek alan adlar\u0131 tan\u0131mlaman\u0131za olanak tan\u0131rken, <code>additional_urls<\/code> ise farkl\u0131 bir \u00fcst seviye alan ad\u0131 (TLD) ile \u00f6zel bir URL olu\u015fturman\u0131z\u0131 sa\u011flar. \u00d6rne\u011fin, bir projenin hem ana alan ad\u0131 hem de bir \"test\" alt alan ad\u0131 \u00fczerinden eri\u015filebilir olmas\u0131n\u0131 istiyorsan\u0131z, <code>config.yaml<\/code> dosyan\u0131z\u0131 a\u015fa\u011f\u0131daki gibi d\u00fczenleyebilirsiniz:<\/p>\n<pre><code>\n    # .ddev\/config.yaml\n    name: my-project\n    type: php\n    docroot: web\n    additional_hostnames:\n      - test.my-project\n      - staging.my-project\n    additional_urls:\n      - https:\/\/ozel-url.local\n    <\/pre>\n<p><\/code><\/p>\n<p>Bu yap\u0131land\u0131rmay\u0131 uygulad\u0131ktan sonra <code>ddev restart<\/code> komutunu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda, DDEV bu yeni hostnameleri ve URL'leri Traefik'e ekleyerek projenize <code>https:\/\/test.my-project.ddev.site<\/code> veya <code>https:\/\/ozel-url.local<\/code> gibi adresler \u00fczerinden eri\u015febilmenizi sa\u011flayacakt\u0131r. Bu, \u00f6zellikle \u00e7oklu dil deste\u011fi olan uygulamalar veya API alt alan adlar\u0131 gerektiren projeler i\u00e7in kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<p>Daha ileri d\u00fczey \u00f6zelle\u015ftirmeler i\u00e7in, DDEV'in Nginx veya Apache web sunucusu yap\u0131land\u0131rmalar\u0131n\u0131 ge\u00e7ersiz k\u0131labilirsiniz. Projenizin <code>.ddev<\/code> dizini alt\u0131nda <code>nginx_full<\/code> veya <code>apache_full<\/code> dizinleri olu\u015fturarak, varsay\u0131lan yap\u0131land\u0131rma dosyalar\u0131n\u0131 (\u00f6rne\u011fin <code>nginx-site.conf<\/code>) kopyalayabilir ve \u00fczerinde de\u011fi\u015fiklikler yapabilirsiniz. Bu y\u00f6ntem, proxy y\u00f6nlendirme kurallar\u0131, ek Nginx location bloklar\u0131 veya \u00f6zel PHP-FPM havuzlar\u0131 gibi daha spesifik sunucu d\u00fczeyinde y\u00f6nlendirme veya yap\u0131land\u0131rma de\u011fi\u015fiklikleri gerekti\u011finde devreye girer. \u00d6rne\u011fin, projenizin belirli bir alt dizinine (sub-directory) gelen istekleri farkl\u0131 bir PHP uygulamas\u0131na y\u00f6nlendirmek isteyebilirsiniz:<\/p>\n<pre><code>\n    # .ddev\/nginx_full\/nginx-site.conf\n    server {\n        listen 80;\n        listen 443 ssl;\n        server_name _;\n\n        ssl_certificate \/etc\/nginx\/certs\/host.crt;\n        ssl_certificate_key \/etc\/nginx\/certs\/host.key;\n\n        root \/var\/www\/html\/web;\n        index index.php index.html index.htm;\n\n        location \/ {\n            try_files $uri $uri\/ \/index.php?$query_string;\n        }\n\n        # \/api yolu alt\u0131ndaki istekleri farkl\u0131 bir PHP dosyas\u0131na y\u00f6nlendir\n        location ~ ^\/api\/(.*)$ {\n            try_files $uri $uri\/ \/api\/index.php?$query_string;\n            fastcgi_pass unix:\/var\/run\/php-fpm.sock;\n            fastcgi_index index.php;\n            include fastcgi_params;\n            fastcgi_param SCRIPT_FILENAME $document_root\/api\/index.php;\n        }\n\n        location ~ \\.php$ {\n            try_files $uri =404;\n            fastcgi_pass unix:\/var\/run\/php-fpm.sock;\n            fastcgi_index index.php;\n            include fastcgi_params;\n            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\n        }\n    }\n    <\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnekte, <code>\/api<\/code> ile ba\u015flayan t\u00fcm istekler, k\u00f6k dizindeki <code>index.php<\/code> yerine <code>\/api\/index.php<\/code> dosyas\u0131na y\u00f6nlendirilir. Bu t\u00fcr detayl\u0131 kontrol, \u00f6zellikle mikroservis mimarileri veya karma\u015f\u0131k \u00f6n y\u00fcz\/arka y\u00fcz ay\u0131r\u0131mlar\u0131 olan uygulamalar geli\u015ftirirken paha bi\u00e7ilmezdir. DDEV'in otomatik SSL sertifikas\u0131 y\u00f6netimi sayesinde, \u00f6zel alan adlar\u0131n\u0131z i\u00e7in bile g\u00fcvenli HTTPS eri\u015fimine sahip olursunuz, bu da modern web geli\u015ftirme standartlar\u0131na tamamen uyum sa\u011flar. Bu geli\u015fmi\u015f yap\u0131land\u0131rmalar, DDEV'i sadece basit projeler i\u00e7in de\u011fil, ayn\u0131 zamanda en karma\u015f\u0131k yerel geli\u015ftirme ortam\u0131 ihtiya\u00e7lar\u0131n\u0131 kar\u015f\u0131layabilecek esnek bir ara\u00e7 haline getirir.<\/p>\n<h2>Lando'nun Esnek Y\u00f6nlendirme Yakla\u015f\u0131m\u0131: Proxy'ler ve Dinamik Domainler<\/h2>\n<p>Lando, DDEV gibi, yerel geli\u015ftirme ortamlar\u0131n\u0131z\u0131 Docker \u00fczerinde kurman\u0131za olanak tan\u0131yan bir ba\u015fka pop\u00fcler ara\u00e7t\u0131r. Ancak, y\u00f6nlendirme ve proje yap\u0131land\u0131rmas\u0131na yakla\u015f\u0131m\u0131 biraz farkl\u0131 bir felsefeye sahiptir, bu da ona kendine \u00f6zg\u00fc bir esneklik kazand\u0131r\u0131r. Lando'nun routing mekanizmas\u0131n\u0131n merkezinde, projenizin k\u00f6k dizinindeki <code>.lando.yml<\/code> yap\u0131land\u0131rma dosyas\u0131 ve Lando'nun kendi yerel proxy servisi bulunur.<\/p>\n<p>Lando, projelerinizi ba\u015flat\u0131rken yine kendi yerel DNS \u00e7\u00f6z\u00fcm\u00fcn\u00fc kullan\u0131r. DDEV'de oldu\u011fu gibi, Lando da <a href=\"https:\/\/mkcert.dev\/\">mkcert<\/a> kullanarak projeleriniz i\u00e7in otomatik olarak SSL sertifikalar\u0131 olu\u015fturur ve <code>.lndo.site<\/code> uzant\u0131l\u0131 alan adlar\u0131 atar. \u00d6rne\u011fin, bir Node.js projesi i\u00e7in <code>http:\/\/nodejs-app.lndo.site<\/code> gibi bir adres otomatik olarak olu\u015fturulur. Lando, bu alan adlar\u0131n\u0131 sisteminizin ana bilgisayar dosyas\u0131na veya kendi i\u00e7 DNS servisine ekleyerek, taray\u0131c\u0131n\u0131zdan bu adreslere do\u011frudan eri\u015fim sa\u011flar. Bu da, geli\u015ftiricinin her seferinde bir IP adresi veya port numaras\u0131 hat\u0131rlamas\u0131na gerek kalmadan projelere rahat\u00e7a ge\u00e7i\u015f yapmas\u0131n\u0131 m\u00fcmk\u00fcn k\u0131lar.<\/p>\n<div class=\"expert-tip\">\n        Uzman \u0130pucu: Lando'nun <code>.lndo.site<\/code> alan adlar\u0131, farkl\u0131 projelerinizi ayn\u0131 anda \u00e7al\u0131\u015ft\u0131r\u0131rken \u00e7ak\u0131\u015fmalar\u0131 \u00f6nlemek i\u00e7in benzersizdir. Her projenin kendi izole ortam\u0131 ve kendi eri\u015fim noktas\u0131 vard\u0131r.\n    <\/div>\n<p>Lando'nun y\u00f6nlendirme mimarisi, DDEV'in Traefik yakla\u015f\u0131m\u0131ndan biraz farkl\u0131d\u0131r. Lando, her servis i\u00e7in ayr\u0131 ayr\u0131 proxy kurallar\u0131 tan\u0131mlaman\u0131za olanak tan\u0131yan daha do\u011frudan bir proxy servisi kullan\u0131r. Bu proxy kurallar\u0131, <code>.lando.yml<\/code> dosyas\u0131ndaki <code>proxy<\/code> anahtar\u0131 alt\u0131nda tan\u0131mlan\u0131r. Bir Lando projesi ba\u015flat\u0131ld\u0131\u011f\u0131nda (<code>lando start<\/code> komutu ile), Lando, Docker konteynerlerini olu\u015fturur ve ard\u0131ndan bu <code>proxy<\/code> yap\u0131land\u0131rmas\u0131n\u0131 kullanarak gelen HTTP\/HTTPS isteklerini do\u011fru servise ve do\u011fru porta y\u00f6nlendiren bir proxy katman\u0131 kurar.<\/p>\n<p>\u00d6rne\u011fin, bir projeniz hem bir web sunucusu (Nginx) hem de bir API servisi (Node.js) i\u00e7eriyorsa, <code>.lando.yml<\/code> dosyan\u0131zda bunlar\u0131 ayr\u0131 ayr\u0131 y\u00f6nlendirebilirsiniz:<\/p>\n<pre><code>\n    # .lando.yml\n    name: my-multi-service-app\n    services:\n      appserver:\n        type: nginx\n        # ... di\u011fer ayarlar ...\n      nodejs:\n        type: node:16\n        ports:\n          - 3000\n        # ... di\u011fer ayarlar ...\n    proxy:\n      appserver:\n        - my-multi-service-app.lndo.site\n        - www.my-multi-service-app.lndo.site\n      nodejs:\n        - api.my-multi-service-app.lndo.site\n        - node.my-multi-service-app.lndo.site\n    <\/pre>\n<p><\/code><\/p>\n<p>Bu yap\u0131land\u0131rma ile, <code>my-multi-service-app.lndo.site<\/code> adresine gelen istekler Nginx servisine y\u00f6nlendirilirken, <code>api.my-multi-service-app.lndo.site<\/code> adresine gelen istekler Node.js servisine (i\u00e7eride 3000 portunda \u00e7al\u0131\u015f\u0131yor olsa bile) y\u00f6nlendirilecektir. Lando, bu karma\u015f\u0131k y\u00f6nlendirme mant\u0131\u011f\u0131n\u0131 sizin i\u00e7in otomatik olarak y\u00f6netir. <code>lando info<\/code> komutu, projenizle ili\u015fkili t\u00fcm servisleri, portlar\u0131 ve en \u00f6nemlisi eri\u015filebilir URL'leri size g\u00f6sterir. Bu komutun \u00e7\u0131kt\u0131s\u0131, \u00f6zellikle \u00e7oklu servisli uygulamalarla \u00e7al\u0131\u015f\u0131rken hangi URL'nin hangi servise kar\u015f\u0131l\u0131k geldi\u011fini anlamak i\u00e7in hayati \u00f6neme sahiptir. Lando'nun bu esnek ve a\u00e7\u0131k yap\u0131land\u0131rma yakla\u015f\u0131m\u0131, karma\u015f\u0131k mimarilere sahip projelerde geli\u015ftiricilere b\u00fcy\u00fck kontrol ve \u015feffafl\u0131k sa\u011flar. Bu, mikroservis tabanl\u0131 uygulamalar veya \u00f6zel portlarda \u00e7al\u0131\u015fan \u00e7e\u015fitli arka u\u00e7 servisleri entegre eden projeler i\u00e7in \u00f6zellikle faydal\u0131d\u0131r.<\/p>\n<h3>Lando ile Karma\u015f\u0131k Uygulama Topolojilerini Y\u00f6nlendirme \u0130pu\u00e7lar\u0131 Nelerdir?<\/h3>\n<p>Lando'nun <code>.lando.yml<\/code> dosyas\u0131, karma\u015f\u0131k uygulama topolojileri i\u00e7in y\u00f6nlendirme kurallar\u0131n\u0131 inan\u0131lmaz derecede esnek bir \u015fekilde tan\u0131mlaman\u0131za olanak tan\u0131r. \u00d6zellikle \u00e7oklu servislerin bir arada \u00e7al\u0131\u015ft\u0131\u011f\u0131, farkl\u0131 portlar kullanan veya harici servislerle entegrasyon gerektiren senaryolarda Lando'nun proxy yap\u0131land\u0131rmas\u0131 size tam kontrol sa\u011flar.<\/p>\n<p>Bir uygulaman\u0131n farkl\u0131 bile\u015fenleri farkl\u0131 portlarda \u00e7al\u0131\u015fabilir. \u00d6rne\u011fin, bir Frontend (React\/Vue) geli\u015ftirme sunucusu 3000 portunda, bir Backend API (Node.js\/Python) 8000 portunda \u00e7al\u0131\u015f\u0131yor olabilir. Lando'nun <code>proxy<\/code> ayar\u0131 ile bu servisleri farkl\u0131 alt alan adlar\u0131na y\u00f6nlendirebilirsiniz:<\/p>\n<pre><code>\n    # .lando.yml\n    name: frontend-backend-app\n    services:\n      frontend:\n        type: node:16\n        command: \"npm start\" # Varsay\u0131lan olarak 3000 portunda \u00e7al\u0131\u015f\u0131r\n        ports:\n          - 3000\n      backend:\n        type: node:16\n        command: \"npm run start-api\" # Varsay\u0131lan olarak 8000 portunda \u00e7al\u0131\u015f\u0131r\n        ports:\n          - 8000\n    proxy:\n      frontend:\n        - frontend.frontend-backend-app.lndo.site\n      backend:\n        - api.frontend-backend-app.lndo.site\n    <\/pre>\n<p><\/code><\/p>\n<p>Bu yap\u0131land\u0131rma ile <code>frontend.frontend-backend-app.lndo.site<\/code> adresinden \u00f6n y\u00fcz uygulaman\u0131za, <code>api.frontend-backend-app.lndo.site<\/code> adresinden ise arka y\u00fcz API'nize eri\u015febilirsiniz. Lando, i\u00e7 proxy'leri kullanarak do\u011fru portlara y\u00f6nlendirme i\u015flemini otomatik olarak yapar.<\/p>\n<p>Bazen Lando ortam\u0131n\u0131z\u0131n d\u0131\u015f\u0131ndaki servislere eri\u015fmeniz gerekebilir (\u00f6rne\u011fin, yerel makinenizde \u00e7al\u0131\u015fan \u00f6zel bir servis veya uzak bir API). Lando'nun <code>tooling<\/code> ve <code>events<\/code> mekanizmalar\u0131 ile bu t\u00fcr entegrasyonlar\u0131 otomatikle\u015ftirebilirsiniz. Ancak do\u011frudan y\u00f6nlendirme i\u00e7in, Docker'\u0131n a\u011f \u00f6zelliklerini veya Lando servislerini uygun \u015fekilde yap\u0131land\u0131rman\u0131z gerekebilir. \u00d6rne\u011fin, bir servisin ba\u015fka bir servisle konu\u015fabilmesi i\u00e7in Lando'nun sa\u011flad\u0131\u011f\u0131 servis adlar\u0131n\u0131 (\u00f6rne\u011fin <code>backend<\/code> servisi i\u00e7erisinden <code>frontend<\/code> servisine <code>http:\/\/frontend:3000<\/code> ile eri\u015fim) kullanmak esast\u0131r.<\/p>\n<p>Karma\u015f\u0131k projelerde, Lando'nun <code>router<\/code> yap\u0131land\u0131rmas\u0131 daha ince ayarlar yapman\u0131za olanak tan\u0131r. \u00d6rne\u011fin, belirli bir URL desenini yakalay\u0131p ba\u015fka bir Lando servisine veya hatta harici bir URL'ye y\u00f6nlendirebilirsiniz. Bu, \u00f6zellikle eski bir sistemi yeni bir mikroservis ile entegre ederken veya farkl\u0131 URL yap\u0131land\u0131rmalar\u0131na sahip servisleri birle\u015ftirirken \u00e7ok i\u015fe yarar. Lando'nun bu d\u00fczeydeki esnekli\u011fi, geli\u015ftiricilerin en karma\u015f\u0131k geli\u015ftirme ortamlar\u0131n\u0131 bile kolayca kurup y\u00f6netmelerine olanak tan\u0131r, bu da daha h\u0131zl\u0131 geli\u015ftirme d\u00f6ng\u00fcleri ve daha az yap\u0131land\u0131rma ba\u015f a\u011fr\u0131s\u0131 anlam\u0131na gelir.<\/p>\n<h2>DDEV ve Lando Routing: Temel Farklar ve Ortak Y\u00f6nler Nelerdir?<\/h2>\n<p>DDEV ve Lando, her ikisi de Docker tabanl\u0131 yerel geli\u015ftirme ortam\u0131 ara\u00e7lar\u0131 olup, geli\u015ftiricilerin hayat\u0131n\u0131 kolayla\u015ft\u0131rmak i\u00e7in tasarlanm\u0131\u015ft\u0131r. Ancak y\u00f6nlendirme mekanizmalar\u0131, yap\u0131land\u0131rma yakla\u015f\u0131mlar\u0131 ve genel felsefeleri a\u00e7\u0131s\u0131ndan baz\u0131 \u00f6nemli farklar bar\u0131nd\u0131r\u0131rlar. Bu farklar\u0131 ve ortak y\u00f6nleri anlamak, hangi arac\u0131n projenizin ve ekibinizin ihtiya\u00e7lar\u0131na daha uygun oldu\u011funa karar vermenize yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<h3>Y\u00f6nlendirme Mekanizmalar\u0131ndaki Farkl\u0131l\u0131klar:<\/h3>\n<ul>\n<li>\n            <strong>DDEV (Traefik Odakl\u0131):<\/strong> DDEV, dinamik bir ters proxy olan <a href=\"https:\/\/traefik.io\/\">Traefik<\/a>'i kullan\u0131r. Traefik, Docker soketini dinleyerek yeni DDEV projeleri ba\u015flat\u0131ld\u0131\u011f\u0131nda otomatik olarak y\u00f6nlendirme kurallar\u0131 olu\u015fturur. Bu, DDEV'in \"tak ve \u00e7al\u0131\u015ft\u0131r\" (plug-and-play) yakla\u015f\u0131m\u0131n\u0131n temelidir. Projenizi ba\u015flatt\u0131\u011f\u0131n\u0131z anda, <code>.ddev.site<\/code> uzant\u0131l\u0131 bir URL ile ona eri\u015febilirsiniz. Traefik, \u00f6zellikle birden fazla DDEV projesini ayn\u0131 anda \u00e7al\u0131\u015ft\u0131ran ve bunlar aras\u0131nda sorunsuz ge\u00e7i\u015f yapmak isteyen geli\u015ftiriciler i\u00e7in \u00e7ok etkilidir. DDEV'in router'\u0131 merkezi bir Traefik konteyneri olarak \u00e7al\u0131\u015f\u0131r ve t\u00fcm DDEV projelerinden gelen trafi\u011fi y\u00f6netir.\n        <\/li>\n<li>\n            <strong>Lando (\u00d6zel Proxy ve Yap\u0131land\u0131rma Odakl\u0131):<\/strong> Lando, kendi i\u00e7 proxy servisini kullan\u0131r ve bu proxy'nin kurallar\u0131 <code>.lando.yml<\/code> dosyas\u0131nda a\u00e7\u0131k\u00e7a tan\u0131mlan\u0131r. Bu, Lando'ya daha fazla yap\u0131land\u0131rma esnekli\u011fi sa\u011flar. Geli\u015ftiriciler, hangi servisin hangi URL \u00fczerinden eri\u015filece\u011fini ayr\u0131nt\u0131l\u0131 olarak belirleyebilir. Bu yakla\u015f\u0131m, mikroservisler gibi birden fazla servisin farkl\u0131 alt alan adlar\u0131 veya portlar \u00fczerinden eri\u015fildi\u011fi karma\u015f\u0131k uygulama topolojileri i\u00e7in idealdir. Her projenin kendi proxy yap\u0131land\u0131rmas\u0131 oldu\u011fu i\u00e7in, Lando daha \"proje bazl\u0131\" bir y\u00f6nlendirme kontrol\u00fc sunar.\n        <\/li>\n<\/ul>\n<h3>Yap\u0131land\u0131rma Yakla\u015f\u0131mlar\u0131:<\/h3>\n<ul>\n<li>\n            <strong>DDEV:<\/strong> Daha \u00e7ok varsay\u0131lanlara dayal\u0131d\u0131r ve minimum yap\u0131land\u0131rma ile maksimum i\u015flevsellik sunar. <code>config.yaml<\/code> dosyas\u0131nda temel ayarlamalar (PHP versiyonu, veritaban\u0131 tipi vb.) yap\u0131l\u0131r. Y\u00f6nlendirme i\u00e7in <code>additional_hostnames<\/code> ve <code>additional_urls<\/code> gibi basit se\u00e7enekler bulunur. Daha derinlemesine de\u011fi\u015fiklikler i\u00e7in Nginx\/Apache override'lar\u0131 kullan\u0131l\u0131r. Bu, \"h\u0131zl\u0131 ba\u015flang\u0131\u00e7\" yapmak isteyen veya Drupal, WordPress gibi pop\u00fcler CMS'lerle \u00e7al\u0131\u015fan geli\u015ftiriciler i\u00e7in m\u00fckemmeldir.\n        <\/li>\n<li>\n            <strong>Lando:<\/strong> Daha \"a\u00e7\u0131k\" ve deklaratif bir <a href=\"https:\/\/docs.lando.dev\/\"><code>.lando.yml<\/code><\/a> dosyas\u0131na sahiptir. T\u00fcm servisler, ba\u011f\u0131ml\u0131l\u0131klar ve y\u00f6nlendirme kurallar\u0131 bu YAML dosyas\u0131nda detayl\u0131 bir \u015fekilde tan\u0131mlan\u0131r. Bu, Lando'ya daha y\u00fcksek d\u00fczeyde \u00f6zelle\u015ftirme ve kontrol olana\u011f\u0131 tan\u0131r. Karma\u015f\u0131k ve \u00f6zel yaz\u0131l\u0131m y\u0131\u011f\u0131nlar\u0131 olan projelerde veya birden fazla servisi bir araya getiren uygulamalarda Lando'nun bu esnekli\u011fi \u00f6ne \u00e7\u0131kar.\n        <\/li>\n<\/ul>\n<h3>Ortak G\u00fc\u00e7l\u00fc Y\u00f6nler:<\/h3>\n<p>Her iki ara\u00e7 da Docker'\u0131n sundu\u011fu konteynerizasyonun faydalar\u0131n\u0131 sonuna kadar kullan\u0131r. Bu ortak y\u00f6nler \u015funlar\u0131 i\u00e7erir:<\/p>\n<ul>\n<li>\n            <strong>Tutarl\u0131l\u0131k:<\/strong> Geli\u015ftirme, test ve \u00fcretim ortamlar\u0131 aras\u0131nda tutarl\u0131l\u0131\u011f\u0131 sa\u011flar.\n        <\/li>\n<li>\n            <strong>\u0130zolasyon:<\/strong> Her proje kendi ba\u011f\u0131ms\u0131z ortam\u0131nda \u00e7al\u0131\u015f\u0131r, ba\u011f\u0131ml\u0131l\u0131k \u00e7ak\u0131\u015fmalar\u0131n\u0131 \u00f6nler.\n        <\/li>\n<li>\n            <strong>Otomatik SSL:<\/strong> Her ikisi de <a href=\"https:\/\/mkcert.dev\/\">mkcert<\/a> kullanarak yerel HTTPS sertifikalar\u0131n\u0131 otomatik olarak olu\u015fturur ve y\u00f6netir. Bu, modern web geli\u015ftirme i\u00e7in kritik \u00f6neme sahiptir.\n        <\/li>\n<li>\n            <strong>Kullan\u0131m Kolayl\u0131\u011f\u0131:<\/strong> Karma\u015f\u0131k Docker komutlar\u0131n\u0131 soyutlayarak basit CLI komutlar\u0131 (<code>ddev start<\/code>, <code>lando start<\/code>) ile ortam y\u00f6netimini basitle\u015ftirir.\n        <\/li>\n<li>\n            <strong>Topluluk Deste\u011fi:<\/strong> Her iki arac\u0131n da b\u00fcy\u00fck ve aktif topluluklar\u0131 vard\u0131r, bu da sorun giderme ve kaynak bulma konusunda yard\u0131mc\u0131 olur.\n        <\/li>\n<\/ul>\n<p>Sonu\u00e7 olarak, DDEV genellikle daha \"out-of-the-box\" bir deneyim arayan, standart CMS projeleriyle \u00e7al\u0131\u015fan veya birden fazla projeyi h\u0131zla y\u00f6netmesi gereken geli\u015ftiriciler i\u00e7in tercih edilirken; Lando, daha karma\u015f\u0131k, \u00f6zel y\u0131\u011f\u0131nlara sahip projeler veya mikroservis mimarileri \u00fczerinde tam kontrol isteyen geli\u015ftiricilere hitap eder. Her ikisi de yerel y\u00f6nlendirme konusunda geli\u015ftiricilere b\u00fcy\u00fck kolayl\u0131klar sunar, sadece projenizin ve i\u015f ak\u0131\u015f\u0131n\u0131z\u0131n gereksinimlerine en uygun olan\u0131 se\u00e7mek kal\u0131r.<\/p>\n<div class=\"expert-tip\">\n        Uzman \u0130pucu: Mobil cihazlar\u0131n\u0131zdan DDEV veya Lando projelerinize eri\u015fmek i\u00e7in, cihaz\u0131n\u0131z\u0131n DNS ayarlar\u0131n\u0131, projenizi \u00e7al\u0131\u015ft\u0131ran bilgisayar\u0131n IP adresini i\u015faret edecek \u015fekilde yap\u0131land\u0131rabilir veya DDEV'in <code>ddev share<\/code> komutu gibi \u00f6zelliklerini kullanabilirsiniz.<\/p>\n<pre><code>\n        \/* \u00d6rnek Mobil Uyumlu CSS \u0130\u00e7in Media Query *\/\n        <style>\n          body { font-family: Arial, sans-serif; }\n          .container { width: 90%; margin: 0 auto; padding: 15px; }\n\n          @media (max-width: 768px) {\n            h2 { font-size: 1.5em; }\n            p { font-size: 0.9em; }\n            .container { width: 95%; padding: 10px; }\n          }\n        <\/style>\n        <\/pre>\n<p><\/code>\n    <\/div>\n<h2>Ger\u00e7ek D\u00fcnya Senaryolar\u0131nda DDEV ve Lando Routing: Vaka Analizleri<\/h2>\n<p>Teorik bilgiler \u00f6nemlidir, ancak DDEV ve Lando'nun y\u00f6nlendirme yeteneklerinin ger\u00e7ek d\u00fcnya senaryolar\u0131nda nas\u0131l bir fark yaratt\u0131\u011f\u0131n\u0131 g\u00f6rmek, bu ara\u00e7lar\u0131n de\u011ferini daha iyi anlamam\u0131z\u0131 sa\u011flar. \u0130\u015fte iki farkl\u0131 vaka analizi, bu ara\u00e7lar\u0131n karma\u015f\u0131k geli\u015ftirme ihtiya\u00e7lar\u0131na nas\u0131l \u00e7\u00f6z\u00fcm sundu\u011funu g\u00f6steriyor.<\/p>\n<h3>Vaka 1: Mikroservis Tabanl\u0131 Bir Uygulama ile Lando'nun Proxy Esnekli\u011fi<\/h3>\n<p>Bir e-ticaret platformu geli\u015ftiren \"InnovateTech\" ekibi, projelerini mikroservis mimarisi \u00fczerine kurmaya karar verdi. Uygulama, sipari\u015f y\u00f6netimi, \u00fcr\u00fcn kataloglama, kullan\u0131c\u0131 kimlik do\u011frulamas\u0131 ve bir \u00f6n y\u00fcz (Single Page Application - SPA) olmak \u00fczere d\u00f6rt ana servisten olu\u015fuyordu. Her servis farkl\u0131 bir teknoloji y\u0131\u011f\u0131n\u0131 (Node.js, Python\/Django, PHP\/Laravel) kullan\u0131yor ve kendi i\u00e7inde farkl\u0131 portlarda \u00e7al\u0131\u015f\u0131yordu. Geli\u015ftiriciler, her servisi ayr\u0131 ayr\u0131 ba\u015flatmak ve do\u011fru portlar \u00fczerinden eri\u015fmekte zorlan\u0131yor, ayr\u0131ca \u00f6n y\u00fcz uygulamas\u0131n\u0131n API servisleriyle konu\u015fabilmesi i\u00e7in CORS (Cross-Origin Resource Sharing) sorunlar\u0131 ya\u015f\u0131yorlard\u0131.<\/p>\n<p><strong>Sorun:<\/strong><\/p>\n<ul>\n<li>Farkl\u0131 teknolojilerde yaz\u0131lm\u0131\u015f ve farkl\u0131 portlarda \u00e7al\u0131\u015fan servislerin y\u00f6netimi.<\/li>\n<li>Her servise ayr\u0131 ayr\u0131, anlaml\u0131 URL'ler \u00fczerinden eri\u015fim ihtiyac\u0131.<\/li>\n<li>\u00d6n y\u00fcz uygulamas\u0131n\u0131n arka y\u00fcz API'leriyle g\u00fcvenli ve sorunsuz ileti\u015fimi.<\/li>\n<li>Birden fazla geli\u015ftiricinin ayn\u0131 ortamda tutarl\u0131 bir \u015fekilde \u00e7al\u0131\u015fabilmesi.<\/li>\n<\/ul>\n<p><strong>Lando \u00c7\u00f6z\u00fcm\u00fc:<\/strong> InnovateTech ekibi Lando'yu tercih etti. <code>.lando.yml<\/code> dosyas\u0131, her bir mikroservisi ayr\u0131 bir Lando servisi olarak tan\u0131mlad\u0131 ve <code>proxy<\/code> anahtar\u0131n\u0131 kullanarak her servise benzersiz bir alt alan ad\u0131 atad\u0131:<\/p>\n<pre><code>\n    # .lando.yml k\u0131salt\u0131lm\u0131\u015f \u00f6rnek\n    name: innovatetech-platform\n    services:\n      frontend:\n        type: node:16\n        ports: ['3000']\n        # ... frontend geli\u015ftirme sunucusu komutlar\u0131 ...\n      orders-api:\n        type: node:16\n        ports: ['3001']\n        # ... sipari\u015f API komutlar\u0131 ...\n      catalog-api:\n        type: python:3.9\n        ports: ['8000']\n        # ... katalog API komutlar\u0131 ...\n      auth-api:\n        type: php:8.1-fpm\n        # ... auth API Nginx\/PHP-FPM konfig\u00fcrasyonu ...\n    proxy:\n      frontend:\n        - app.innovatetech.lndo.site\n      orders-api:\n        - orders.innovatetech.lndo.site\n      catalog-api:\n        - catalog.innovatetech.lndo.site\n      auth-api:\n        - auth.innovatetech.lndo.site\n    <\/pre>\n<p><\/code><\/p>\n<p>Bu yap\u0131land\u0131rma sayesinde:<\/p>\n<ol>\n<li>Geli\u015ftiriciler <code>app.innovatetech.lndo.site<\/code> adresinden \u00f6n y\u00fcz uygulamas\u0131na, <code>orders.innovatetech.lndo.site<\/code> adresinden sipari\u015f API'sine vb. kolayca eri\u015febildi.<\/li>\n<li>Lando'nun dahili proxy'si, farkl\u0131 portlarda \u00e7al\u0131\u015fan servisler aras\u0131ndaki y\u00f6nlendirmeyi otomatik olarak halletti.<\/li>\n<li>\u00d6n y\u00fcz uygulamas\u0131, <code>https:\/\/orders.innovatetech.lndo.site\/api\/v1\/<\/code> gibi tam URL'leri kullanarak arka y\u00fcz API'leriyle g\u00fcvenli bir \u015fekilde ileti\u015fim kurabildi, \u00e7\u00fcnk\u00fc Lando t\u00fcm servisler i\u00e7in otomatik SSL sertifikas\u0131 sa\u011flad\u0131 ve ayn\u0131 \"ana domain\" alt\u0131nda \u00e7al\u0131\u015f\u0131yorlard\u0131.<\/li>\n<li>Herkes ayn\u0131 <code>.lando.yml<\/code> dosyas\u0131 ile \u00e7al\u0131\u015ft\u0131\u011f\u0131 i\u00e7in ortam tutarl\u0131l\u0131\u011f\u0131 sa\u011fland\u0131.<\/li>\n<\/ol>\n<p><strong>Sonu\u00e7:<\/strong> Lando'nun esnek proxy ve servis tan\u0131mlama yetenekleri sayesinde InnovateTech, karma\u015f\u0131k mikroservis mimarisini yerel olarak h\u0131zl\u0131 ve tutarl\u0131 bir \u015fekilde \u00e7al\u0131\u015ft\u0131rabildi. Bu, geli\u015ftirme s\u00fcre\u00e7lerini h\u0131zland\u0131rd\u0131 ve entegrasyon hatalar\u0131n\u0131 minimize etti.<\/p>\n<h3>Vaka 2: Birden Fazla Proje Geli\u015ftiren Bir Tak\u0131m ile DDEV'in Otomatik Domain Y\u00f6netimi<\/h3>\n<p>Bir web ajans\u0131 olan \"WebCraft Solutions\", ayn\u0131 anda birden fazla Drupal ve WordPress projesi \u00fczerinde \u00e7al\u0131\u015f\u0131yordu. Her projenin kendi veritaban\u0131, PHP versiyonu ve web sunucusu ayarlar\u0131 vard\u0131. Eski sistemlerinde, port \u00e7ak\u0131\u015fmalar\u0131, karma\u015f\u0131k Apache\/Nginx VHost yap\u0131land\u0131rmalar\u0131 ve her yeni proje i\u00e7in manuel kurulumlar, geli\u015ftirme h\u0131z\u0131n\u0131 d\u00fc\u015f\u00fcr\u00fcyordu.<\/p>\n<p><strong>Sorun:<\/strong><\/p>\n<ul>\n<li>Farkl\u0131 PHP versiyonlar\u0131 ve veritaban\u0131 t\u00fcrleri gerektiren \u00e7ok say\u0131da proje.<\/li>\n<li>Her projeye h\u0131zl\u0131 ve kolay eri\u015fim.<\/li>\n<li>Yeni proje kurulumlar\u0131n\u0131n zaman almas\u0131 ve karma\u015f\u0131k olmas\u0131.<\/li>\n<li>Birden fazla projenin ayn\u0131 anda \u00e7ak\u0131\u015fmadan \u00e7al\u0131\u015fabilmesi.<\/li>\n<\/ul>\n<p><strong>DDEV \u00c7\u00f6z\u00fcm\u00fc:<\/strong> WebCraft Solutions, DDEV'i kullanarak bu sorunlar\u0131 \u00e7\u00f6zd\u00fc. Her yeni Drupal veya WordPress projesi i\u00e7in sadece birka\u00e7 komutla bir DDEV ortam\u0131 olu\u015fturdular:<\/p>\n<pre><code>\n    $ mkdir my-drupal-site && cd my-drupal-site\n    $ ddev config --docroot=web --project-type=drupal9\n    $ ddev start\n    <\/pre>\n<p><\/code><\/p>\n<p>DDEV, her proje i\u00e7in otomatik olarak <code>my-drupal-site.ddev.site<\/code> gibi benzersiz bir URL olu\u015fturdu. Ayn\u0131 \u015fekilde bir WordPress projesi i\u00e7in de:<\/p>\n<pre><code>\n    $ mkdir my-wordpress-site && cd my-wordpress-site\n    $ ddev config --docroot=wp-content --project-type=wordpress\n    $ ddev start\n    <\/pre>\n<p><\/code><\/p>\n<p>Bu, <code>my-wordpress-site.ddev.site<\/code> adresine eri\u015fim sa\u011flad\u0131. DDEV'in Traefik tabanl\u0131 merkezi y\u00f6nlendiricisi sayesinde:<\/p>\n<ol>\n<li>T\u00fcm projeler (Drupal ve WordPress projeleri, farkl\u0131 PHP versiyonlar\u0131yla bile olsa) ayn\u0131 anda sorunsuz bir \u015fekilde \u00e7al\u0131\u015fabildi.<\/li>\n<li>Her projeye otomatik olarak olu\u015fturulan <code>.ddev.site<\/code> uzant\u0131l\u0131 URL'ler \u00fczerinden kolayca eri\u015fildi.<\/li>\n<li>Yeni proje kurulum s\u00fcresi dakikalara indi, manuel yap\u0131land\u0131rma ihtiyac\u0131 ortadan kalkt\u0131.<\/li>\n<li>DDEV, her proje i\u00e7in otomatik HTTPS sa\u011flad\u0131\u011f\u0131ndan, SSL ile ilgili hi\u00e7bir sorun ya\u015fanmad\u0131.<\/li>\n<\/ol>\n<p><strong>Sonu\u00e7:<\/strong> DDEV'in h\u0131zl\u0131 kurulumu, otomatik domain y\u00f6netimi ve merkezi Traefik y\u00f6nlendiricisi, WebCraft Solutions'\u0131n geli\u015ftirme i\u015f ak\u0131\u015f\u0131n\u0131 b\u00fcy\u00fck \u00f6l\u00e7\u00fcde iyile\u015ftirdi. Birden fazla projeyi ayn\u0131 anda y\u00f6netmek art\u0131k bir kabus olmaktan \u00e7\u0131kt\u0131 ve ajans\u0131n \u00fcretkenli\u011fi g\u00f6zle g\u00f6r\u00fcl\u00fcr \u015fekilde artt\u0131. Bu vaka analizleri, DDEV ve Lando'nun, farkl\u0131 geli\u015ftirme senaryolar\u0131nda nas\u0131l de\u011ferli ara\u00e7lar oldu\u011funu ve geli\u015ftiricilere zaman kazand\u0131rarak onlar\u0131n daha \u00f6nemli g\u00f6revlere odaklanmas\u0131n\u0131 sa\u011flad\u0131\u011f\u0131n\u0131 a\u00e7\u0131k\u00e7a g\u00f6stermektedir.<\/p>\n<h2>Sonu\u00e7: Geli\u015ftirme S\u00fcre\u00e7lerinizi Y\u00f6nlendirme Sanat\u0131yla Nas\u0131l \u0130yile\u015ftirirsiniz?<\/h2>\n<p>G\u00f6rd\u00fc\u011f\u00fcm\u00fcz gibi, DDEV ve Lando gibi ara\u00e7lar, modern web geli\u015ftiricilerinin yerel ortam kurulumu ve y\u00f6netimiyle ilgili kar\u015f\u0131la\u015ft\u0131\u011f\u0131 zorluklara devrim niteli\u011finde \u00e7\u00f6z\u00fcmler sunmaktad\u0131r. Her iki ara\u00e7 da Docker'\u0131n konteynerizasyon g\u00fcc\u00fcn\u00fc kullanarak, projelerinize \u00f6zel, izole ve tutarl\u0131 geli\u015ftirme ortamlar\u0131 yarat\u0131r. Ancak onlar\u0131n ger\u00e7ek sihri, projelerinizi kolayca eri\u015filebilir k\u0131lan ak\u0131ll\u0131 y\u00f6nlendirme mekanizmalar\u0131nda yatmaktad\u0131r. DDEV'in Traefik tabanl\u0131 otomatik ve merkezi y\u00f6nlendirme sistemi, \u00f6zellikle \u00e7ok say\u0131da projenin h\u0131zl\u0131ca kurulup y\u00f6netildi\u011fi senaryolarda \u00f6ne \u00e7\u0131karken, Lando'nun <code>.lando.yml<\/code> tabanl\u0131 esnek proxy yap\u0131land\u0131rmas\u0131, karma\u015f\u0131k, \u00e7ok servisli uygulamalar i\u00e7in benzersiz bir kontrol sa\u011flar.<\/p>\n<p>Bu ara\u00e7lar\u0131 kullanarak, geli\u015ftirme s\u00fcre\u00e7lerinizi \u00f6nemli \u00f6l\u00e7\u00fcde h\u0131zland\u0131rabilir, \"benim makinemde \u00e7al\u0131\u015f\u0131yordu\" gibi sorunlar\u0131 ortadan kald\u0131rabilir ve ekibinizle daha verimli bir \u015fekilde i\u015fbirli\u011fi yapabilirsiniz. Art\u0131k karma\u015f\u0131k Apache sanal ana bilgisayar dosyalar\u0131 veya Nginx sunucu bloklar\u0131yla u\u011fra\u015fman\u0131za gerek kalmaz. Otomatik SSL y\u00f6netimi, an\u0131nda alan ad\u0131 tahsisi ve kolay port y\u00f6nlendirme gibi \u00f6zellikler sayesinde, geli\u015ftiriciler ana odak noktalar\u0131 olan kod yazmaya daha fazla zaman ay\u0131rabilirler. Bu, sadece geli\u015ftirme d\u00f6ng\u00fclerini k\u0131saltmakla kalmaz, ayn\u0131 zamanda daha y\u00fcksek kaliteli ve daha g\u00fcvenilir yaz\u0131l\u0131mlar\u0131n ortaya \u00e7\u0131kmas\u0131na da katk\u0131da bulunur. K\u0131sacas\u0131, DDEV ve Lando, yerel geli\u015ftirme ortamlar\u0131n\u0131z\u0131 bir sanata d\u00f6n\u00fc\u015ft\u00fcren, gelece\u011fin web geli\u015ftirme ara\u00e7lar\u0131d\u0131r.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h3>\n<ul>\n<li>\n            <strong>S: DDEV ve Lando'nun her ikisini de ayn\u0131 anda kullanabilir miyim?<\/strong><br \/>\n            <strong>C:<\/strong> Evet, her iki ara\u00e7 da Docker konteynerlerini kulland\u0131\u011f\u0131 i\u00e7in genellikle ayn\u0131 anda \u00e7al\u0131\u015fabilirler. Ancak, DDEV kendi merkezi y\u00f6nlendiricisini (Traefik) kullan\u0131rken, Lando her proje i\u00e7in kendi proxy'sini kurar. Her iki arac\u0131n da sisteminizde DNS kay\u0131tlar\u0131n\u0131 y\u00f6netmesi nedeniyle nadiren k\u00fc\u00e7\u00fck \u00e7ak\u0131\u015fmalar olabilir, ancak genellikle sorunsuz bir \u015fekilde birlikte var olurlar.\n        <\/li>\n<li>\n            <strong>S: Hangi arac\u0131 se\u00e7meliyim: DDEV mi, Lando mu?<\/strong><br \/>\n            <strong>C:<\/strong> Se\u00e7im projenizin ve ki\u015fisel tercihinizin gereksinimlerine ba\u011fl\u0131d\u0131r. DDEV, Drupal, WordPress gibi pop\u00fcler CMS'ler ve PHP tabanl\u0131 projeler i\u00e7in \"tak ve \u00e7al\u0131\u015ft\u0131r\" deneyimi sunar ve daha az yap\u0131land\u0131rma gerektirir. Lando ise Node.js, Python, Ruby gibi farkl\u0131 teknoloji y\u0131\u011f\u0131nlar\u0131n\u0131 destekleyen ve mikroservis mimarileri gibi karma\u015f\u0131k projeler i\u00e7in daha fazla esneklik ve yap\u0131land\u0131rma kontrol\u00fc sunar.\n        <\/li>\n<li>\n            <strong>S: Kendi \u00f6zel alan ad\u0131m\u0131 (\u00f6rne\u011fin <code>.dev<\/code> veya <code>.local<\/code>) DDEV veya Lando ile kullanabilir miyim?<\/strong><br \/>\n            <strong>C:<\/strong> Evet, hem DDEV hem de Lando bu t\u00fcr \u00f6zelle\u015ftirmelere izin verir. DDEV i\u00e7in <code>config.yaml<\/code> dosyas\u0131ndaki <code>additional_urls<\/code> se\u00e7ene\u011fini kullanabilirsiniz. Lando i\u00e7in ise <code>.lando.yml<\/code> dosyas\u0131n\u0131n <code>proxy<\/code> b\u00f6l\u00fcm\u00fcnde istedi\u011finiz \u00f6zel alan adlar\u0131n\u0131 tan\u0131mlayabilirsiniz.\n        <\/li>\n<li>\n            <strong>S: DDEV veya Lando projelerime internet \u00fczerinden eri\u015febilir miyim?<\/strong><br \/>\n            <strong>C:<\/strong> Varsay\u0131lan olarak, DDEV ve Lando projeleri yerel makinenizde eri\u015filebilirdir. Ancak, DDEV'in <code>ddev share<\/code> komutu gibi \u00f6zellikler veya ngrok gibi \u00fc\u00e7\u00fcnc\u00fc taraf ara\u00e7lar kullanarak projelerinizi ge\u00e7ici olarak internet \u00fczerinden ba\u015fkalar\u0131yla payla\u015fabilirsiniz. Lando'da da benzer \u015fekilde ngrok ile entegrasyon m\u00fcmk\u00fcnd\u00fcr.\n        <\/li>\n<li>\n            <strong>S: Performans a\u00e7\u0131s\u0131ndan DDEV mi Lando mu daha iyi?<\/strong><br \/>\n            <strong>C:<\/strong> Performans, projenizin karma\u015f\u0131kl\u0131\u011f\u0131na, sistem kaynaklar\u0131n\u0131za ve yap\u0131land\u0131rman\u0131za ba\u011fl\u0131 olarak de\u011fi\u015febilir. Her iki ara\u00e7 da Docker'\u0131n sa\u011flad\u0131\u011f\u0131 verimlili\u011fi kullan\u0131r. Baz\u0131 kullan\u0131c\u0131lar DDEV'in basit kurulumunu ve Traefik y\u00f6nlendiricisinin hafifli\u011fini daha performansl\u0131 bulurken, di\u011ferleri Lando'nun \u00f6zelle\u015ftirme se\u00e7enekleriyle daha ince ayar yapman\u0131n performans\u0131 art\u0131rd\u0131\u011f\u0131n\u0131 d\u00fc\u015f\u00fcnebilir. Genellikle, aralar\u0131ndaki farklar \u00e7o\u011fu geli\u015ftirme senaryosunda ihmal edilebilir d\u00fczeydedir.\n        <\/li>\n<\/ul>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Geli\u015ftiricilerin kabusu olan karma\u015f\u0131k yerel ortam kurulumlar\u0131na veda edin! DDEV ve Lando, Docker tabanl\u0131 g\u00fc\u00e7l\u00fc y\u00f6nlendirme mekanizmalar\u0131yla projelerinizi&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-33021","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>DDEV ve Lando: Yerel Y\u00f6nlendirme Sihrini Ke\u015ffedin<\/title>\n<meta name=\"description\" content=\"Geli\u015ftiricilerin kabusu olan karma\u015f\u0131k yerel ortam kurulumlar\u0131na veda edin! DDEV ve Lando, Docker tabanl\u0131 g\u00fc\u00e7l\u00fc y\u00f6nlendirme mekanizmalar\u0131yla projelerinizi an\u0131nda eri\u015filebilir k\u0131lar. Bu makalede, bu ara\u00e7lar\u0131n arkas\u0131ndaki sihirli d\u00fcnyay\u0131, nas\u0131l \u00e7al\u0131\u015ft\u0131klar\u0131n\u0131 ve geli\u015ftirme s\u00fcre\u00e7lerinizi nas\u0131l h\u0131zland\u0131rd\u0131klar\u0131n\u0131 ke\u015ffedin.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/ddev-ve-lando-yerel-yonlendirme-sihrini-kesfedin\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"DDEV ve Lando: Yerel Y\u00f6nlendirme Sihrini Ke\u015ffedin\" \/>\n<meta property=\"og:description\" content=\"Geli\u015ftiricilerin kabusu olan karma\u015f\u0131k yerel ortam kurulumlar\u0131na veda edin! DDEV ve Lando, Docker tabanl\u0131 g\u00fc\u00e7l\u00fc y\u00f6nlendirme mekanizmalar\u0131yla projelerinizi an\u0131nda eri\u015filebilir k\u0131lar. Bu makalede, bu ara\u00e7lar\u0131n arkas\u0131ndaki sihirli d\u00fcnyay\u0131, nas\u0131l \u00e7al\u0131\u015ft\u0131klar\u0131n\u0131 ve geli\u015ftirme s\u00fcre\u00e7lerinizi nas\u0131l h\u0131zland\u0131rd\u0131klar\u0131n\u0131 ke\u015ffedin.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/ddev-ve-lando-yerel-yonlendirme-sihrini-kesfedin\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-28T11:31:50+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"24 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ddev-ve-lando-yerel-yonlendirme-sihrini-kesfedin\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ddev-ve-lando-yerel-yonlendirme-sihrini-kesfedin\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"DDEV ve Lando: Yerel Y\u00f6nlendirme Sihrini Ke\u015ffedin\",\"datePublished\":\"2025-10-28T11:31:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ddev-ve-lando-yerel-yonlendirme-sihrini-kesfedin\/\"},\"wordCount\":4264,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ddev-ve-lando-yerel-yonlendirme-sihrini-kesfedin\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ddev-ve-lando-yerel-yonlendirme-sihrini-kesfedin\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/ddev-ve-lando-yerel-yonlendirme-sihrini-kesfedin\/\",\"name\":\"DDEV ve Lando: Yerel Y\u00f6nlendirme Sihrini Ke\u015ffedin\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-28T11:31:50+00:00\",\"description\":\"Geli\u015ftiricilerin kabusu olan karma\u015f\u0131k yerel ortam kurulumlar\u0131na veda edin! DDEV ve Lando, Docker tabanl\u0131 g\u00fc\u00e7l\u00fc y\u00f6nlendirme mekanizmalar\u0131yla projelerinizi an\u0131nda eri\u015filebilir k\u0131lar. Bu makalede, bu ara\u00e7lar\u0131n arkas\u0131ndaki sihirli d\u00fcnyay\u0131, nas\u0131l \u00e7al\u0131\u015ft\u0131klar\u0131n\u0131 ve geli\u015ftirme s\u00fcre\u00e7lerinizi nas\u0131l h\u0131zland\u0131rd\u0131klar\u0131n\u0131 ke\u015ffedin.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ddev-ve-lando-yerel-yonlendirme-sihrini-kesfedin\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ddev-ve-lando-yerel-yonlendirme-sihrini-kesfedin\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ddev-ve-lando-yerel-yonlendirme-sihrini-kesfedin\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DDEV ve Lando: Yerel Y\u00f6nlendirme Sihrini Ke\u015ffedin\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"DDEV ve Lando: Yerel Y\u00f6nlendirme Sihrini Ke\u015ffedin","description":"Geli\u015ftiricilerin kabusu olan karma\u015f\u0131k yerel ortam kurulumlar\u0131na veda edin! DDEV ve Lando, Docker tabanl\u0131 g\u00fc\u00e7l\u00fc y\u00f6nlendirme mekanizmalar\u0131yla projelerinizi an\u0131nda eri\u015filebilir k\u0131lar. Bu makalede, bu ara\u00e7lar\u0131n arkas\u0131ndaki sihirli d\u00fcnyay\u0131, nas\u0131l \u00e7al\u0131\u015ft\u0131klar\u0131n\u0131 ve geli\u015ftirme s\u00fcre\u00e7lerinizi nas\u0131l h\u0131zland\u0131rd\u0131klar\u0131n\u0131 ke\u015ffedin.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/ddev-ve-lando-yerel-yonlendirme-sihrini-kesfedin\/","og_locale":"tr_TR","og_type":"article","og_title":"DDEV ve Lando: Yerel Y\u00f6nlendirme Sihrini Ke\u015ffedin","og_description":"Geli\u015ftiricilerin kabusu olan karma\u015f\u0131k yerel ortam kurulumlar\u0131na veda edin! DDEV ve Lando, Docker tabanl\u0131 g\u00fc\u00e7l\u00fc y\u00f6nlendirme mekanizmalar\u0131yla projelerinizi an\u0131nda eri\u015filebilir k\u0131lar. Bu makalede, bu ara\u00e7lar\u0131n arkas\u0131ndaki sihirli d\u00fcnyay\u0131, nas\u0131l \u00e7al\u0131\u015ft\u0131klar\u0131n\u0131 ve geli\u015ftirme s\u00fcre\u00e7lerinizi nas\u0131l h\u0131zland\u0131rd\u0131klar\u0131n\u0131 ke\u015ffedin.","og_url":"https:\/\/fatihsoysal.com\/blog\/ddev-ve-lando-yerel-yonlendirme-sihrini-kesfedin\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-28T11:31:50+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"24 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/ddev-ve-lando-yerel-yonlendirme-sihrini-kesfedin\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/ddev-ve-lando-yerel-yonlendirme-sihrini-kesfedin\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"DDEV ve Lando: Yerel Y\u00f6nlendirme Sihrini Ke\u015ffedin","datePublished":"2025-10-28T11:31:50+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/ddev-ve-lando-yerel-yonlendirme-sihrini-kesfedin\/"},"wordCount":4264,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/ddev-ve-lando-yerel-yonlendirme-sihrini-kesfedin\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/ddev-ve-lando-yerel-yonlendirme-sihrini-kesfedin\/","url":"https:\/\/fatihsoysal.com\/blog\/ddev-ve-lando-yerel-yonlendirme-sihrini-kesfedin\/","name":"DDEV ve Lando: Yerel Y\u00f6nlendirme Sihrini Ke\u015ffedin","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-28T11:31:50+00:00","description":"Geli\u015ftiricilerin kabusu olan karma\u015f\u0131k yerel ortam kurulumlar\u0131na veda edin! DDEV ve Lando, Docker tabanl\u0131 g\u00fc\u00e7l\u00fc y\u00f6nlendirme mekanizmalar\u0131yla projelerinizi an\u0131nda eri\u015filebilir k\u0131lar. Bu makalede, bu ara\u00e7lar\u0131n arkas\u0131ndaki sihirli d\u00fcnyay\u0131, nas\u0131l \u00e7al\u0131\u015ft\u0131klar\u0131n\u0131 ve geli\u015ftirme s\u00fcre\u00e7lerinizi nas\u0131l h\u0131zland\u0131rd\u0131klar\u0131n\u0131 ke\u015ffedin.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/ddev-ve-lando-yerel-yonlendirme-sihrini-kesfedin\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/ddev-ve-lando-yerel-yonlendirme-sihrini-kesfedin\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/ddev-ve-lando-yerel-yonlendirme-sihrini-kesfedin\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"DDEV ve Lando: Yerel Y\u00f6nlendirme Sihrini Ke\u015ffedin"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33021","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=33021"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33021\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=33021"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=33021"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=33021"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}