Bilgi Bankası 0
0 Kayıt Ol
Oweb Bulut İnternet Hizmetleri A.Ş. Anonim Şirketi
0 (850) 303 31 32
Beşiktaş / İSTANBUL
Maslak V.D - 6341135657
Ticari Bilgilerimiz Banka Hesapları Sözleşmelerimiz
Firma Hakkında Bilmek İstedikleriniz
  1. Ana Sayfa
  2. Bilgi Bankası
  3. Genel Rehberler
  4. Localhost Nedir? 127.0.0.1, ::1 ve XAMPP ile Kurulum

Localhost Nedir? 127.0.0.1, ::1 ve XAMPP ile Kurulum

Genel Rehberler 8 dk okuma 10 görüntülenme

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.

Tarayıcısında http://localhost açık olan bir bilgisayar ve isteğin aynı bilgisayara geri döndüğünü gösteren döngü oku; 127.0.0.1, ::1 ve Loopback etiketleri

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.

Not

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:

  1. Tarayıcı isteği başlatır. Port yazılmadığı için HTTP'de 80, HTTPS'te 443 varsayılır.
  2. Ad çözümlenir. İşletim sistemi localhost adını DNS'e sormadan 127.0.0.1 veya ::1 adresine çevirir.
  3. Paket loopback arayüzüne gider. Veri ağ kartına, modeme ya da internete ulaşmaz; işletim sisteminin içinde döner.
  4. 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.

Localhost isteğinin akışı: tarayıcı, 127.0.0.1 veya ::1 çözümlemesi, verinin bilgisayardan çıkmadığı loopback arayüzü ve yanıt veren yerel sunucu

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 ::1 adresine çözülebilir. Tarayıcılar ::1 reddedilirse 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ülen ECONNREFUSED ::1 hatası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.1 ile 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.

localhost, 127.0.0.1, ::1, 0.0.0.0, 192.168.x.x ve genel IP adreslerinin ne anlama geldiğini ve kimlerin erişebildiğini karşılaştıran tablo

AdresNe demekKimler erişir
localhostBilgisayarın kendisi (özel ad)Yalnızca aynı bilgisayar
127.0.0.1IPv4 loopback (127.0.0.0/8 bloğu)Yalnızca aynı bilgisayar
::1IPv6 loopbackYalnızca aynı bilgisayar
0.0.0.0Sunucunun tüm ağ arayüzlerinde dinlemesi; tarayıcı adresi değilAynı 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 adresiAynı 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:

  1. Bilgisayarın yerel IP'sini öğrenin: Windows'ta ipconfig, macOS'ta ipconfig getifaddr en0 (bağlantınıza göre en1 de olabilir), Linux'ta ip addr.
  2. Sunucunun bu IP'de de dinlediğinden emin olun; örneğin Vite için npm run dev -- --host.
  3. Güvenlik duvarında porta yalnızca özel ağ için izin verin ve telefonda http://192.168.1.25:5173 gibi bir adresi açın.
Uyarı

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.

XAMPP kurulumunun dört adımı: apachefriends.org'dan indirme, C:\xampp klasörüne kurma, Apache ve MySQL'i başlatma, http://localhost ile test

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.

İpucu

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/lampp altındadır ve sudo /opt/lampp/lampp start ile 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.

XAMPP, WampServer, Laragon, MAMP, Local ve Docker yerel sunucu araçlarının platform, bileşen ve en uygun kullanım alanı karşılaştırma tablosu

AraçPlatform (Ekim 2026)BileşenlerEn uygun olduğu
XAMPPWindows (Linux ve macOS için yalnızca eski 8.2 sürümleri)Apache, MariaDB, PHP, Perl, phpMyAdminYeni başlayanlar
WampServerWindows (64 bit)Apache, MySQL veya MariaDB (ikisi birlikte de), PHPWindows kullanıcıları
LaragonWindowsApache veya Nginx, MySQL, PostgreSQL, PHP, Node.jsHızlı geliştirme
MAMPmacOS, WindowsApache veya Nginx, MySQL, PHPMac kullanıcıları
LocalWindows, macOS, LinuxHazır WordPress ortamıWordPress geliştiricileri
DockerWindows, macOS, LinuxKonteynerlerEkipler 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.

PortKullanımÖrnek adres
80 / 443HTTP ve HTTPS varsayılanı (Apache, Nginx, IIS)http://localhost
3306MySQL ve MariaDBVeritabanı bağlantısı (tarayıcıda açılmaz)
5432PostgreSQLVeritabanı bağlantısı
8080Alternatif HTTP portu (IANA: "HTTP Alternate"), Tomcat'in varsayılanıhttp://localhost:8080
8000PHP ve Python'un yerleşik sunucularında sık kullanılırhttp://localhost:8000
3000Next.js ve birçok Node.js uygulamasının varsayılanıhttp://localhost:3000
5173Vite 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

  1. XAMPP Control Panel'de Apache satırındaki Config düğmesinden httpd.conf dosyasını açın.
  2. Listen 80 satırını Listen 8080, ServerName localhost:80 satırını ServerName localhost:8080 yapıp dosyayı kaydedin.
  3. 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.
  4. Apache'yi yeniden başlatıp siteyi http://localhost:8080 adresinden 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.

  1. Veritabanı oluşturun. http://localhost/phpmyadmin adresinde Veritabanları sekmesine girin, ad olarak wpdeneme yazın, karşılaştırma olarak utf8mb4_unicode_ci seçip Oluştur'a tıklayın.
  2. WordPress'i indirin. Paketi wordpress.org adresinden alın. XAMPP, WampServer ve MAMP ise WordPress'in değil, kendi geliştiricilerinin sitelerinden indirilir.
  3. Dosyaları yerleştirin. ZIP içindeki wordpress klasörünü C:\xampp\htdocs altına kopyalayıp adını wpdeneme yapın.
  4. Kurulumu başlatın. http://localhost/wpdeneme adresini açın, dili seçin ve bilgileri girin: veritabanı wpdeneme, kullanıcı root, parola boş (belirlediyseniz kendi parolanız), sunucu localhost.
  5. 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-admin adresinden 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 portları ve hataları tablosu: 80 ve 443, 3306, 8080, 3000 ve 5173 portları ile bağlantı reddedildi, port kullanımda, 403 ve 404 hatalarının anlamı ve çözümü

"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ı:

  1. XAMPP Control Panel'de Apache'nin çalıştığından emin olun.
  2. Portu doğru yazın: Apache 8080'deyse adres http://localhost:8080 olmalıdır.
  3. Node.js veya Vite kullanıyorsanız terminaldeki sunucunun açık olduğuna bakın; terminali kapatmak sunucuyu durdurur.
  4. http://127.0.0.1 ve http://[::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.msc ekranı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 :3306 ile kontrol edin ve diğer servisi durdurun. Portu değiştirmeniz gerekirse C:\xampp\mysql\bin\my.ini dosyasında hem [mysqld] hem [client] bölümündeki port değerini, phpMyAdmin\config.inc.php dosyası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.log dosyasını okuyun ve onarmayı denemeden önce C:\xampp\mysql\data klasö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. ibdata1 gibi 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 /proje adresiyle açılan Proje klasörü, canlı sunucuda yalnızca /Proje adresiyle açılır.
  • 403: Dosya vardır ama erişim engellenmiştir. Genellikle Apache'deki Require kuralı erişimi kısıtlıyordur ya da klasörde index.php veya index.html yoktur 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/phpmyadmin olur).
  • "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.php dosyasındaki password değerini güncelleyin ya da auth_type değerini cookie yapı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.

Önemli

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ı

  1. Veritabanını dışa aktarın. phpMyAdmin'de veritabanını seçip Dışa aktar sekmesinden SQL dosyası olarak indirin.
  2. Dosyaları paketleyin. htdocs\wpdeneme klasö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).
  3. 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.
  4. Dosyaları yükleyin. ZIP dosyasını Dosya Yöneticisi ile public_html klasörüne (Plesk'te httpdocs) 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.
  5. Veritabanını içe aktarın. Hostingdeki phpMyAdmin'de İçe aktar sekmesinden SQL dosyasını yükleyin.
  6. wp-config.php dosyasını güncelleyin. DB_NAME, DB_USER ve DB_PASSWORD değerlerini yeni bilgilerle değiştirin. Veritabanı aynı sunucuda olduğundan DB_HOST çoğu paylaşımlı hostingde localhost kalır; burada localhost, hosting sunucusunun kendisini ifade eder.
  7. Adresleri değiştirin. http://localhost/wpdeneme adreslerini 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ğıdaki search-replace komutu tüm adresleri tek seferde günceller. WP-CLI yoksa önce phpMyAdmin'de wp_options tablosundaki siteurl ve home değerlerini yeni adresle değiştirin (ya da geçici olarak wp-config.php'ye WP_HOME ve WP_SITEURL tanımlayın); yönetim paneline girebildikten sonra kalan adresleri Better Search Replace gibi bir eklentiyle değiştirin.
  8. 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-run hiç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.png ile logo.png iki 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.
OrtamKimler erişirNe içinDikkat
LocalhostYalnızca sizin bilgisayarınızKod yazma, deneme, öğrenmeSSL, e-posta ve cron canlıdan farklı çalışır
Staging (test sunucusu)Parola veya IP kısıtlamasıyla siz, ekibiniz ve müşterinizYayın öncesi kontrol, müşteri onayıArama motorlarına kapatılmalı
Canlı hostingİnternetteki herkesGerçek ziyaretçilere hizmetDeğ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çin my.ini dosyasının [mysqld] bölümünde bind-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.

Bu makale yardımcı oldu mu?

Aradığınızı bulamadınız mı?

Teknik ekibimiz 7/24 hizmetinizde; sorularınızı genellikle dakikalar içinde yanıtlıyoruz.


Görüşleriniz Değerli Anketimize Katılın
Müşteri Hizmetleri0 (850) 303 31 32 E-posta[email protected] WhatsApp DestekHemen yazın
Türkçe
₺ TRY