5 Ekim 2011 Çarşamba

Apache web sunucusu nasıl kurulur ve çalışır.

Geçen defa Microsoft IIS ile uğursuzluktan sonra Apache`ye yöneldim.

Apache kurulumu.

Apache`nin resmi sitesinden win32 binary installer indirmekle başladım.
Çalıştırdığımda Network Domain ve Server Name (site isimlerine benzer formatda) girdi istedi.
Local user için 8080 portuna kurulmayı teklif etti.

 

İlk çalıştırılması.

Kurulduktan sonra konsolda çalıştırdım ve tarayıcımı localhost:8080, 127.0.0.1:8080, 192.168.1.4:8080 (lokal ağ adresim) yöneltdim.
Her üçünde "It works!" yazısı uğuru bildirdi.

 

Web kök.

Web kök hosta denk gelen klasöre denilir. (Yani, http://localhost/ sorgusunda web sunucunun baktığı ve dosya sistemimizde yerleşen klasör.)
Web kökü Apache`nin kurulduğu klasörde htdocs`ta buldum. İçeride tek yatan index.html dosyası tarayıcımdan gördüyüm "It works!" yazısını taşıyordu.
Artık üzerinde statik bir site kurabilir web sunucum var.

 

TarayıcI taraftan bakış ve çalışma teorisi

Apache web sunucusu HTTP üzerinden hizmet sunar.
HTTP`de bir dosyanın, resmin ya her hangi başka verinin (terim olarak - kaynak) yerleştiği yeri belirtmek için onun yerleştiği hostu (site adresi gibi de algılanabilir) ve o hostda hangi yolda (klasör ve dosya gibi) bulunduğu belirtilir.
Örnek: http://example.com/index.html adresini açmak için, tarayıcımız example.com hostunda /index.html yolu sorgular.
HTTP bir TCP/IP üzerinden çalışan protokol olduğundan, tarayıcımız sunucumuzun yerleştiği IP adrese söylediğimiz port üzerinden bağlantı kurar. HTTP hizmetleri susmaya göre 80 portunu kullanır, tarayıcılar da portu girmediğimzde ona yönelir.
Sunucumuzun hangi IP adresde yerleştiğini bilmek için tarayıcımız biligisayarımızda yerleşen hosts dosyasına müracaat eder. Orada denilen host için IP adres bulmadığı halde DNS hizmetine baş vurur. DNS (alan adı sistemi) hizmeti domainlerin hangi IP adrese bağlı olduğuna cevap bulunduran global sunucular birleşmesidir - konumuzun kapsamı dışında bulunduğu için DNS hakkında bu kadar bilgi yeter.
Şimdi elimizde iki aşağı seviyeli - IP adres, port - ve iki yukarı seviyeli - host, kaynak yolu - tanımlayıcı elde etmiş oluyoruz. Tarayıcımız bunları kullanarak bize istediğimiz kaynağı getiriyor.

 

Sunucu taraftan bakış

Apache çalışmaya başlarken ayarlar dosyasını kontrol eder ve ona göre hizmet sunar.
Ayarlarda hangi IP adreste hangi portu dinlemeli olduğunu belirtebiliriz.
(Bir bilgisayarın birden fazla IP adresi ola bilir. Bu aynı zamanda farklı ağlara bağlı olabilmesinden ileri geliyor. Mesela, local ağ adresi (lan), global ağ adresi (internet üzerinden, wan))
Listen 127.0.0.1:80 dediğimizde, yalnız kendi bilgisayarmızdan erişebilen sunucu elde ederiz.
Susmaya göre ise, bilgisayara bağlanan tüm 80 nolu port soketlerine hizmet sunar.
Bağlantı kurulduğunda, web sunucu HTTP kurallarına göre gelen sorguyu bilgisayarımızdakı dosyaya karşılaştırmaya çalışır.
Web kök denilen, ve http://localhost adresine denk gelen klasör DocumentRoot ayarı ile belirtilir. (Windows`ta susmaya göre "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/" adresi örnektir.)
Bundan sonra localhost hostunda /index.html sorduğumuzda, .../htdocs/index.html dosyası gelir.

 

Yekunda, bir Apache web sunucu ile bir statik site hizmete sunuldu.
Lakin Apache web sunucusu bir bilgisayarda bir çok web site sunabiliyor.
Bunun için VirtualHost ayarı ile sunmak istediğimiz sitenin hangi IP adres, port ve hosta bağlı olduğunu, dosya sistemimizde hangi yolda yerleştiğini belirtmek gerek.
Statik html dosyaların yanında php, perl, python, ruby, asp.net gibi dillerde yazılmış scriptlerin çalıştırılabilinmesi için ilgili modülü Apache`ye yüklemek ya da dosyanı yorumlayıcıya yöneltmesi için ayarlamak gerek.
Bunlar bu başlığın dışında olduğu için burada bitiriyorum.

Herkese güzel siteler!

4 Ekim 2011 Salı

“Microsoft Internet Information Services (Microsoft IIS) nasıl kurulur?” sorusunda başarısızlık.

Microsoft Internet Information Services (Microsoft IIS) bir web server (veb sunucusu) olup, bir çok şey edebilmekle beraber, dosyalarınızı internette açmaya da yardımcı oluyor.

IIS nasıl kurulur sorusu İnternet Programlama dersinin ikinci sorusuydu, ilk olan IIS nasıl çalışır idi.

Ben de eve gelip onu kurmaya yöneldim.


Evvela Microsoft`un sunduğu Web Platform Installer (Web PI) yazılımını www.iis.net sitesinden  indirdim. Tanıtımında Microsoft Web Platformun`un bileşenlerinin - IIS ve uzantıları, SQL Server Express, .NET Framework ve Visual Web Developer gibi yazılımlara erişmekte kolaylık sağladığı yazılmıştı.
Onun arayüzünde modern frameworklarla yanaşı Install IIS görünce, klasik yolun var olduğunu hatırladım ve eskilere saygıdan onu takip etmek istediğime karar verdim.

Windows eklentilerinin idare panelinden (Control Panel > Programs > Programs and Features > Turn Windows features on or off) Internet Information Services öğesini seçip "ok" tusuna basarak kurmayı başlattım.

Kurma bitince, ne start menu`de, ne de program files`da hiç bir şey oluşturmadan, benden habersiz şekilde C:\inetpub\ klasörünün oluşturulduğu, içinde de veb kökün (wwwroot klasörü) yatdığını buldum. İlk başta yanlış kurulduğunu düşünmüştüm.
Tarayıcımı http://localhost/ adresine yönlendirdim. Ne garibse, hoşgeldin sayfasının yerine Error 404 (404.4) geldi.
Microsoftun bilgitabanında durum kodları sayfasında 404.4 hatasının açılımı "No handler configured" diye geçiyordu.
İnternette araştırmanın sonucunda benim kullandığım Windows 7 Home Basic sürümünün özellikleri kısıtlı olduğunu, hatanın da bundan dolayı oluştuğunu buldum.
(IIS 7.5`in farklı Windows sürümleri için sunduğu özellikleri gösteren tablolar: http://technet.microsoft.com/en-us/library/cc753473.aspx . Temel HTTP özelliklerinden statik sayfaları açma bile YOK. Lakin, HTTP hatalar ve yönlendirme var :\.)
IIS ile tanışmamı burada sonlandırıp - bu arada onu silmeyi unutmayarak - açık yazılıma yöneldim.

Herkese kolaylıklar ve bilgisayarında açık yazılım egemenliğini diliyorum!