Localhost, bilgisayarınızın kendisini işaret eden özel bir addır: Tarayıcıya http://localhost yazdığınızda istek ağa ya da internete çıkmadan aynı makinede çalışan sunucuya gider. IPv4'te 127.0.0.1, IPv6'da ::1 loopback (geri döngü) adresine karşılık gelir ve siteleri yayına almadan önce güvenle denemek için kullanılır.
Kısaca
- Localhost ne demek: "Yerel ana makine", yani o anda kullandığınız bilgisayarın kendisi.
- 127.0.0.1 nedir: IPv4 loopback adresidir. 127.0.0.0/8 bloğunun tamamı bu iş için ayrılmıştır; IPv6 karşılığı
::1'dir. - Trafik dışarı çıkmaz: Loopback adreslerine giden paketler bilgisayardan ayrılmaz, modem ve yönlendiriciler tarafından iletilmez.
- Tek başına sayfa açmaz: Adresin çalışması için Apache, Nginx veya Node.js gibi bir sunucunun ilgili portu dinlemesi gerekir.
- Kurulum: Windows'ta kolayca kurulabilen yaygın seçeneklerden biri XAMPP'tır. WampServer, Laragon, MAMP, Local ve Docker başlıca alternatiflerdir.
- Portlar: Web için 80 ve 443, MySQL/MariaDB için 3306 kullanılır; 8080, 3000 ve 5173 ise alternatif ve geliştirme sunucusu portlarıdır (ör.
localhost:8080). - Başkaları göremez: Localhost'taki siteyi yalnızca siz görürsünüz. Yayına almak için alan adı ve hosting gerekir; dosyalar ve veritabanı canlı sunucuya taşınır.

Localhost nedir, ne demek?
İngilizcedeki "local" (yerel) ve "host" (ana makine) sözcüklerinden oluşan localhost, ağ dünyasında "bu bilgisayar" anlamına gelir. Bir program localhost'a bağlandığında işletim sistemi isteği dışarı göndermez; aynı makinede bekleyen başka bir programa kendi içinde ulaştırır. Bu yüzden localhost uzak bir bağlantı değil, tamamen yerel bir bağlantıdır.
Kelime günlük kullanımda iki anlamda geçer. Dar anlamı, tarayıcıya veya yapılandırma dosyasına yazılan localhost adıdır. Geniş anlamı ise yerel geliştirme ortamıdır: "Siteyi localhost'ta hazırlıyorum" diyen biri, bilgisayarına kurduğu web sunucusu, PHP ve veritabanından oluşan düzeni kasteder.
Localhost bir program değildir ve ayrıca kurulmaz. Kurduğunuz şey, bu adreste yanıt verecek sunucu yazılımıdır (örneğin XAMPP içindeki Apache). Sunucu kapalıyken http://localhost açılmaz ve tarayıcı "bağlantı reddedildi" hatası verir.
Localhost ne işe yarar?
Temel amaç, bir şeyi herkese açmadan önce hızlı ve risksiz biçimde denemektir. Başlıca kullanım alanları:
- Web geliştirme: PHP, Node.js veya Python ile yazılan siteyi her değişiklikte sunucuya yüklemeden anında görmek.
- Güvenli test: Tema, eklenti ve sürüm güncellemelerini canlı siteyi tehlikeye atmadan denemek.
- WordPress denemeleri: Hosting almadan WordPress kurmak, yönetim panelini öğrenmek, yeni bir tasarım hazırlamak.
- Veritabanı çalışmaları: MySQL, MariaDB veya PostgreSQL üzerinde sorgu yazmak, yedekten geri yükleme pratiği yapmak.
- API geliştirme: Bir mobil uygulamanın bağlanacağı API'yi önce yerelde çalıştırıp test etmek.
Ayrıca tarayıcılar http://localhost adresini HTTPS olmasa da "güvenli bağlam" (secure context) kabul eder. Böylece service worker veya kamera erişimi gibi normalde HTTPS isteyen özellikleri sertifika kurmadan deneyebilirsiniz (MDN).
Localhost ve 127.0.0.1: loopback adresi nedir?
Loopback (geri döngü), bilgisayarın kendisine paket göndermesini sağlayan sanal bir ağ arayüzüdür. Fiziksel bir ağ kartına bağlı değildir; kablo takılı olmasa ya da Wi-Fi kapalı olsa bile çalışır. Localhost adı bu arayüzün adresine çözülür.
127.0.0.1 nedir? 127.0.0.0/8 bloğu
IPv4'te loopback için tek bir adres değil, bütün bir blok ayrılmıştır: 127.0.0.0 ile 127.255.255.255 arası. RFC 1122, 127 ile başlayan adreslerin bilgisayarın dışında asla görünmemesi gerektiğini söyler. IANA kaydında da bu blok yönlendirilemez ve küresel olarak erişilemez olarak işaretlenmiştir. Uygulamada ise neredeyse her zaman 127.0.0.1 kullanılır; bu yüzden 127.0.0.1 ve localhost çoğu zaman eş anlamlı gibi kullanılır.
::1 nedir? IPv6 loopback adresi
IPv6'da loopback için tek bir adres vardır: ::1 (uzun yazımıyla 0:0:0:0:0:0:0:1). RFC 4291'e göre bu adres fiziksel bir arayüze atanamaz ve ::1 hedefli paketler cihazdan çıkmaz. Güncel işletim sistemleri IPv4 ile IPv6'yı birlikte kullandığı için localhost iki adrese de çözülebilir; örneğin Windows 11'de ping localhost genellikle ::1 adresinden yanıt alır.
"Localhost" neden özel bir addır?
RFC 6761, "localhost" adını ve .localhost ile biten tüm adları özel kullanımlı olarak tanımlar. Standarda göre bu adlara yönelik adres sorguları DNS sunucularına gönderilmemeli; cihazın kendisi her zaman loopback adresiyle yanıt vermelidir. RFC bunu güçlü bir öneri (SHOULD) olarak yazar; güncel tarayıcılar ise localhost'u kendileri doğrudan loopback adresine sabitler. Kayıt kuruluşları da bu adları kimseye tahsis edemez. Kısacası, localhost satın alınabilecek bir alan adı değildir; 127.0.0.1 de herhangi bir siteye ait bir IP adresi değildir.
Hosts dosyası ve localhost
Bilgisayarınız bir adı IP adresine çevirirken DNS'e sormadan önce hosts dosyasına bakar. Dosya Windows'ta C:\Windows\System32\drivers\etc\hosts, macOS ve Linux'ta /etc/hosts konumundadır; dosyayı düzenlemek için yönetici yetkisi gerekir. Windows 10 ve 11'de içindeki localhost satırları yorum satırı (#) olarak gelir, çünkü bu çözümlemeyi sistem kendi yapar. Geliştiriciler buraya kendi yerel adlarını ekleyebilir:
127.0.0.1 projem.test
::1 projem.test
Yerel adlarda .test veya .localhost uzantısını kullanın; bu uzantılar test ve yerel kullanım için ayrılmıştır. Gerçek bir alan adı uzantısı olan .dev'i tarayıcılar yalnızca HTTPS ile açar; .local ise ağdaki cihaz keşfiyle (mDNS) çakışabilir. Sık duyulan "localhost ile site engellenir" bilgisi de aslında hosts dosyasıyla ilgilidir: Bir alan adını 127.0.0.1 veya 0.0.0.0 adresine yönlendirdiğinizde tarayıcı o siteye ulaşamaz.
Localhost nasıl çalışır?
Tarayıcıya http://localhost yazıp Enter'a bastığınız andan sayfanın açılmasına kadar şu dört adım gerçekleşir:
- Tarayıcı isteği başlatır. Port yazılmadığı için HTTP'de 80, HTTPS'te 443 varsayılır.
- Ad çözümlenir. İşletim sistemi localhost adını DNS'e sormadan 127.0.0.1 veya
::1adresine çevirir. - Paket loopback arayüzüne gider. Veri ağ kartına, modeme ya da internete ulaşmaz; işletim sisteminin içinde döner.
- Yerel sunucu yanıt verir. O portu dinleyen Apache, Nginx veya Node.js gibi bir sunucu varsa sayfayı üretip geri gönderir. Dinleyen program yoksa bağlantı reddedilir.

Ağ gecikmesi olmadığı için yerelde açılan sayfalar, canlı sitede gerçek ziyaretçilerin gördüğünden çok daha hızlı görünür.
Localhost ile 127.0.0.1 farkı: IPv6, MySQL soketi ve çerezler
Çoğu durumda ikisi aynı sayfayı açar. Ancak localhost önce çözümlenmesi gereken bir addır, 127.0.0.1 ise doğrudan bir IPv4 adresidir. Fark üç yerde ortaya çıkar:
- IPv6 önceliği: Localhost önce
::1adresine çözülebilir. Tarayıcılar::1reddedilirse 127.0.0.1'i de dener, ancak bazı komut satırı araçları denemez. Sunucu yalnızca 127.0.0.1'i dinliyorsa bu araçlarda bağlantı reddedilir; özellikle Node.js 17-19 sürümlerinde görülenECONNREFUSED ::1hatasının kaynağı budur (Node.js 20'den beri istemci bağlantıları iki adresi de dener). Tersi de olur: Yalnızca::1üzerinde dinleyen bir geliştirme sunucusu (ör. Vite)http://127.0.0.1ile açılmaz. - MySQL bağlantısı: Linux ve macOS'ta MySQL/MariaDB istemcileri "localhost" yazıldığında Unix soketini, "127.0.0.1" yazıldığında TCP bağlantısını kullanır.
- Çerezler: Tarayıcı ikisini farklı kaynaklar (origin) olarak görür; birinde açtığınız oturum diğerinde görünmez.
127.0.0.1, 0.0.0.0 ve yerel IP adresi farkı nedir?
Yerel sunucu kurarken en çok karıştırılan konu adreslerdir. Aşağıdaki tablo hangi adresin ne anlama geldiğini ve kimlerin erişebildiğini özetliyor.

| Adres | Ne demek | Kimler erişir |
|---|---|---|
| localhost | Bilgisayarın kendisi (özel ad) | Yalnızca aynı bilgisayar |
| 127.0.0.1 | IPv4 loopback (127.0.0.0/8 bloğu) | Yalnızca aynı bilgisayar |
| ::1 | IPv6 loopback | Yalnızca aynı bilgisayar |
| 0.0.0.0 | Sunucunun tüm ağ arayüzlerinde dinlemesi; tarayıcı adresi değil | Aynı bilgisayar; güvenlik duvarı izin verirse aynı ağdaki cihazlar da |
| 192.168.x.x, 10.x.x.x, 172.16-31.x.x | Özel (yerel ağ) IP adresi | Aynı ağdaki cihazlar |
| Genel (public) IP | İnternetten görünen adres | İnternetteki herkes (port açıksa) |
Evlerde ve ofislerde genel IP çoğunlukla modeme aittir; bilgisayarınız modemin arkasında özel bir IP ile çalışır. Bazı internet servis sağlayıcıları CGNAT kullandığı için modemin kendisi bile genel bir IP almayabilir. Yerel sunucuyu internetten erişilebilir yapmak için modemde port yönlendirme yapmak ya da ngrok, Cloudflare Tunnel gibi bir tünel hizmeti kullanmak gerekir; CGNAT arkasındaki bağlantılarda port yönlendirme çoğu zaman işe yaramaz. Güvenlik riskleri nedeniyle yerel sunucuyu internete açmak genellikle önerilmez.
0.0.0.0 ne demek?
0.0.0.0 standartlarda hedef adres olarak kullanılmaması gereken özel bir adrestir. Sunucu yazılımlarında ise "tüm ağ arayüzlerinden gelen bağlantıları kabul et" anlamına gelir; IPv6 karşılığı :: adresidir. Örneğin Apache'deki Listen 80 satırı tüm arayüzlerde, Listen 127.0.0.1:80 ise yalnızca loopback'te dinler (Apache belgeleri). Node.js'te server.listen() çağrısına adres verilmezse sunucu :: veya 0.0.0.0 üzerinde açılır. Tarayıcıya 0.0.0.0 yerine localhost yazın; bazı tarayıcılar güvenlik nedeniyle bu adrese erişimi kısıtlıyor.
Localhost'a telefondan veya başka bilgisayardan erişmek
Tanım gereği localhost'a yalnızca aynı bilgisayardan ulaşılır. Siteyi aynı ağdaki bir telefonda görmek için:
- Bilgisayarın yerel IP'sini öğrenin: Windows'ta
ipconfig, macOS'taipconfig getifaddr en0(bağlantınıza göreen1de olabilir), Linux'taip addr. - Sunucunun bu IP'de de dinlediğinden emin olun; örneğin Vite için
npm run dev -- --host. - Güvenlik duvarında porta yalnızca özel ağ için izin verin ve telefonda
http://192.168.1.25:5173gibi bir adresi açın.
Yerel sunucunuzu modemden port yönlendirerek internete açmayın. XAMPP gibi paketler kolay kullanım için hazırlanmıştır; örneğin MySQL root kullanıcısının varsayılan olarak parolası yoktur. Müşteriye kalıcı önizleme göstermeniz gerekiyorsa siteyi bir hosting hesabına ya da parola korumalı bir test (staging) ortamına taşıyın.
Localhost kurulumu nasıl yapılır? XAMPP ile adım adım
"Localhost nasıl açılır?" sorusunun cevabı, bilgisayara bir yerel sunucu paketi kurup çalıştırmaktır. Windows için en yaygın seçenek, Apache Friends'in ücretsiz paketi XAMPP'tır: Apache, MariaDB, PHP, Perl ve phpMyAdmin'i tek kurulumda getirir.

1. XAMPP'ı indirin
XAMPP'ı yalnızca resmi siteden, apachefriends.org adresinden indirin. Ekim 2026 itibarıyla sayfada PHP 8.3, 8.4 ve 8.5 tabanlı üç adet 64 bit Windows paketi var. WordPress, PHP 8.3 ve üzerini önerdiği için üçü de uygundur; canlı sunucunuzdaki PHP sürümüne en yakın olanı seçmek sonradan çıkacak uyumsuzlukları azaltır.
2. Kurulumu yapın
Yükleyicide Apache, MySQL, PHP ve phpMyAdmin işaretli kalsın; Tomcat, Mercury Mail veya FileZilla'ya ihtiyacınız yoksa bu bileşenlerin işaretini kaldırın. Kurulum klasörü olarak varsayılan C:\xampp yolunu bırakın. Yükleyici, Kullanıcı Hesabı Denetimi (UAC) nedeniyle C:\Program Files altına kurulmamasını önerir; orada yazma izni sorunları çıkabilir.
3. Apache ve MySQL'i başlatın
XAMPP Control Panel'i açıp Apache ve MySQL satırlarındaki Start düğmelerine basın. Modül adları yeşile döner, yanlarında PID ve port numaraları (80, 443, 3306) görünür. Panelde "MySQL" yazsa da veritabanı aslında MySQL uyumlu MariaDB'dir. İlk açılışta Windows güvenlik duvarı erişim sorabilir. Siteyi yalnızca bu bilgisayarda kullanacaksanız izin vermeniz genellikle gerekmez, çünkü Windows güvenlik duvarı localhost trafiğini çoğu durumda engellemez; üçüncü taraf güvenlik duvarı ve antivirüs yazılımları ise farklı davranabilir. Telefondan erişecekseniz yalnızca özel ağları işaretleyin, genel (public) ağların işaretini kaldırın.
4. Kurulumu test edin
Tarayıcıda http://localhost adresini açın; XAMPP karşılama sayfası geliyorsa kurulum tamamdır. Web dosyalarınızın yeri C:\xampp\htdocs klasörüdür. PHP'yi test etmek için burada test.php adlı bir dosya oluşturup içine şunu yazın:
<?php phpinfo();
http://localhost/test.php adresinde PHP bilgileri listelenmelidir; kontrolden sonra dosyayı silin. phpMyAdmin'e http://localhost/phpmyadmin adresinden ulaşılır.
Control Panel'in "Service" sütunundaki kutular Apache ve MySQL'i Windows servisi olarak kurar ve bilgisayar açılınca otomatik olarak başlatır. Bunun için paneli yönetici olarak çalıştırmalısınız. Ara sıra geliştirme yapıyorsanız ihtiyaç duyduğunuzda Start'a basmak sistemi daha az yorar.
macOS ve Linux'ta localhost kurulumu
XAMPP'ın güncel yükleyicileri yalnızca Windows için yayımlanıyor. Linux için son sürüm 8.2.12 (Kasım 2023), macOS için 8.2.4'tür (Nisan 2023). Bu paketlerdeki PHP, Apache ve MariaDB 2023'ten beri güncellenmediği için sonradan yayımlanan güvenlik düzeltmelerini içermez; PHP 8.2 dalının güvenlik desteği de 31 Aralık 2026'da sona eriyor. Bu yüzden:
- macOS: MAMP, Local veya Docker Desktop kullanın ya da Homebrew ile bileşenleri ayrı ayrı kurun.
- Linux: Paket yöneticisiyle Apache veya Nginx, PHP ve MariaDB kurmak canlı sunuculara en çok benzeyen ortamı verir. Eski XAMPP kullanıyorsanız paket
/opt/lamppaltındadır vesudo /opt/lampp/lampp startile başlar.
Ubuntu ve Debian'da temel kurulum için şu komutlar yeterlidir:
sudo apt update
sudo apt install apache2 mariadb-server php libapache2-mod-php php-mysql
Web dosyaları /var/www/html klasöründe tutulur.
Localhost kurulum araçları karşılaştırması
Size uygun araç işletim sisteminize, kullandığınız dile ve ekiple çalışıp çalışmadığınıza göre değişir. Seçim yaparken XAMPP'ın güncel yükleyicilerinin yalnızca Windows için çıktığını, macOS ve Linux paketlerinin 2023'te kalan 8.2 sürümleri olduğunu hesaba katın.

| Araç | Platform (Ekim 2026) | Bileşenler | En uygun olduğu |
|---|---|---|---|
| XAMPP | Windows (Linux ve macOS için yalnızca eski 8.2 sürümleri) | Apache, MariaDB, PHP, Perl, phpMyAdmin | Yeni başlayanlar |
| WampServer | Windows (64 bit) | Apache, MySQL veya MariaDB (ikisi birlikte de), PHP | Windows kullanıcıları |
| Laragon | Windows | Apache veya Nginx, MySQL, PostgreSQL, PHP, Node.js | Hızlı geliştirme |
| MAMP | macOS, Windows | Apache veya Nginx, MySQL, PHP | Mac kullanıcıları |
| Local | Windows, macOS, Linux | Hazır WordPress ortamı | WordPress geliştiricileri |
| Docker | Windows, macOS, Linux | Konteynerler | Ekipler ve canlıyla aynı ortam |
WampServer
Yalnızca 64 bit Windows'ta çalışır; Apache, PHP, MySQL veya MariaDB, phpMyAdmin ve Adminer kurar. Sistem tepsisindeki menüden PHP ve veritabanı sürümleri arasında kolayca geçiş yapılabilir. Microsoft Visual C++ Redistributable paketlerini ister ve web dosyalarını C:\wamp64\www klasöründe tutar.
Laragon
Windows için taşınabilir, hızlı açılan bir ortamdır; Apache veya Nginx, MySQL, PostgreSQL, PHP, Node.js ve Python'u bir arada sunar. Her proje klasörüne otomatik olarak proje.test gibi bir adres verir; hosts dosyasını elle düzenlemeniz gerekmez. Ticari olmayan kullanımda lisans almadan ücretsiz kullanılabilir (açılışta lisans hatırlatması çıkar ve otomatik güncelleme yapılmaz); ticari kullanımda ise ücretli lisans gerekir.
MAMP
macOS ve Windows için ücretsiz bir pakettir; gelişmiş özellikler ücretli MAMP PRO'dadır. Mac sürümü varsayılan olarak Apache için 8888, MySQL için 8889 portunu kullandığından site http://localhost:8888 adresinde açılır. Ayarlardan tek tıkla 80 ve 3306 portlarına geçilebilir. Windows sürümünde web dosyaları C:\MAMP\htdocs klasöründedir.
Local
WordPress için hazırlanmış ücretsiz bir uygulamadır; sunucuyu, PHP'yi, veritabanını ve WordPress'i birkaç tıklamayla birlikte kurar. Windows 10/11 (64 bit), macOS ve Linux'ta çalışır ve en az 4 GB RAM ister.
Docker
Uygulamayı ve bağımlılıklarını konteynerlerde çalıştırır. Canlı sunucudaki yazılım sürümlerini birebir kopyalayabildiğiniz için ekip çalışmasında "benim bilgisayarımda çalışıyordu" sorununu azaltır, ama öğrenmesi daha zordur. Docker Desktop kişisel kullanım, eğitim ve ticari olmayan açık kaynak projeler için, ayrıca çalışan sayısı 250'nin ve yıllık geliri 10 milyon doların altında olan şirketler için ücretsizdir. Daha büyük şirketlerde ve kamu kurumlarında ücretli abonelik gerekir; Linux'ta Docker Desktop olmadan kullanılan Docker Engine ise ücretsizdir.
Portu yayımlarken dikkatli olun: -p 8080:80 parametresi portu bilgisayarın tüm ağ adreslerinde erişime açar. Yalnızca kendi bilgisayarınızdan erişmek için adresi de belirtin (Docker belgeleri):
docker run -d -p 127.0.0.1:8080:80 nginx
Docker Engine'i de güncel tutun: 28.0.0'dan eski sürümlerde aynı yerel ağdaki makineler, bazı durumlarda 127.0.0.1'e yayımlanan portlara da ulaşabiliyordu.
Hangisini seçmeliyim?
- Windows'ta ilk kez PHP veya WordPress deneyecekseniz: XAMPP.
- Farklı PHP sürümleri arasında sık geçiş yapıyorsanız: WampServer veya Laragon.
- Mac kullanıyorsanız: MAMP veya Local.
- Yalnızca WordPress geliştiriyorsanız: Local.
- Ekip hâlinde çalışıp canlı sunucuyla birebir aynı ortamı istiyorsanız: Docker.
Localhost portları: localhost:8080, 3000 ve 5173 ne demek?
Port, aynı bilgisayardaki servislerin birbirine karışmadan bağlantı kabul etmesini sağlayan numaralı kapıdır. http://localhost:8080, "bu bilgisayarda 8080 numaralı portu dinleyen sunucuya bağlan" demektir. Port yazılmazsa tarayıcı HTTP için 80'i, HTTPS için 443'ü kullanır.
| Port | Kullanım | Örnek adres |
|---|---|---|
| 80 / 443 | HTTP ve HTTPS varsayılanı (Apache, Nginx, IIS) | http://localhost |
| 3306 | MySQL ve MariaDB | Veritabanı bağlantısı (tarayıcıda açılmaz) |
| 5432 | PostgreSQL | Veritabanı bağlantısı |
| 8080 | Alternatif HTTP portu (IANA: "HTTP Alternate"), Tomcat'in varsayılanı | http://localhost:8080 |
| 8000 | PHP ve Python'un yerleşik sunucularında sık kullanılır | http://localhost:8000 |
| 3000 | Next.js ve birçok Node.js uygulamasının varsayılanı | http://localhost:3000 |
| 5173 | Vite geliştirme sunucusunun varsayılanı | http://localhost:5173 |
3000 ve 5173 resmi web portları değil, geliştirme araçlarının seçtiği varsayılanlardır. Vite, 5173 doluysa bir sonraki boş portu dener; bu yüzden terminalde görünen adresi kullanın.
Apache portunu 8080 yapmak
- XAMPP Control Panel'de Apache satırındaki Config düğmesinden
httpd.confdosyasını açın. Listen 80satırınıListen 8080,ServerName localhost:80satırınıServerName localhost:8080yapıp dosyayı kaydedin.- Control Panel'in sağ üstündeki Config düğmesinden Service and Port Settings penceresini açın, Apache bölümündeki Main Port değerini 8080 yapıp Save'e basın. Bu adım atlanırsa panel 80 numaralı portu denetlemeye ve uyarı vermeye devam eder.
- Apache'yi yeniden başlatıp siteyi
http://localhost:8080adresinden açın.
Çakışma 443'teyse apache\conf\extra\httpd-ssl.conf dosyasındaki Listen 443, <VirtualHost _default_:443> ve ServerName ...:443 satırlarında 443'ü 8080 dışındaki boş bir portla (ör. 4433) değiştirin, aynı değeri panelin SSL Port alanına da yazın. Site bu durumda https://localhost:4433 adresinde açılır.
Hazır paket kurmadan geliştirme sunucusu açmak
Bilgisayarınızda PHP, Python veya Node.js kuruluysa ayrı bir paket kurmadan da yerel sunucu açabilirsiniz:
# PHP'nin yerleşik sunucusu
php -S localhost:8000
# Bir klasörü Python ile yalnızca bu bilgisayarda sunmak
# (Windows'ta python veya py, macOS ve Linux'ta python3)
python3 -m http.server 8000 --bind 127.0.0.1
# Vite, React veya Vue projesi
npm run dev
Canlı sunucunuzdaki bir portun dışarıdan açık olup olmadığını port sorgulama aracı ile kontrol edebilirsiniz. Localhost portları ise yalnızca bilgisayarın içinden görüldüğü için dışarıdan yapılan sorgularda görünmez.
Localhost'a WordPress nasıl kurulur?
XAMPP'ta Apache ve MySQL çalışıyorsa localhost WordPress kurulumu birkaç adımda biter. Güncel XAMPP Windows paketlerindeki MariaDB 10.11, WordPress'in önerdiği "MariaDB 10.11 veya üstü" şartını karşılar (WordPress gereksinimleri). wpdeneme.test gibi yerel bir alan adı kullanmak istiyorsanız aşağıdaki sanal host ayarını kurulumdan önce yapın.
- Veritabanı oluşturun.
http://localhost/phpmyadminadresinde Veritabanları sekmesine girin, ad olarakwpdenemeyazın, karşılaştırma olarakutf8mb4_unicode_ciseçip Oluştur'a tıklayın. - WordPress'i indirin. Paketi wordpress.org adresinden alın. XAMPP, WampServer ve MAMP ise WordPress'in değil, kendi geliştiricilerinin sitelerinden indirilir.
- Dosyaları yerleştirin. ZIP içindeki
wordpressklasörünüC:\xampp\htdocsaltına kopyalayıp adınıwpdenemeyapın. - Kurulumu başlatın.
http://localhost/wpdenemeadresini açın, dili seçin ve bilgileri girin: veritabanıwpdeneme, kullanıcıroot, parola boş (belirlediyseniz kendi parolanız), sunuculocalhost. - Siteyi kurun. Site başlığını, yönetici adını, güçlü bir parolayı ve e-postanızı yazıp kurulum düğmesine tıklayın, ardından
/wp-adminadresinden giriş yapın.
Oluşan wp-config.php dosyası veritabanı bilgilerini şöyle saklar; canlıya taşırken bu satırları hosting bilgilerinizle güncelleyeceksiniz:
define( 'DB_NAME', 'wpdeneme' );
define( 'DB_USER', 'root' );
define( 'DB_PASSWORD', '' );
define( 'DB_HOST', 'localhost' );
Yerel alan adıyla çalışmak (sanal host)
localhost/wpdeneme yerine wpdeneme.test gibi bir adres kullanmak için hosts dosyasına aşağıdaki iki satırı ekleyin:
127.0.0.1 wpdeneme.test
::1 wpdeneme.test
Ardından apache\conf\extra\httpd-vhosts.conf dosyasına şu blokları yazın (Apache'yi 8080'e taşıdıysanız *:80 yerine *:8080 kullanın):
<VirtualHost *:80>
ServerName localhost
DocumentRoot "C:/xampp/htdocs"
</VirtualHost>
<VirtualHost *:80>
ServerName wpdeneme.test
DocumentRoot "C:/xampp/htdocs/wpdeneme"
</VirtualHost>
İlk blok localhost'un eskisi gibi çalışması içindir, çünkü Apache eşleşmeyen istekleri ilk sanal hosta gönderir. Değişiklikten sonra Apache'yi yeniden başlatın. WordPress'i daha önce localhost/wpdeneme adresine kurduysanız Ayarlar > Genel bölümündeki WordPress adresi ve Site adresi alanlarını http://wpdeneme.test olarak güncelleyin; aksi hâlde yeni adres sizi eski adrese yönlendirir. Laragon bu ayarı her proje için kendisi yapar.
Sık karşılaşılan localhost hataları ve çözümleri
Sorunların çoğu üç kaynaktan gelir: Sunucu çalışmıyordur, port başka bir programdadır ya da dosya yanlış yerdedir.

"localhost bağlantıyı reddetti" (ERR_CONNECTION_REFUSED)
Tarayıcı bu hatayı o portta bekleyen bir sunucu bulamadığında verir; Türkçe Chrome'da "localhost bağlanmayı reddetti" olarak da görünebilir. Kontrol sırası:
- XAMPP Control Panel'de Apache'nin çalıştığından emin olun.
- Portu doğru yazın: Apache 8080'deyse adres
http://localhost:8080olmalıdır. - Node.js veya Vite kullanıyorsanız terminaldeki sunucunun açık olduğuna bakın; terminali kapatmak sunucuyu durdurur.
http://127.0.0.1vehttp://[::1]adreslerini (port kullanıyorsanız ör.http://[::1]:5173) ayrı ayrı deneyin. Biri açılıp diğeri açılmıyorsa sunucu yalnızca tek bir IP sürümünde dinliyordur; sunucuyu iki adreste de dinleyecek şekilde ayarlayın ya da çalışan adresi kullanın. Hosts dosyasındaki localhost satırlarının değiştirilmediğini de kontrol edin.
Loopback arayüzünü ping localhost, ping 127.0.0.1 ve ping ::1 komutlarıyla test edebilirsiniz (macOS'ta IPv6 için ping6 ::1). Yanıt geliyorsa sorun sunucu yazılımındadır.
XAMPP Apache başlamıyor: port 80 kullanımda
80 veya 443 portu doluysa Control Panel günlüğünde portun başka bir işlem tarafından kullanıldığı yazar ve Apache birkaç saniye içinde durur. Portu hangi programın kullandığını Komut İstemi'nde (cmd) bulun:
netstat -ano | findstr /C:":80 "
tasklist /FI "PID eq 1234"
İlk komutun çıktısında Yerel Adres sütunu :80 ile biten ve durumu dinleme (LISTENING) olan satıra bakın; en sağ sütun işlem kimliğini (PID) gösterir. Tarayıcınızın dışarıdaki sitelere açtığı bağlantılar da listede görünebilir, onları dikkate almayın. İkinci komut, 1234 yerine bu numarayı yazdığınızda programın adını verir (netstat belgeleri). PowerShell'de Get-NetTCPConnection -LocalPort 80 -State Listen komutu aynı bilgiyi doğrudan verir. Sık görülen nedenler:
- IIS (World Wide Web Publishing Service, W3SVC): PID 4 (System) olarak görünür.
services.mscekranında bu hizmeti durdurup başlangıç türünü "El ile" yapın ya da IIS'i kullanmıyorsanız Windows Özellikleri'nden kaldırın. - HTTP.sys kullanan diğer servisler: Web Deployment Agent Service veya SQL Server Reporting Services gibi servisler de portu tutabilir ve yine PID 4 olarak görünür.
- Docker veya ikinci bir web sunucusu: 80/443'ü yayımlamış bir konteyner, ayrıca kurulu bir Nginx ya da aynı anda açık WampServer, Laragon veya başka bir Apache.
- Sanallaştırma yazılımları: VMware Workstation'ın eski sürümlerindeki paylaşılan sanal makine (Shared VMs) hizmeti 443'ü kullanabilir.
Eski rehberlerde sık geçen Skype, Microsoft tarafından Mayıs 2025'te kapatıldığı için artık olası bir neden değildir. Programı kapatamıyorsanız Apache'yi yukarıdaki adımlarla 8080'e taşıyın. macOS'ta aynı kontrol sudo lsof -nP -iTCP:80 -sTCP:LISTEN, Linux'ta sudo ss -ltnp ile yapılır.
XAMPP MySQL başlamıyor
Günlükte "MySQL shutdown unexpectedly" yazıyorsa iki olasılık öne çıkar:
- 3306 portu dolu: Ayrıca kurulu bir MySQL veya MariaDB servisi çalışıyor olabilir.
netstat -ano | findstr :3306ile kontrol edin ve diğer servisi durdurun. Portu değiştirmeniz gerekirseC:\xampp\mysql\bin\my.inidosyasında hem[mysqld]hem[client]bölümündeki port değerini,phpMyAdmin\config.inc.phpdosyasında$cfg['Servers'][$i]['port']satırını ve Control Panel'deki Service and Port Settings ekranını güncelleyin. - Veri dosyaları zarar görmüş: Ani kapanmalardan sonra sık görülür. Logs düğmesinden
mysql_error.logdosyasını okuyun ve onarmayı denemeden önceC:\xampp\mysql\dataklasörünün tamamını yedekleyin. Günlükteki hata mesajına göre ilerleyin; sorun çözülmezse XAMPP'ı yeniden kurup kendi SQL yedeğinizi phpMyAdmin'den geri yükleyin.ibdata1gibi dosyaları rastgele silmeyin.
403 Forbidden ve 404 Not Found
- 404: Dosya veya yol yoktur. Dosyanın htdocs (WampServer'da www) içinde olduğunu ve adresi doğru yazdığınızı kontrol edin. Windows büyük küçük harf ayırmaz, Linux sunucular ayırır: Yerelde
/projeadresiyle açılanProjeklasörü, canlı sunucuda yalnızca/Projeadresiyle açılır. - 403: Dosya vardır ama erişim engellenmiştir. Genellikle Apache'deki
Requirekuralı erişimi kısıtlıyordur ya da klasördeindex.phpveyaindex.htmlyoktur ve dizin listeleme kapalıdır. XAMPP'ta htdocs için dizin listeleme varsayılan olarak açık olduğundan bu ikinci durum daha çok canlı hostingde 403'e yol açar.
localhost/phpmyadmin açılmıyor
- Sayfa açılmıyor: Apache kapalıdır veya port değişmiştir (8080'de adres
http://localhost:8080/phpmyadminolur). - "Access forbidden": XAMPP, phpMyAdmin'e varsayılan olarak yalnızca aynı bilgisayardan erişime izin verir. Başka cihazdan bağlanıyorsanız bu beklenen ve güvenli davranıştır.
- #1045 Access denied for user 'root'@'localhost': Root kullanıcısına parola belirlediyseniz
phpMyAdmin\config.inc.phpdosyasındakipassworddeğerini güncelleyin ya daauth_typedeğerinicookieyapıp giriş ekranını kullanın.
Localhost'taki site canlıya nasıl taşınır?
Siteyi başkalarının görebilmesi için bir alan adına ve dosyalarınızı ve veritabanınızı barındıracak bir web hosting hesabına ihtiyacınız var. WordPress siteleri için PHP ve veritabanı ayarları bu platforma göre yapılmış bir WordPress hosting paketi işinizi kolaylaştırır. Sunucu kavramına yabancıysanız önce sunucu nedir rehberine göz atabilirsiniz.
Başlamadan önce localhost'taki dosyaların ve veritabanının tam yedeğini alın ve ayrı bir yerde saklayın. Bir adımda hata olursa geri dönebileceğiniz tek güvenli nokta bu yedektir.
WordPress sitesini localhost'tan hostinge taşıma adımları
- Veritabanını dışa aktarın. phpMyAdmin'de veritabanını seçip Dışa aktar sekmesinden SQL dosyası olarak indirin.
- Dosyaları paketleyin.
htdocs\wpdenemeklasörünün içindeki tüm dosya ve klasörleri seçip ZIP olarak sıkıştırın (klasörün kendisini değil). - Hostinge veritabanı ekleyin. cPanel veya Plesk gibi kontrol panelinizde yeni bir veritabanı ve kullanıcı açıp kullanıcıya bu veritabanında tüm yetkileri verin. cPanel'de veritabanı ve kullanıcı adlarının başına hesap adınız eklenir (ör.
hesap_wpdeneme); wp-config.php dosyasına bu tam adı yazın. cPanel'i ilk kez kullanıyorsanız cPanel nedir rehberi işinizi kolaylaştırır. - Dosyaları yükleyin. ZIP dosyasını Dosya Yöneticisi ile
public_htmlklasörüne (Plesk'tehttpdocs) yükleyip arşivden çıkarın. Dosyalar doğrudan bu klasörün içinde olmalıdır; bir alt klasöre çıktıysa köke taşıyın. Dilerseniz FTP de kullanabilirsiniz. - Veritabanını içe aktarın. Hostingdeki phpMyAdmin'de İçe aktar sekmesinden SQL dosyasını yükleyin.
- wp-config.php dosyasını güncelleyin.
DB_NAME,DB_USERveDB_PASSWORDdeğerlerini yeni bilgilerle değiştirin. Veritabanı aynı sunucuda olduğundanDB_HOSTçoğu paylaşımlı hostingdelocalhostkalır; burada localhost, hosting sunucusunun kendisini ifade eder. - Adresleri değiştirin.
http://localhost/wpdenemeadreslerini düz metin bul-değiştir ile değil, serileştirilmiş (serialized) veriyi bozmayan bir araçla değiştirin. SSH ve WP-CLI varsa aşağıdakisearch-replacekomutu tüm adresleri tek seferde günceller. WP-CLI yoksa önce phpMyAdmin'dewp_optionstablosundakisiteurlvehomedeğerlerini yeni adresle değiştirin (ya da geçici olarak wp-config.php'yeWP_HOMEveWP_SITEURLtanımlayın); yönetim paneline girebildikten sonra kalan adresleri Better Search Replace gibi bir eklentiyle değiştirin. - Alan adını yönlendirin ve SSL'i açın. DNS kayıtlarını hostinge yönlendirin, SSL'i etkinleştirin ve Ayarlar > Kalıcı bağlantılar sayfasında bir kez Değişiklikleri kaydet'e basın.
Veritabanını komut satırından almak isterseniz XAMPP'ın mysqldump aracını Komut İstemi'nde (cmd) şöyle çalıştırabilirsiniz. --result-file parametresi, yönlendirme (>) kullanmadan dosyayı doğru karakter kodlamasıyla yazar:
"C:\xampp\mysql\bin\mysqldump.exe" -u root -p --default-character-set=utf8mb4 --result-file=wpdeneme.sql wpdeneme
PowerShell kullanıyorsanız komutun başına & ve bir boşluk ekleyin. Klasörde mysqldump.exe bulunmuyorsa MariaDB'deki yeni adıyla mariadb-dump.exe dosyasını kullanın. Parola sorulduğunda root parolanız yoksa Enter'a basın. Hostingde SSH ve WP-CLI varsa adresleri şu komutla değiştirebilirsiniz:
wp search-replace 'http://localhost/wpdeneme' 'https://www.alanadiniz.com' --skip-columns=guid --dry-run
-dry-runhiçbir şeyi değiştirmeden kaç kaydın etkileneceğini gösterir; sonuç mantıklıysa komutu bu parametre olmadan tekrar çalıştırın. WordPress'in resmi taşıma rehberi de GUID sütununa dokunulmamasını önerir.
Taşımadan sonra kontrol listesi
- Sayfa kaynağında "localhost" araması yapın; kalan bağlantı varsa adres değişikliği eksiktir.
- İletişim formlarını deneyin; canlıda e-posta için SMTP ayarı gerekebilir.
- Ayarlar > Okuma sayfasındaki Arama motoru görünürlüğü kutusunun işaretsiz olduğunu kontrol edin.
- Hostingdeki PHP sürümünün yereldekiyle uyumlu olduğundan emin olun.
Localhost'un sınırları nelerdir?
- Hız testleri yanıltıcıdır: Localhost'ta ağ gecikmesi ve gerçek sunucu yükü yoktur. Google, sıralamada gerçek kullanıcılardan toplanan Core Web Vitals verilerini (LCP, INP, CLS) dikkate alır; bunları canlı adreste PageSpeed Insights ve Search Console ile ölçün.
- Ortam farkı: Yereldeki PHP sürümü ve PHP uzantıları (extension) canlı sunucudakinden farklıysa uyumsuzluk çıkabilir; Linux sunucularda
Logo.pngilelogo.pngiki ayrı dosyadır. - E-posta ve zamanlanmış görevler: Yerel sunucu varsayılan olarak e-posta göndermez; bilgisayar kapalıyken cron işleri de çalışmaz.
| Ortam | Kimler erişir | Ne için | Dikkat |
|---|---|---|---|
| Localhost | Yalnızca sizin bilgisayarınız | Kod yazma, deneme, öğrenme | SSL, e-posta ve cron canlıdan farklı çalışır |
| Staging (test sunucusu) | Parola veya IP kısıtlamasıyla siz, ekibiniz ve müşteriniz | Yayın öncesi kontrol, müşteri onayı | Arama motorlarına kapatılmalı |
| Canlı hosting | İnternetteki herkes | Gerçek ziyaretçilere hizmet | Değişiklikleri önce yerelde veya staging'de deneyin |
Localhost güvenli mi?
Localhost'un kendisi güvenlidir: Loopback trafiği bilgisayardan çıkmaz. Risk iki yoldan gelir: yerel sunucunun yanlışlıkla ağa açılması ve ziyaret ettiğiniz bir sitenin tarayıcınız üzerinden localhost'taki servislere istek göndermesi. Şu önlemler sorunların çoğunu engeller:
- MySQL root kullanıcısına parola belirleyin ve ardından phpMyAdmin yapılandırmasını güncelleyin.
- Sunucuları yalnızca 127.0.0.1'de dinletin: Apache'de
Listen 127.0.0.1:80, MariaDB/MySQL içinmy.inidosyasının[mysqld]bölümündebind-address=127.0.0.1, Docker'da-p 127.0.0.1:8080:80, Python'da--bind 127.0.0.1. - Güvenlik duvarında genel ağlara izin vermeyin. Kafe veya otel Wi-Fi ağında tüm arayüzlerde dinleyen bir sunucu başkalarına görünebilir. Linux'ta Docker'ın yayımladığı portlar ufw kurallarını atlar; bu yüzden portları 127.0.0.1 ile yayımlayın.
- Tarayıcı izinlerine dikkat edin. Ziyaret ettiğiniz bir site, tarayıcınız üzerinden localhost'taki servislere istek gönderebilir. Chrome 142'den beri bu tür istekler için yerel ağ erişimi izni sorar; tanımadığınız sitelere bu izni vermeyin.
- Paketleri güncel tutun. Şu an PHP 8.1 ve öncesi güvenlik desteği almıyor; 8.2'nin güvenlik desteği de 31 Aralık 2026'da bitiyor.
- Gerçek müşteri verisini anonimleştirin. Canlı veritabanının kopyasıyla çalışıyorsanız kişisel verileri maskeleyin; kaybolan bir dizüstü bilgisayar KVKK (Kişisel Verilerin Korunması Kanunu) açısından da risk oluşturur.
Sık sorulan sorular
Localhost ile 127.0.0.1 aynı şey mi?
Neredeyse aynıdır. Localhost bir addır ve 127.0.0.1 (IPv4) veya ::1 (IPv6) adresine çözülür; 127.0.0.1 ise doğrudan IPv4 loopback adresidir.
Localhost:8080 ne demek?
Bilgisayarınızda 8080 numaralı portu dinleyen sunucuya bağlanmak demektir. Tomcat'in varsayılanıdır ve Apache'nin portu 80'den taşındığında da kullanılır.
Localhost hangi portu kullanır?
Localhost'un kendine ait bir portu yoktur. Port yazılmazsa web sunucusu HTTP için 80, HTTPS için 443 portunu kullanır; MySQL ve MariaDB varsayılan olarak 3306'yı dinler. Geliştirme araçları ise 8080, 3000 veya 5173 gibi portlar seçer.
Localhost'u başkaları görebilir mi?
Hayır, localhost'a yalnızca aynı bilgisayardan erişilir. Aynı ağdaki cihazlar ancak sunucu tüm arayüzlerde dinliyor ve güvenlik duvarı izin veriyorsa yerel IP'niz üzerinden bağlanabilir.
Localhost nasıl açılır?
XAMPP gibi bir yerel sunucu paketi kurun, Apache'yi başlatın ve tarayıcıya http://localhost yazın.
XAMPP phpMyAdmin şifresi nedir?
Varsayılan kullanıcı adı root, parolası (şifresi) boştur. Güvenlik için root kullanıcısına parola belirleyin ve config.inc.php dosyasını güncelleyin.
htdocs klasörü nerede?
XAMPP'ta C:\xampp\htdocs, WampServer'da C:\wamp64\www, Mac'teki MAMP'ta /Applications/MAMP/htdocs, Windows'taki MAMP'ta C:\MAMP\htdocs klasörüdür.
XAMPP Mac'te çalışır mı?
Eski bir sürümle çalışır ama önerilmez: macOS için son XAMPP sürümü Nisan 2023 tarihli 8.2.4'tür ve o zamandan beri güncellenmedi. Mac'te MAMP, Local veya Docker daha güncel seçeneklerdir.
Laragon ücretsiz mi?
Ticari olmayan kullanımda lisans almadan ücretsiz kullanılabilir; bu durumda açılışta lisans hatırlatması çıkar. Ticari kullanımda ücretli lisans gerekir.
Localhost internet olmadan çalışır mı?
Evet. Loopback arayüzü ağ bağlantısına ihtiyaç duymaz; internet yalnızca paket, eklenti veya güncelleme indirmek için gerekir.
Bu rehberdeki sürüm, port ve lisans bilgileri yazıldığı dönemin durumunu yansıtır ve zamanla değişebilir. Kurulumdan önce ilgili yazılımın resmi sayfasını kontrol etmenizi öneririz.