Localhost nedir? sorusunu kısaca açıklayarak başlayalım.
Localhost nedir?
Tanım: bir programın çalışmakta olduğu bilgisayarı belirten isimdir. Bazen WAMP, XAMPP yada EasyPHP gibi paket programlar ile eş anlamlı gibi kullanılır. Ancak bu hatalı bir tanımlamadır.
Bu programlar 127.0.0.1 adresini yani localhostu kullanarak yayın yapar. Ayrıca bilgisayara tanımlı diğer IP ler üzerinden de yayın yapabilir.
Localhost hakkında sıkça sorulan sorular
Bir programın çalışmakta olduğu bilgisayarı belirten isimdir. Bilgisayarın kendi içinde haberleşmesi için kullanılır. Apache (XAMPP Wamp gibi) sunucusu olan bilgisayarın yerel bir sunucu olarak görev almasında sunucu adresini tanımlar.
127.0.0.1 IPv4 adresi localhost kullanımı için tanımlanmıştır ve TCP/IP üzerinden bilgisayarın kendisine erişmesini sağlamak için kullanılır.
Bilgisayara ait bir port numarasıdır. Http protokolüne 80 portundan cevap verilir. Tomcat sunucuları http iletişimi için varsayılan olarak 8080′ i kullanır. Ama değiştirilebilir.
Apache, MySQL, PHP gibi programları ve bunları tek yerden yönetmeyi sağlayan bir yazılım paketidir.
Yerel sunucu anlamında kullanılır.
Tarayıcıya localhost yazarak yayında olan sayfalara erişebilirsiniz. Localhost da yayınladığınız dosyaları görmek için kullandığınız programın dosyalarına göz atın. XAMPP için htdocs klasörüne, WAMP için www klasöründe bu dosyaları bulabilirsiniz.
Localhost nasıl çalışır?
İki bilgisayarın iletişiminde TCP/IP protokolleri çerçevesinde veri paketleri alınıp gönderilir. Bu paketler içeriğinde esas bilgi yanında alıcı ve gönderenin IP adreslerini de barındırır.
Bilgisayarlar ağ üzerinde gönderilen paketlerin hangilerinin kendisine ait olduğunu anlamak için paket içindeki adreslere bakar. Kendilerine ait olan paketleri alarak cevap verirler.
Bu durum aynı yada farklı ağlar üzerinde bulunan farklı IP adreslerine sahip bilgisayarların iletişiminde sorun teşkil etmez.
Örneğin 192.168.1.1 IP adresine sahip bilgisayar aynı ağda bulunan 192.168.1.2 IP adresli bilgisayar ile kolayca TCP/IP protokolleri ile haberleşir. Ağ kartına gelen paketlerin hangilerinin kendine ait olduğunu kolayca ayırıp cevap verebilirler.
Ancak bir bilgisayarın içerisinde bulunan donanım ve yazılımların yine aynı bilgisayar içerisindeki bir donanım yada yazılım ile güvenli bir şekilde iletişim kurması için ağ üzerindeki IP adresinden farklı bir adrese gerek duyulmuştur. Bu ihtiyacı karşılamak içinde 127.0.0.0/8 adres bloğu tahsis edilmiş ve localhost olarak tanımlanmıştır.
Bilgisayarın TCP/IP üzerinden kendisine erişmesini sağlamak için oluşturulan IP bloğu üzerinden iletişimi kontrol etmek için de geri döngü (loopback) aygıtı adı verilen sanal bir ağ kartı oluşturulmuştur.
Sanal ağ kartı giden verileri 127.0.0.1 adresi üzerinden bilgisayarın kendisine yönlendirir. Böylece gönderilen veri paketleri bilgisayarın mevcut bulunduğu ağa çıkmadan kendine geri döner. Haliyle bilgisayarın kendi içinde güvenle haberleşir.
Örneğin : Bilgisayarınıza web sitesi tasarımlarınızı geliştirmek için WAMP Server kurulumu yaptığınızı varsayalım. WAMP Server paketi içinde bulunan Apache web sunucusu ile web sayfalarınız ön tanımlı olarak localhost:80 portu üzerinden yayınlanmaya başlar.
Tarayıcınıza localhost yazdığınızda tasarımını yaptığınız web sayfalarınızı görüntüleyebilirsiniz. Burada web tarayıcınız ve Apache sunucusu için localhost sizin bilgisayarınızdır. Tarayıcıdan talep ettiğiniz istek modeme ulaşmadan Apache tarafından cevaplanır.
Localhost IP adresi 127.0.0.1
Bu adres, yerel sunucu kimliği olarak geçer ve 127.0.0.1 şeklindedir. Burada bulunan 127 sayısı bir özel ağ alanıdır. Bu adres değişmez ve tüm bilgisayarlar için geçerli ve aynıdır. Bilgisayar donanımları arasında iletişim kurulmasını mümkün kılar.
Modem ile internete bağlı bir bilgisayar kendini ağa tanıtan bir IP adresine sahiptir. Genelde 192.168.1.2 gibi bir adrestir. Bu adres ağda bilgisayarı tanımlamak içindir.
Localhost nasıl açılır?
Bununla kastedilen aslında Apache veya IIS gibi bir web sunucusu programın bilgisayara kurulumu ve bunlar üzerinden http isteklerine cevap vermesinin nasıl sağlanacağıdır.
Apache veya IIS programlardan biri bilgisayarınıza kurulu ve çalışıyor ise localhost üzerinden yayın açık demektir. Üzerinde çalışılan web sayfaları sadece HTML, CSS, JavaScript ile oluşturulmuşsa Apache gibi bir web sunucu programı yeterlidir.
Ancak sayfalar PHP dili ve MySQL veritabanı bağlantıları içeriyorsa PHP yorumcusu ve MySQL sunucusuna da ihtiyaç olacaktır. Bunun içinde Apache yanında PHP ve MySQL server programlarına ihtiyacınız var demektir. Tavsiye ettiğimiz programları kurarak localhost da çalışmaya başlayabilirsiniz.
Localhost kurulumu
Esasında local web sunucusu oluşturmak olan localhost kurulumu için temel ihtiyacı ve daha fazlasını karşılayan ücretsiz paket programlar mevcuttur.
Localhost programı
Localhost için program arayanlara en iyi paket programları aşağıda listeledik. İşletim sisteminize uygun programlardan birini seçerek localhost kurulumu yapabilirsiniz.
Windows için localhost programları
Windows bilgisayarlar için Wamp Server, XAMPP, AppServer ve WebMatrix en yaygın kullanılan en iyi localhost programlarıdır. easyphp kullanılan bir diğer programdır. Bu programlardan birinin kurulmasından sonra web sayfalarının yayınlanacağı yerel bir sunucu oluşturulabilirsiniz.
Kişisel bilgisayarınıza aşağıdaki kurulumlardan birini yaparak web geliştirme ortamına dönüştürebilir ve çalışmaya başlayabilirsiniz.
Önerilen programlar;
- XAMPP kurulumu
- Wamp Server Kurulumu
XAMPP mı Wamp mı kullanmalıyım?
Benim tavsiyem XAMPP olacaktır. Neden?
- Linux ve Windows desteği bulunur.
- Apache Friends tarafından açık kaynaklı ve ücretsiz geliştirilir.
- Yönetim paneli kullanımı oldukça basittir.
- İleride Java ya merak salarsanız dahili Tomcat desteği vardır.
- Bitnami modülü sayesinde Joomla!, Drupal ve WordPress’i yükleyerek PHP uygulamalarının geliştirilmesini büyük ölçüde kolaylaştırır.
Linux için localhost programları
Linux işletim sistemleri için ise LAMP ve XAMPP paketleri kullanılabilir.
Localhost kullanımı
Gerekli programları kurduktan sonra bu programların yönetim paneli üzerinden kullanmaya başlayabilirsiniz. Bundan önce bir vakit PHP örnekleri üzerine çalışmak da faydalı olacaktır.
Tarayıcıdan localhost erişimi
“Local” kelimesinden de anlaşılacağı üzere yerel ve sınırlı bir sistemdir. Localhost IPv4 adresi olan 127.0.0.1 adresine yada ::1 IPv6 adresine karşılık gelir.
Burada yayınlanan herhangi bir kaynağa yetkisi olmayan hiçbir kullanıcı giremez. Kişisel bilgisayarlarda bulunan Chrome, Firefox gibi web tarayıcılarının adres çubuğuna, http://127.0.0.1 ya da http://localhost yazarak giriş sağlanabilir.
Doğrudan bu adresler üzerinden erişilen sayfa ise esasen Apache gibi bir web sunucusu programının www yada htdocs klasöründe sunduğu index.html, index.php gibi indeks sayfalarıdır. Tarayıcıdan localhost erişimi için bir bağlantı hatası alıyorsanız bilgisayarınızda web sunucusu programı aktif olmayabilir.
İntranet yayını
Apache web sunucusu varsayılan olarak 127.0.0.1 adresi 80 portunu sinler ve cavap verir. Apache yada IIS bilgisayarın ağ üzerinde tanımlanmış IP adresini dinleyip cevap verecek şekilde değiştirilebilir. Bu durumda aynı ağda olan başka bir bilgisayardan web sunucusunda yayınlanan sayfalara erişilebilir.
Örneğin bilgisayarınızın intranet üzerindenki IP adresi 192.168.1.5 olsun. Apache ayarlarını da 195.16.1.5 adresini dinleyip cevap verecek şekilde ayarlarlayın. Bu durumda ağınızda bulunan başka bir bilgisayarda bulunan tarayıcıya 195.168.1.5 adresini yazdığınızda Apache üzerinden sunulan dosyalara erişilebilir.
Artık bilgisayarınız intranet üzerinde bulunan diğer tüm bilgisayarlar tarafından erişilebilen web sunucusu vazifesi yapmaya başlamış olur.
Localhost’ un web sitesi tasarımı ve geliştirmesinde kullanımı
Web siteleri bir alan adı ile tanımlanmış ve kendilerine tahsis edilmiş sunucu üzerinden yayınlanırlar. Localhost bu durumda web sitesinin yayınlandığı sunucuyu tanımlar.
Örneğin bir sunucuya WordPress kurulumu yaptığınızı varsayalım. Kurulum sırasında MySQL veritabanına ait bilgiler istenir. Bu bilgilerden birisi hostname dir. Kurulumu yaptığınız bilgisayar (sunucu) üzerindeki MySQL sunucusunu kullanmak istiyorsanız hostname olarak “localhost” yazmanız yeterlidir.
Web sitelerinin sunucu üzerine yüklenip yayınlanmadan önce tasarlama ve geliştirilme aşamaları için test ortamına ihtiyaç duyulur. Bu ortam kişisel bir bilgisayarın web sunucusu haline getirilmesi ile sağlanabilir.
Bir bilgisayara, web sunucusunda bulunması gereken bileşenler yüklenip çalıştırıldığında bir web sunucusu elde edilmiş olur. Gerekli bileşenlerin en önemlisi ve web sayfaları istemci bilgisayarlara sunan esas program Apache gibi bir web sunucu programıdır.
Web tasarımcıları, yazılımcılar, öğrenciler veya web dünyasına ilgisi olanlar da kodlarını test edebilmek, web teknolojilerini öğrenmek için bir web sunucusuna ihtiyaç duyarlar.
Test ihtiyacı bir barındırma hizmeti ile karşılanabilir ancak internet bağlantısı ve ek bir maliyet getirir. Maliyetten ziyade pratik bir geliştirme ortamı sağladığından kişisel bilgisayarlar tercih edilir.
Özellikle PHP, ASP gibi programlama dillerinde yazılmış olan web sayfaları kişisel bilgisayarlarda çalıştırılarak test edilir. Olası yazılım hataları ve açıklar erkenden giderilmiş olur.
Kişisel bilgisayardan internete yayın yapmak
Hosting parası ödemeye ne gerek var. Kendi bilgisayarım zaten sürekli açık, sınırsız internet bağlantım da var. Web sitemi buradan yayınlasam nasıl olur? İyi olmaz 🙂
Modemlerde bulunan dış IP adresi, statik IP adresine çevirilerek internete açık web yayını yapılır. Bu adrese statik denilmesinin sebebi “değişmeyen” nitelikte olmasıdır. Modem IP’ si değişebilir özelliktedir. Değişmeyen bir IP adresi ulaşılabilen bir sunucu oluşturur. IP nin sürekli değişmesi sorununu programlar ile halledebilirsiniz. Ama cevabım halen: İyi olmaz.
Sürekli bilgisayarın açık kalması, iyi bir internet bağlantısı gerektiği için pek fazla tercih edilmez. Tüm bunların sağlanması durumunda bile, yerel sunucu sınırlı sayıda kullanıcıya hizmet verebilecek kapasitedir.
Bu da tasarlanan sitenin çökmesi, çok geç yüklenmesi gibi sorunlara neden olur. Güvenlik konusunda yaşayacağınız sorunlar ise başlı başına bir kitap konusu. Tüm bu sorunlara rağmen başarıp yayın yapanlar mutlaka vardır. Ancak bir web sitesinin yeri bir web sunucusudur.
Sonuç
WordPress kurmak isteyenler, PHP, HTML kodlama ile uğraşanlar hosting almadan yani internet ortamına açılmadan önce denemelerini localhost üzerinde yaparlar. Wamp, XAMPP gibi programları bilgisayara kurduktan sonra çalışmaya başlayabilirsiniz. Tarayıcıya localhost yada 127.0.0.1 yazarak sayfalara ulaşabilirsiniz. Böylece internet ortamında nasıl görüneceklerine bakabilirsiniz.
Kaynaklar
- Wiki * https://en.wikipedia.org/wiki/Localhost
- Hostinger * https://www.hostinger.com/tutorials/what-is-localhost