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!

Hiç yorum yok:

Yorum Gönder