{"id":37407,"date":"2026-01-03T16:40:37","date_gmt":"2026-01-03T13:40:37","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=37407"},"modified":"2026-01-03T16:40:37","modified_gmt":"2026-01-03T13:40:37","slug":"docker-ve-ddev-kullanarak-yerel-makinenizde-drupal-9-web-sitesi-gelistirme-rehberi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/docker-ve-ddev-kullanarak-yerel-makinenizde-drupal-9-web-sitesi-gelistirme-rehberi\/","title":{"rendered":"Docker ve DDEV Kullanarak Yerel Makinenizde Drupal 9 Web Sitesi Geli\u015ftirme Rehberi"},"content":{"rendered":"<p><body><\/p>\n<h2>Docker ve DDEV Kullanarak Yerel Makinenizde Drupal 9 Web Sitesi Geli\u015ftirme Rehberi<\/h2>\n<h3>Giri\u015f: Modern Drupal Geli\u015ftirmenin Temelleri<\/h3>\n<p>G\u00fcn\u00fcm\u00fcz web geli\u015ftirme d\u00fcnyas\u0131nda, projelerin yerel makinede tutarl\u0131, izole ve y\u00f6netilebilir bir ortamda geli\u015ftirilmesi b\u00fcy\u00fck \u00f6nem ta\u015f\u0131maktad\u0131r. \u00d6zellikle Drupal gibi karma\u015f\u0131k ve ba\u011f\u0131ml\u0131l\u0131klar\u0131 olan bir i\u00e7erik y\u00f6netim sistemi (CMS) ile \u00e7al\u0131\u015f\u0131rken, geli\u015ftirme ortam\u0131n\u0131n kurulumu ve y\u00f6netimi zaman zaman zorlay\u0131c\u0131 olabilir. Bu zorluklar\u0131n \u00fcstesinden gelmek i\u00e7in Docker ve DDEV gibi ara\u00e7lar devreye girer.<\/p>\n<p>Drupal 9, g\u00fc\u00e7l\u00fc mod\u00fcler yap\u0131s\u0131 ve esnek mimarisi ile kurumlar ve bireysel geli\u015ftiriciler i\u00e7in pop\u00fcler bir tercihtir. Ancak, Drupal&#8217;\u0131n PHP s\u00fcr\u00fcm\u00fc, veritaban\u0131 (MySQL\/PostgreSQL), web sunucusu (Apache\/Nginx) ve di\u011fer ba\u011f\u0131ml\u0131l\u0131klar\u0131 gibi \u00e7e\u015fitli bile\u015fenleri vard\u0131r. Bu bile\u015fenlerin her birinin yerel makinenizde do\u011fru bir \u015fekilde kurulmas\u0131 ve birbiriyle uyumlu \u00e7al\u0131\u015fmas\u0131, \u00f6zellikle birden fazla proje \u00fczerinde \u00e7al\u0131\u015f\u0131yorsan\u0131z, ciddi bir y\u00f6netim y\u00fck\u00fc getirebilir. \u0130\u015fte tam bu noktada Docker ve DDEV, geli\u015ftirme s\u00fcrecini basitle\u015ftirmek ve verimlili\u011fi art\u0131rmak i\u00e7in g\u00fc\u00e7l\u00fc bir ikili olu\u015fturur.<\/p>\n<p>Bu makalede, Docker ve DDEV kullanarak yerel makinenizde bir Drupal 9 web sitesini nas\u0131l kuraca\u011f\u0131n\u0131z\u0131, y\u00f6netece\u011finizi ve geli\u015ftirece\u011finizi ad\u0131m ad\u0131m detayl\u0131 bir \u015fekilde a\u00e7\u0131klayaca\u011f\u0131z. Bu rehber, hem yeni ba\u015flayanlar hem de mevcut Drupal geli\u015ftiricileri i\u00e7in modern ve verimli bir geli\u015ftirme i\u015f ak\u0131\u015f\u0131 olu\u015fturmalar\u0131na yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<h3>Neden Docker ve DDEV Kullanmal\u0131y\u0131z?<\/h3>\n<p>Drupal projeleri i\u00e7in yerel geli\u015ftirme ortam\u0131 kurman\u0131n geleneksel yollar\u0131 (\u00f6rne\u011fin, XAMPP, WAMP, MAMP) genellikle global ba\u011f\u0131ml\u0131l\u0131k \u00e7ak\u0131\u015fmalar\u0131na, farkl\u0131 PHP s\u00fcr\u00fcmleriyle \u00e7al\u0131\u015fma zorluklar\u0131na ve proje izolasyonu eksikli\u011fine yol a\u00e7abilir. Docker ve DDEV bu sorunlara modern ve etkili \u00e7\u00f6z\u00fcmler sunar.<\/p>\n<h4>Docker: Kapsay\u0131c\u0131la\u015ft\u0131rma ile Tutarl\u0131l\u0131k ve \u0130zolasyon<\/h4>\n<p>Docker, uygulamalar\u0131 ve ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 &#8220;kapsay\u0131c\u0131lar&#8221; (containers) ad\u0131 verilen izole edilmi\u015f, hafif ve ta\u015f\u0131nabilir birimler halinde paketlemeye yarayan bir platformdur. Sanal makinelerin aksine, kapsay\u0131c\u0131lar i\u015fletim sisteminin \u00e7ekirde\u011fini payla\u015f\u0131r, bu da onlar\u0131 daha h\u0131zl\u0131 ba\u015flat\u0131r ve daha az kaynak t\u00fcketir.<\/p>\n<p>*   <strong>Tutarl\u0131l\u0131k<\/strong>: Geli\u015ftirme, test ve \u00fcretim ortamlar\u0131 aras\u0131nda tutarl\u0131l\u0131\u011f\u0131 sa\u011flar. &#8220;Benim makinemde \u00e7al\u0131\u015f\u0131yordu&#8221; sorununu ortadan kald\u0131r\u0131r.<br \/>\n*   <strong>\u0130zolasyon<\/strong>: Her proje kendi kapsay\u0131c\u0131lar\u0131nda \u00e7al\u0131\u015f\u0131r, b\u00f6ylece farkl\u0131 projelerin ba\u011f\u0131ml\u0131l\u0131klar\u0131 birbirine kar\u0131\u015fmaz.<br \/>\n*   <strong>Ta\u015f\u0131nabilirlik<\/strong>: Kapsay\u0131c\u0131lar, Docker kurulu herhangi bir sistemde ayn\u0131 \u015fekilde \u00e7al\u0131\u015f\u0131r.<br \/>\n*   <strong>H\u0131z<\/strong>: Kapsay\u0131c\u0131lar saniyeler i\u00e7inde ba\u015flat\u0131labilir ve durdurulabilir.<\/p>\n<h4>DDEV: Docker \u00dczerine \u0130n\u015fa Edilmi\u015f Geli\u015ftirici Deneyimi<\/h4>\n<p>DDEV, Docker&#8217;\u0131 temel alan ve PHP tabanl\u0131 projeler (Drupal, WordPress, Laravel vb.) i\u00e7in yerel geli\u015ftirme ortamlar\u0131 olu\u015fturmay\u0131 basitle\u015ftiren a\u00e7\u0131k kaynakl\u0131 bir ara\u00e7t\u0131r. DDEV, geli\u015ftiricilerin karma\u015f\u0131k Docker komutlar\u0131yla u\u011fra\u015fmak yerine, birka\u00e7 basit komutla tam i\u015flevsel bir geli\u015ftirme ortam\u0131 kurmas\u0131na olanak tan\u0131r.<\/p>\n<p>*   <strong>Kolay Kurulum ve Y\u00f6netim<\/strong>: Dockerfile&#8217;lar veya karma\u015f\u0131k Docker Compose yap\u0131land\u0131rmalar\u0131 yazmaya gerek kalmadan ortamlar\u0131 kurar.<br \/>\n*   <strong>\u00d6nceden Yap\u0131land\u0131r\u0131lm\u0131\u015f Ortamlar<\/strong>: Drupal, WordPress gibi pop\u00fcler CMS&#8217;ler i\u00e7in optimize edilmi\u015f PHP, veritaban\u0131 ve web sunucusu yap\u0131land\u0131rmalar\u0131 sunar.<br \/>\n*   <strong>Geli\u015fmi\u015f \u00d6zellikler<\/strong>: Xdebug entegrasyonu, Mailhog (e-posta testi), HTTPS deste\u011fi, Composer, Drush gibi ara\u00e7lara kolay eri\u015fim sa\u011flar.<br \/>\n*   <strong>Performans<\/strong>: Yerel dosya sistemini Docker kapsay\u0131c\u0131lar\u0131yla senkronize etmek i\u00e7in optimize edilmi\u015ftir.<br \/>\n*   <strong>Esneklik<\/strong>: \u00d6zel hizmetler ekleme veya mevcut yap\u0131land\u0131rmalar\u0131 \u00f6zelle\u015ftirme imkan\u0131 sunar.<\/p>\n<h3>\u00d6n Ko\u015fullar<\/h3>\n<p>DDEV ve Docker ile Drupal 9 geli\u015ftirmeye ba\u015flamadan \u00f6nce, yerel makinenizde a\u015fa\u011f\u0131daki ara\u00e7lar\u0131n kurulu olmas\u0131 gerekmektedir:<\/p>\n<p>*   <strong>Docker Desktop<\/strong>: macOS, Windows veya Linux i\u00e7in Docker&#8217;\u0131n resmi uygulamas\u0131. Bu, Docker Engine&#8217;i ve ilgili ara\u00e7lar\u0131 sa\u011flar.<br \/>\n*   <strong>DDEV<\/strong>: Docker \u00fczerinde \u00e7al\u0131\u015fan yerel geli\u015ftirme arac\u0131.<br \/>\n*   <strong>Git<\/strong>: Proje dosyalar\u0131n\u0131 klonlamak ve versiyon kontrol\u00fc i\u00e7in.<br \/>\n*   <strong>Composer<\/strong>: PHP ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 y\u00f6netmek i\u00e7in. DDEV, Composer&#8217;\u0131 kapsay\u0131c\u0131 i\u00e7inde \u00e7al\u0131\u015ft\u0131rabilir, ancak global olarak kurulu olmas\u0131 da faydal\u0131d\u0131r.<br \/>\n*   <strong>Temel Terminal Bilgisi<\/strong>: Komut sat\u0131r\u0131 aray\u00fcz\u00fcnde gezinme ve komut \u00e7al\u0131\u015ft\u0131rma becerisi.<\/p>\n<h3>Ad\u0131m 1: Docker Desktop Kurulumu<\/h3>\n<p>Docker Desktop, Docker&#8217;\u0131 macOS, Windows ve Linux masa\u00fcst\u00fc ortamlar\u0131nda \u00e7al\u0131\u015ft\u0131rmak i\u00e7in en kolay yoldur.<\/p>\n<p>1.  <strong>\u0130ndirme<\/strong>: Docker&#8217;\u0131n resmi web sitesinden (docker.com\/products\/docker-desktop) i\u015fletim sisteminize uygun s\u00fcr\u00fcm\u00fc indirin.<br \/>\n2.  <strong>Kurulum<\/strong>: \u0130ndirdi\u011finiz y\u00fckleyiciyi \u00e7al\u0131\u015ft\u0131r\u0131n ve ekrandaki talimatlar\u0131 izleyin. Kurulum s\u0131ras\u0131nda Docker, gerekli t\u00fcm bile\u015fenleri (Docker Engine, Docker CLI, Docker Compose, Kubernetes vb.) kuracakt\u0131r.<br \/>\n3.  <strong>Ba\u015flatma ve Do\u011frulama<\/strong>: Kurulum tamamland\u0131ktan sonra Docker Desktop uygulamas\u0131n\u0131 ba\u015flat\u0131n. Sistem tepsisinde veya men\u00fc \u00e7ubu\u011funda Docker simgesinin ye\u015fil oldu\u011funu g\u00f6rmelisiniz, bu da Docker&#8217;\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6sterir. Terminalinizi a\u00e7\u0131n ve <code>docker --version<\/code> komutunu \u00e7al\u0131\u015ft\u0131rarak Docker CLI&#8217;nin do\u011fru \u015fekilde kurulup kurulmad\u0131\u011f\u0131n\u0131 do\u011frulay\u0131n.<\/p>\n<h3>Ad\u0131m 2: DDEV Kurulumu<\/h3>\n<p>DDEV&#8217;i kurman\u0131n birka\u00e7 yolu vard\u0131r. \u0130\u015fletim sisteminize g\u00f6re en uygun y\u00f6ntemi se\u00e7ebilirsiniz.<\/p>\n<p>*   <strong>macOS (Homebrew ile \u00f6nerilir)<\/strong>:<\/p>\n<pre><code class=\"language-bash\">brew install ddev\/ddev\/ddev<\/code><\/pre>\n<p>*   <strong>Linux (Homebrew ile \u00f6nerilir)<\/strong>:<\/p>\n<pre><code class=\"language-bash\">brew install ddev\/ddev\/ddev<\/code><\/pre>\n<p>    E\u011fer Homebrew kurulu de\u011filse, \u00f6nce Homebrew&#8217;i kurman\u0131z gerekebilir: <code>\/bin\/bash -c \"$(curl -fsSL https:\/\/raw.githubusercontent.com\/Homebrew\/install\/HEAD\/install.sh)\"<\/code><br \/>\n*   <strong>Windows (Chocolatey ile \u00f6nerilir)<\/strong>:<br \/>\n    Y\u00f6netici olarak PowerShell&#8217;i a\u00e7\u0131n ve a\u015fa\u011f\u0131daki komutlar\u0131 \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-powershell\">choco install ddev<\/code><\/pre>\n<p>    E\u011fer Chocolatey kurulu de\u011filse, \u00f6nce onu kurman\u0131z gerekebilir: <code>Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https:\/\/chocolatey.org\/install.ps1'))<\/code><br \/>\n*   <strong>Manuel Kurulum (T\u00fcm \u0130\u015fletim Sistemleri)<\/strong>:<br \/>\n    DDEV&#8217;in GitHub sayfas\u0131ndan (github.com\/ddev\/ddev\/releases) en son s\u00fcr\u00fcm\u00fc indirin ve <code>ddev<\/code> y\u00fcr\u00fct\u00fclebilir dosyas\u0131n\u0131 PATH&#8217;inize ekleyin.<\/p>\n<p><strong>Do\u011frulama<\/strong>: Kurulum tamamland\u0131ktan sonra terminalde <code>ddev --version<\/code> komutunu \u00e7al\u0131\u015ft\u0131rarak DDEV&#8217;in do\u011fru \u015fekilde kurulup kurulmad\u0131\u011f\u0131n\u0131 kontrol edin.<\/p>\n<h3>Ad\u0131m 3: Yeni Bir Drupal 9 Projesi Olu\u015fturma<\/h3>\n<p>\u015eimdi DDEV ve Docker kullanarak s\u0131f\u0131rdan bir Drupal 9 projesi olu\u015ftural\u0131m.<\/p>\n<p>1.  <strong>Proje Dizini Olu\u015fturma<\/strong>: Terminalinizde projelerinizi saklamak istedi\u011finiz bir dizine gidin ve yeni bir proje klas\u00f6r\u00fc olu\u015fturun.<\/p>\n<pre><code class=\"language-bash\">mkdir my-drupal9-project\n    cd my-drupal9-project<\/code><\/pre>\n<p>2.  <strong>DDEV Yap\u0131land\u0131rmas\u0131<\/strong>: Proje dizininde <code>ddev config<\/code> komutunu \u00e7al\u0131\u015ft\u0131r\u0131n. DDEV size birka\u00e7 soru soracakt\u0131r:<\/p>\n<pre><code class=\"language-bash\">ddev config<\/code><\/pre>\n<p>    *   <code>Project name<\/code>: Projenizin ad\u0131n\u0131 girin (\u00f6rne\u011fin, <code>my-drupal9-project<\/code>).<br \/>\n    *   <code>Docroot<\/code>: Drupal&#8217;\u0131n <code>web<\/code> dizini varsay\u0131lan olarak kabul edilir, bu y\u00fczden bo\u015f b\u0131rak\u0131p Enter tu\u015funa bas\u0131n. DDEV genellikle do\u011fru de\u011feri otomatik olarak alg\u0131lar.<br \/>\n    *   <code>Project type<\/code>: <code>drupal9<\/code> veya <code>drupal<\/code> se\u00e7ene\u011fini se\u00e7in.<br \/>\n    DDEV, projeniz i\u00e7in <code>.ddev\/config.yaml<\/code> dosyas\u0131n\u0131 olu\u015fturacakt\u0131r.<br \/>\n3.  <strong>DDEV Ortam\u0131n\u0131 Ba\u015flatma<\/strong>:<\/p>\n<pre><code class=\"language-bash\">ddev start<\/code><\/pre>\n<p>    Bu komut, Docker kapsay\u0131c\u0131lar\u0131n\u0131 (web sunucusu, PHP, veritaban\u0131) ba\u015flatacak ve projeniz i\u00e7in yerel bir URL (\u00f6rne\u011fin, <code>my-drupal9-project.ddev.site<\/code>) atayacakt\u0131r. \u0130lk \u00e7al\u0131\u015ft\u0131rmada biraz zaman alabilir, \u00e7\u00fcnk\u00fc DDEV gerekli Docker imajlar\u0131n\u0131 indirecektir.<br \/>\n4.  <strong>Drupal 9 Projesini Composer ile Olu\u015fturma<\/strong>: DDEV ortam\u0131 \u00e7al\u0131\u015f\u0131r durumdayken, Composer&#8217;\u0131 kullanarak Drupal 9 projesini kurabiliriz. <code>ddev composer<\/code> komutu, Composer&#8217;\u0131 DDEV&#8217;in PHP kapsay\u0131c\u0131s\u0131 i\u00e7inde \u00e7al\u0131\u015ft\u0131r\u0131r.<\/p>\n<pre><code class=\"language-bash\">ddev composer create-project drupal\/recommended-project:^9 .<\/code><\/pre>\n<p>    Bu komut, Drupal&#8217;\u0131n \u00f6nerilen proje yap\u0131s\u0131n\u0131 mevcut dizine kuracakt\u0131r. Nokta (<code>.<\/code>) mevcut dizini ifade eder.<br \/>\n5.  <strong>Drupal Kurulumu<\/strong>: Proje dosyalar\u0131 indirildikten sonra, Drupal&#8217;\u0131 veritaban\u0131na kurmak i\u00e7in Drush&#8217;\u0131 kullanabiliriz. <code>ddev drush<\/code> komutu, Drush&#8217;\u0131 DDEV&#8217;in PHP kapsay\u0131c\u0131s\u0131 i\u00e7inde \u00e7al\u0131\u015ft\u0131r\u0131r.<\/p>\n<pre><code class=\"language-bash\">ddev drush site:install standard --db-url=mysql:\/\/db:db@db\/db --site-name=\"My Drupal 9 Project\" --account-name=admin --account-pass=admin<\/code><\/pre>\n<p>    *   <code>standard<\/code>: Standart Drupal profili.<br \/>\n    *   <code>--db-url<\/code>: DDEV&#8217;in veritaban\u0131 ba\u011flant\u0131 bilgileri (varsay\u0131lan olarak <code>db:db@db\/db<\/code>).<br \/>\n    *   <code>--site-name<\/code>: Sitenizin ad\u0131.<br \/>\n    *   <code>--account-name<\/code>, <code>--account-pass<\/code>: Y\u00f6netici hesab\u0131 bilgileri.<br \/>\n    Bu komut, veritaban\u0131n\u0131 olu\u015fturacak, tablolar\u0131 y\u00fckleyecek ve Drupal&#8217;\u0131 kuracakt\u0131r.<br \/>\n6.  <strong>Siteye Eri\u015fim<\/strong>: Kurulum tamamland\u0131ktan sonra, taray\u0131c\u0131n\u0131zda sitenize eri\u015fmek i\u00e7in <code>ddev launch<\/code> komutunu kullan\u0131n.<\/p>\n<pre><code class=\"language-bash\">ddev launch<\/code><\/pre>\n<p>    Bu komut, projenizin yerel URL&#8217;sini (\u00f6rne\u011fin, <code>https:\/\/my-drupal9-project.ddev.site<\/code>) otomatik olarak taray\u0131c\u0131n\u0131zda a\u00e7acakt\u0131r.<\/p>\n<p>Tebrikler! Yerel makinenizde DDEV ve Docker kullanarak \u00e7al\u0131\u015fan bir Drupal 9 web siteniz var.<\/p>\n<h3>Ad\u0131m 4: Mevcut Bir Drupal 9 Projesi ile \u00c7al\u0131\u015fma<\/h3>\n<p>E\u011fer mevcut bir Drupal 9 projeniz varsa ve onu DDEV ile yerel olarak \u00e7al\u0131\u015ft\u0131rmak istiyorsan\u0131z, ad\u0131mlar biraz farkl\u0131d\u0131r.<\/p>\n<p>1.  <strong>Proje Dosyalar\u0131n\u0131 Klonlama<\/strong>: Git veya ba\u015fka bir y\u00f6ntemle projenizin dosyalar\u0131n\u0131 yerel makinenize indirin.<\/p>\n<pre><code class=\"language-bash\">git clone your-repo-url my-existing-drupal-project\n    cd my-existing-drupal-project<\/code><\/pre>\n<p>2.  <strong>DDEV Yap\u0131land\u0131rmas\u0131<\/strong>: Proje dizininde <code>ddev config<\/code> komutunu \u00e7al\u0131\u015ft\u0131r\u0131n. DDEV genellikle proje tipini (Drupal 9) ve <code>docroot<\/code>&#8216;u otomatik olarak alg\u0131lar. Onaylay\u0131n veya gerekirse d\u00fczeltin.<\/p>\n<pre><code class=\"language-bash\">ddev config<\/code><\/pre>\n<p>3.  <strong>DDEV Ortam\u0131n\u0131 Ba\u015flatma<\/strong>:<\/p>\n<pre><code class=\"language-bash\">ddev start<\/code><\/pre>\n<p>4.  <strong>Veritaban\u0131n\u0131 \u0130\u00e7e Aktarma<\/strong>: Genellikle mevcut bir projenin veritaban\u0131 yede\u011fi (<code>.sql<\/code> veya <code>.sql.gz<\/code> format\u0131nda) bulunur. Bu yede\u011fi DDEV ortam\u0131na aktarmak i\u00e7in <code>ddev import-db<\/code> komutunu kullan\u0131n.<\/p>\n<pre><code class=\"language-bash\">ddev import-db --src=path\/to\/your\/database_dump.sql.gz<\/code><\/pre>\n<p>    E\u011fer dosya <code>.ddev<\/code> dizininde veya proje k\u00f6k dizininde ise, <code>--src<\/code> parametresine gerek kalmayabilir.<br \/>\n5.  <strong>Composer Ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 Y\u00fckleme<\/strong>: Projenin <code>composer.json<\/code> dosyas\u0131nda tan\u0131mlanan t\u00fcm PHP ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 y\u00fckleyin.<\/p>\n<pre><code class=\"language-bash\">ddev composer install<\/code><\/pre>\n<p>6.  <strong>Drush Komutlar\u0131n\u0131 \u00c7al\u0131\u015ft\u0131rma<\/strong>: Drupal&#8217;\u0131n veritaban\u0131 g\u00fcncellemelerini \u00e7al\u0131\u015ft\u0131rmak ve \u00f6nbelle\u011fi temizlemek i\u00e7in Drush&#8217;\u0131 kullan\u0131n.<\/p>\n<pre><code class=\"language-bash\">ddev drush updatedb\n    ddev drush cr<\/code><\/pre>\n<p>7.  <strong>Siteye Eri\u015fim<\/strong>:<\/p>\n<pre><code class=\"language-bash\">ddev launch<\/code><\/pre>\n<h3>Temel DDEV Komutlar\u0131 ve \u00d6zellikleri<\/h3>\n<p>DDEV, geli\u015ftirme s\u00fcrecinizi kolayla\u015ft\u0131rmak i\u00e7in bir dizi kullan\u0131\u015fl\u0131 komut ve \u00f6zellik sunar.<\/p>\n<p>*   <code>ddev start<\/code>: Proje ortam\u0131n\u0131 ba\u015flat\u0131r.<br \/>\n*   <code>ddev stop<\/code>: Proje ortam\u0131n\u0131 durdurur. Kapsay\u0131c\u0131lar\u0131 durdurur ancak silmez.<br \/>\n*   <code>ddev restart<\/code>: Proje ortam\u0131n\u0131 yeniden ba\u015flat\u0131r.<br \/>\n*   <code>ddev poweroff<\/code>: T\u00fcm DDEV projelerini ve Docker&#8217;da \u00e7al\u0131\u015fan di\u011fer DDEV hizmetlerini durdurur. Genellikle kaynaklar\u0131 serbest b\u0131rakmak i\u00e7in kullan\u0131l\u0131r.<br \/>\n*   <code>ddev status<\/code>: Projenin mevcut durumunu (\u00e7al\u0131\u015f\u0131yor mu, durdu mu vb.) g\u00f6sterir.<br \/>\n*   <code>ddev launch<\/code>: Projenin yerel URL&#8217;sini taray\u0131c\u0131n\u0131zda a\u00e7ar.<br \/>\n*   <code>ddev ssh<\/code>: Projenin PHP kapsay\u0131c\u0131s\u0131na SSH ile ba\u011flanman\u0131z\u0131 sa\u011flar. Bu, kapsay\u0131c\u0131 i\u00e7inde komut \u00e7al\u0131\u015ft\u0131rmak veya dosyalara eri\u015fmek i\u00e7in kullan\u0131\u015fl\u0131d\u0131r.<br \/>\n*   <code>ddev exec <komut><\/code>: PHP kapsay\u0131c\u0131s\u0131 i\u00e7inde tek bir komut \u00e7al\u0131\u015ft\u0131rman\u0131z\u0131 sa\u011flar. \u00d6rne\u011fin: <code>ddev exec ls -l web\/modules\/custom<\/code><br \/>\n*   <code>ddev drush <drush-komutu><\/code>: Drush komutlar\u0131n\u0131 PHP kapsay\u0131c\u0131s\u0131 i\u00e7inde \u00e7al\u0131\u015ft\u0131r\u0131r. \u00d6rne\u011fin: <code>ddev drush status<\/code>, <code>ddev drush pm:enable my_module<\/code><br \/>\n*   <code>ddev composer <composer-komutu><\/code>: Composer komutlar\u0131n\u0131 PHP kapsay\u0131c\u0131s\u0131 i\u00e7inde \u00e7al\u0131\u015ft\u0131r\u0131r. \u00d6rne\u011fin: <code>ddev composer require drupal\/admin_toolbar<\/code><br \/>\n*   <code>ddev mysql<\/code>: MySQL istemcisini ba\u015flatarak veritaban\u0131na do\u011frudan eri\u015fmenizi sa\u011flar.<br \/>\n*   <code>ddev logs<\/code>: Docker kapsay\u0131c\u0131lar\u0131n\u0131n loglar\u0131n\u0131 g\u00f6r\u00fcnt\u00fcler. Sorun giderme i\u00e7in faydal\u0131d\u0131r.<br \/>\n*   <code>ddev describe<\/code>: Projenin t\u00fcm detaylar\u0131n\u0131 (URL&#8217;ler, veritaban\u0131 bilgileri, PHP s\u00fcr\u00fcm\u00fc vb.) g\u00f6sterir.<br \/>\n*   <code>ddev config --auto<\/code>: Proje dizinini yeniden tarar ve otomatik olarak bir yap\u0131land\u0131rma dosyas\u0131 olu\u015fturmaya \u00e7al\u0131\u015f\u0131r.<br \/>\n*   <code>ddev delete<\/code>: Proje ortam\u0131n\u0131 ve ilgili Docker kapsay\u0131c\u0131lar\u0131n\u0131 siler. Veritaban\u0131 ve dosyalar yerel makinenizde kal\u0131r. <code>ddev delete --omit-data<\/code> ile veritaban\u0131n\u0131 da silebilirsiniz.<\/p>\n<h4>Geli\u015fmi\u015f DDEV \u00d6zellikleri<\/h4>\n<p>*   <strong>Xdebug<\/strong>: DDEV, Xdebug&#8217;\u0131 otomatik olarak yap\u0131land\u0131r\u0131r. IDE&#8217;nizde (\u00f6rne\u011fin, PhpStorm) Xdebug&#8217;\u0131 etkinle\u015ftirmeniz ve gelen ba\u011flant\u0131lar\u0131 dinlemeniz yeterlidir. <code>ddev xdebug on<\/code> ve <code>ddev xdebug off<\/code> komutlar\u0131yla Xdebug&#8217;\u0131 kolayca a\u00e7\u0131p kapatabilirsiniz.<br \/>\n*   <strong>Mailhog<\/strong>: DDEV her proje i\u00e7in bir Mailhog hizmeti i\u00e7erir. Bu, geli\u015ftirme s\u0131ras\u0131nda sitenizden g\u00f6nderilen e-postalar\u0131 yakalaman\u0131z\u0131 ve incelemenizi sa\u011flar. Mailhog aray\u00fcz\u00fcne <code>ddev launch -p 8025<\/code> ile eri\u015febilirsiniz.<br \/>\n*   <strong>HTTPS Deste\u011fi<\/strong>: DDEV, t\u00fcm projeler i\u00e7in otomatik olarak HTTPS sertifikalar\u0131 olu\u015fturur ve kullan\u0131r, bu da \u00fcretim ortam\u0131na daha yak\u0131n bir deneyim sunar.<br \/>\n*   <strong>\u00d6zel Komutlar<\/strong>: <code>.ddev\/commands<\/code> dizinine \u00f6zel shell betikleri ekleyerek kendi DDEV komutlar\u0131n\u0131z\u0131 olu\u015fturabilirsiniz. \u00d6rne\u011fin, s\u0131k kulland\u0131\u011f\u0131n\u0131z bir <code>drush<\/code> komutunu veya bir <code>git<\/code> i\u015f ak\u0131\u015f\u0131n\u0131 otomatikle\u015ftirebilirsiniz.<br \/>\n*   <strong>Hizmetler (Services)<\/strong>: <code>config.yaml<\/code> dosyas\u0131n\u0131 d\u00fczenleyerek veya <code>.ddev\/docker-compose.yaml<\/code> dosyalar\u0131 ekleyerek Redis, Solr gibi ek hizmetleri projenize dahil edebilirsiniz.<\/p>\n<h3>DDEV Kullanman\u0131n Avantajlar\u0131<\/h3>\n<p>DDEV&#8217;in Drupal geli\u015ftirme i\u015f ak\u0131\u015f\u0131n\u0131za katt\u0131\u011f\u0131 ba\u015fl\u0131ca avantajlar\u0131 \u00f6zetleyelim:<\/p>\n<p>*   <strong>Tutarl\u0131 Geli\u015ftirme Ortam\u0131<\/strong>: T\u00fcm ekip \u00fcyeleri ayn\u0131 Docker kapsay\u0131c\u0131lar\u0131n\u0131 ve yap\u0131land\u0131rmalar\u0131n\u0131 kullanarak \u00e7al\u0131\u015f\u0131r, bu da &#8220;benim makinemde \u00e7al\u0131\u015f\u0131yordu&#8221; sorununu ortadan kald\u0131r\u0131r.<br \/>\n*   <strong>Proje \u0130zolasyonu<\/strong>: Her Drupal projesi kendi izole ortam\u0131nda \u00e7al\u0131\u015f\u0131r. Farkl\u0131 PHP s\u00fcr\u00fcmleri veya veritaban\u0131 gereksinimleri olan projeler aras\u0131nda \u00e7ak\u0131\u015fma ya\u015fanmaz.<br \/>\n*   <strong>Kolay Kurulum ve Y\u00f6netim<\/strong>: Karma\u015f\u0131k Docker yap\u0131land\u0131rmalar\u0131na gerek kalmadan, birka\u00e7 basit komutla tam i\u015flevsel bir geli\u015ftirme ortam\u0131 kurulur.<br \/>\n*   <strong>Geli\u015ftirici Odakl\u0131 Ara\u00e7 Entegrasyonu<\/strong>: Drush, Composer, Xdebug, Mailhog gibi geli\u015ftiricilerin s\u0131k\u00e7a kulland\u0131\u011f\u0131 ara\u00e7lar DDEV ile sorunsuz bir \u015fekilde entegre olur.<br \/>\n*   <strong>Performans<\/strong>: DDEV, yerel dosya sistemini Docker kapsay\u0131c\u0131lar\u0131yla senkronize etmek i\u00e7in optimize edilmi\u015ftir, bu da h\u0131zl\u0131 dosya eri\u015fimi ve sayfa y\u00fckleme s\u00fcreleri sa\u011flar.<br \/>\n*   <strong>Ta\u015f\u0131nabilirlik<\/strong>: Proje ortam\u0131 <code>.ddev<\/code> dizinindeki yap\u0131land\u0131rma dosyalar\u0131yla tan\u0131mlan\u0131r. Bu dosyalar versiyon kontrol\u00fcne eklenebilir ve proje, DDEV kurulu herhangi bir makinede kolayca kurulabilir.<br \/>\n*   <strong>Esneklik ve Geni\u015fletilebilirlik<\/strong>: \u0130htiya\u00e7 duyuldu\u011funda \u00f6zel hizmetler eklenebilir, mevcut yap\u0131land\u0131rmalar \u00f6zelle\u015ftirilebilir veya \u00f6zel DDEV komutlar\u0131 olu\u015fturulabilir.<\/p>\n<h3>Sorun Giderme ve \u0130pu\u00e7lar\u0131<\/h3>\n<p>DDEV kullan\u0131rken kar\u015f\u0131la\u015fabilece\u011finiz baz\u0131 yayg\u0131n sorunlar ve \u00e7\u00f6z\u00fcmleri:<\/p>\n<p>*   <strong>&#8220;Port already in use&#8221; hatas\u0131<\/strong>: DDEV&#8217;in kulland\u0131\u011f\u0131 bir port (\u00f6rne\u011fin, 80 veya 443) ba\u015fka bir uygulama taraf\u0131ndan kullan\u0131l\u0131yor olabilir. <code>ddev poweroff<\/code> komutunu \u00e7al\u0131\u015ft\u0131rarak t\u00fcm DDEV hizmetlerini durdurun ve ard\u0131ndan <code>ddev start<\/code> ile projenizi yeniden ba\u015flatmay\u0131 deneyin. Gerekirse, <code>config.yaml<\/code> dosyas\u0131nda <code>router_http_port<\/code> ve <code>router_https_port<\/code> ayarlar\u0131n\u0131 de\u011fi\u015ftirerek DDEV&#8217;in kullanaca\u011f\u0131 portlar\u0131 \u00f6zelle\u015ftirebilirsiniz.<br \/>\n*   <strong>Docker Desktop \u00e7al\u0131\u015fm\u0131yor<\/strong>: DDEV&#8217;in \u00e7al\u0131\u015fmas\u0131 i\u00e7in Docker Desktop&#8217;\u0131n \u00e7al\u0131\u015f\u0131r durumda olmas\u0131 gerekir. Docker Desktop uygulamas\u0131n\u0131n a\u00e7\u0131k ve d\u00fczg\u00fcn \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olun.<br \/>\n*   <strong>Dosya \u0130zinleri Sorunlar\u0131<\/strong>: \u00d6zellikle Linux ve macOS&#8217;ta dosya izinleri sorunlara yol a\u00e7abilir. <code>ddev ssh<\/code> ile kapsay\u0131c\u0131ya ba\u011flanarak dosya sahipliklerini ve izinlerini kontrol edebilirsiniz.<br \/>\n*   <strong>DDEV komutlar\u0131 bulunam\u0131yor<\/strong>: DDEV&#8217;in PATH&#8217;inize do\u011fru \u015fekilde eklenip eklenmedi\u011fini kontrol edin. Kurulum ad\u0131mlar\u0131n\u0131 tekrar g\u00f6zden ge\u00e7irin.<br \/>\n*   <strong>Veritaban\u0131 ba\u011flant\u0131 hatalar\u0131<\/strong>: <code>ddev describe<\/code> komutu ile veritaban\u0131 ba\u011flant\u0131 bilgilerini kontrol edin ve Drupal&#8217;\u0131n <code>settings.php<\/code> dosyas\u0131ndaki veritaban\u0131 ayarlar\u0131n\u0131n DDEV&#8217;in sa\u011flad\u0131\u011f\u0131 bilgilerle e\u015fle\u015fti\u011finden emin olun.<br \/>\n*   <strong><code>ddev poweroff<\/code> vs. <code>ddev stop<\/code><\/strong>: <code>ddev stop<\/code>, yaln\u0131zca mevcut projenizin kapsay\u0131c\u0131lar\u0131n\u0131 durdurur. <code>ddev poweroff<\/code> ise DDEV ile ilgili t\u00fcm kapsay\u0131c\u0131lar\u0131 ve hizmetleri durdurur, bu da genellikle daha kapsaml\u0131 bir temizlik ve kaynak serbest b\u0131rakma sa\u011flar.<br \/>\n*   <strong>Kapsay\u0131c\u0131 loglar\u0131n\u0131 kontrol etme<\/strong>: Bir sorunla kar\u015f\u0131la\u015ft\u0131\u011f\u0131n\u0131zda, <code>ddev logs<\/code> komutunu kullanarak Docker kapsay\u0131c\u0131lar\u0131n\u0131n \u00e7\u0131kt\u0131lar\u0131n\u0131 kontrol etmek faydal\u0131 bilgiler sa\u011flayabilir.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Docker ve DDEV, Drupal geli\u015ftiricileri i\u00e7in yerel geli\u015ftirme ortam\u0131 kurma ve y\u00f6netme \u015feklini k\u00f6kten de\u011fi\u015ftiren g\u00fc\u00e7l\u00fc ve modern ara\u00e7lard\u0131r. Bu makalede ele ald\u0131\u011f\u0131m\u0131z ad\u0131mlar\u0131 izleyerek, hem yeni hem de mevcut Drupal 9 projelerinizi yerel makinenizde tutarl\u0131, izole ve verimli bir ortamda geli\u015ftirebilirsiniz.<\/p>\n<p>DDEV&#8217;in sundu\u011fu kolayl\u0131k, entegrasyonlar (Drush, Composer, Xdebug, Mailhog) ve performans optimizasyonlar\u0131 sayesinde, geli\u015ftiriciler altyap\u0131 kurulumuyla u\u011fra\u015fmak yerine do\u011frudan kod yazmaya ve proje geli\u015ftirmeye odaklanabilirler. Bu, \u00f6zellikle ekip i\u00e7inde \u00e7al\u0131\u015f\u0131rken veya birden fazla proje y\u00f6netirken zaman tasarrufu sa\u011flar ve geli\u015ftirme s\u00fcrecinin kalitesini art\u0131r\u0131r. Modern Drupal geli\u015ftirme prati\u011fi i\u00e7in Docker ve DDEV ikilisi vazge\u00e7ilmez bir ara\u00e7 seti haline gelmi\u015ftir. Bu ara\u00e7lar\u0131 benimseyerek, Drupal geli\u015ftirme deneyiminizi \u00f6nemli \u00f6l\u00e7\u00fcde iyile\u015ftirebilirsiniz.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Docker ve DDEV Kullanarak Yerel Makinenizde Drupal 9 Web Sitesi Geli\u015ftirme Rehberi\nGiri\u015f: Modern Drupal Geli\u015ftirmenin Temelleri\nG\u00fcn\u00fcm\u00fcz web gel","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":[1407],"tags":[],"class_list":{"0":"post-37407","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-docker","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>Docker ve DDEV Kullanarak Yerel Makinenizde Drupal 9 Web Sitesi Geli\u015ftirme Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\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\/docker-ve-ddev-kullanarak-yerel-makinenizde-drupal-9-web-sitesi-gelistirme-rehberi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Docker ve DDEV Kullanarak Yerel Makinenizde Drupal 9 Web Sitesi Geli\u015ftirme Rehberi\" \/>\n<meta property=\"og:description\" content=\"Docker ve DDEV Kullanarak Yerel Makinenizde Drupal 9 Web Sitesi Geli\u015ftirme Rehberi Giri\u015f: Modern Drupal Geli\u015ftirmenin Temelleri G\u00fcn\u00fcm\u00fcz web gel\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/docker-ve-ddev-kullanarak-yerel-makinenizde-drupal-9-web-sitesi-gelistirme-rehberi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-03T13:40:37+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=\"14 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/docker-ve-ddev-kullanarak-yerel-makinenizde-drupal-9-web-sitesi-gelistirme-rehberi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/docker-ve-ddev-kullanarak-yerel-makinenizde-drupal-9-web-sitesi-gelistirme-rehberi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Docker ve DDEV Kullanarak Yerel Makinenizde Drupal 9 Web Sitesi Geli\u015ftirme Rehberi\",\"datePublished\":\"2026-01-03T13:40:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/docker-ve-ddev-kullanarak-yerel-makinenizde-drupal-9-web-sitesi-gelistirme-rehberi\/\"},\"wordCount\":2484,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Docker\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/docker-ve-ddev-kullanarak-yerel-makinenizde-drupal-9-web-sitesi-gelistirme-rehberi\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/docker-ve-ddev-kullanarak-yerel-makinenizde-drupal-9-web-sitesi-gelistirme-rehberi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/docker-ve-ddev-kullanarak-yerel-makinenizde-drupal-9-web-sitesi-gelistirme-rehberi\/\",\"name\":\"Docker ve DDEV Kullanarak Yerel Makinenizde Drupal 9 Web Sitesi Geli\u015ftirme Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-01-03T13:40:37+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/docker-ve-ddev-kullanarak-yerel-makinenizde-drupal-9-web-sitesi-gelistirme-rehberi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/docker-ve-ddev-kullanarak-yerel-makinenizde-drupal-9-web-sitesi-gelistirme-rehberi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/docker-ve-ddev-kullanarak-yerel-makinenizde-drupal-9-web-sitesi-gelistirme-rehberi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Docker ve DDEV Kullanarak Yerel Makinenizde Drupal 9 Web Sitesi Geli\u015ftirme Rehberi\"}]},{\"@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":"Docker ve DDEV Kullanarak Yerel Makinenizde Drupal 9 Web Sitesi Geli\u015ftirme Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","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\/docker-ve-ddev-kullanarak-yerel-makinenizde-drupal-9-web-sitesi-gelistirme-rehberi\/","og_locale":"tr_TR","og_type":"article","og_title":"Docker ve DDEV Kullanarak Yerel Makinenizde Drupal 9 Web Sitesi Geli\u015ftirme Rehberi","og_description":"Docker ve DDEV Kullanarak Yerel Makinenizde Drupal 9 Web Sitesi Geli\u015ftirme Rehberi Giri\u015f: Modern Drupal Geli\u015ftirmenin Temelleri G\u00fcn\u00fcm\u00fcz web gel","og_url":"https:\/\/fatihsoysal.com\/blog\/docker-ve-ddev-kullanarak-yerel-makinenizde-drupal-9-web-sitesi-gelistirme-rehberi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-01-03T13:40:37+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"14 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/docker-ve-ddev-kullanarak-yerel-makinenizde-drupal-9-web-sitesi-gelistirme-rehberi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/docker-ve-ddev-kullanarak-yerel-makinenizde-drupal-9-web-sitesi-gelistirme-rehberi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Docker ve DDEV Kullanarak Yerel Makinenizde Drupal 9 Web Sitesi Geli\u015ftirme Rehberi","datePublished":"2026-01-03T13:40:37+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/docker-ve-ddev-kullanarak-yerel-makinenizde-drupal-9-web-sitesi-gelistirme-rehberi\/"},"wordCount":2484,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Docker"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/docker-ve-ddev-kullanarak-yerel-makinenizde-drupal-9-web-sitesi-gelistirme-rehberi\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/docker-ve-ddev-kullanarak-yerel-makinenizde-drupal-9-web-sitesi-gelistirme-rehberi\/","url":"https:\/\/fatihsoysal.com\/blog\/docker-ve-ddev-kullanarak-yerel-makinenizde-drupal-9-web-sitesi-gelistirme-rehberi\/","name":"Docker ve DDEV Kullanarak Yerel Makinenizde Drupal 9 Web Sitesi Geli\u015ftirme Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-01-03T13:40:37+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/docker-ve-ddev-kullanarak-yerel-makinenizde-drupal-9-web-sitesi-gelistirme-rehberi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/docker-ve-ddev-kullanarak-yerel-makinenizde-drupal-9-web-sitesi-gelistirme-rehberi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/docker-ve-ddev-kullanarak-yerel-makinenizde-drupal-9-web-sitesi-gelistirme-rehberi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Docker ve DDEV Kullanarak Yerel Makinenizde Drupal 9 Web Sitesi Geli\u015ftirme Rehberi"}]},{"@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\/37407","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=37407"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37407\/revisions"}],"predecessor-version":[{"id":37408,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37407\/revisions\/37408"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=37407"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=37407"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=37407"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}