magmalinux-apache

1  Apache

Apache, birden fazla platformda çalışabilen, internet dünyasının en çok kullanılan HTTP sunucusudur. İnternet tarayıcınıza www.google.com şeklinde bir adres girdiğinizde, tarayıcınız google.com alanındaki bir HTTP sunucusu ile iletişim kurar ve google.com’dan ana sayfasını göndermesini ister. google.com sunucusu gelen isteği değerlendirip, kendisinden istenen sayfayı tarayıcıya gönderir. Tarayıcı ile google.com arasındaki bu iletişimin belli kuralları vardır, bu kurallar HTTP (Hyper Text Transfer Protocol) olarak adlandırılır. Apache yazılımı google.com tarafında çalışan, tarayıcıdan gelen isteklere cevap veren bir HTTP sunucusudur. Kısaca tarayıcınıza bir adres girdiğinizde, tarayıcınızın konuştuğu yazılım bir HTTP sunucusudur. Bahsi geçen Apache, HTTP sunucusu yazılımlarından biridir.

Bu belgede, Debian türevi Linux dağıtımları temel alınarak, Apache 2. sürümünden bahsedilecektir.

1.1  Apache Kurulumu

Apache 2 HTTP sunucusunu, sisteminize, aşağıdaki komutu kullanarak kurabilirsiniz:

# aptitude install apache2

Yüklemekte olduğunuz apache2 paketi başka paketleri yükleyen bir sanal pakettir ve Apache’nin temel olarak çalışabilmesi için ihtiyaç duyulan her şeyi yükleyecektir. Kurulum işlemi tamamlandıktan sonra, herhangi bir yapılandırmaya gerek duyulmaksızın Apache otomatik olarak başlatılır. Daha sonradan elle başlatmak isterseniz:

# /etc/init.d/apache2 start

komutunu kullanabilirsiniz (Yeniden başlatmak için start yerine restart parametresini, durdurmak için stop parametresini kullanın).

Sıra Apache’yi test etmeye geldi. Eğer Apache’yi kurduğumuz bilgisayarda çalışıyorsak, internet tarayıcısının adres satırına, http://localhost/ yazarak test edebiliriz.

Sunucuda bir grafik arayüz yok ise

lsof -i :80

komutu ile 80 numaralı portun dinlendip dinlenmediğini görebilirsiniz.

Eğer Apache’yi kurduğumuz bilgisayara uzaktan bağlanıyorsak, adres satırına Apache’nin kurulu olduğu bilgisayarın IP adresini yazıyoruz.

Tarayıcıda aşağıdaki gibi bir sayfa bizi karşılamış ise, Apache sorunsuz çalışıyor demektir:

apache

Eğer sayfa bulunamadı gibisinden bir hata alıyorsanız, yukarıdaki komutla Apache’yi elle başlatmayı deneyin. Sorunun devam etmesi durumunda /var/log/apache2/ dizini altındaki logları takip edin.

1.2  Apache ile Yerelde Çalışmak

Birçok geliştirici bir web sitesi geliştirirken, çalışmalarını yerelde çalışan Apache üzerinde gerçekleştirir. Apache varsayılan haliyle, /var/www dizinindekileri yayınlar. Yani bu dizin içerisine kopyaladığınız dosyalara, tarayıcınızın adres satırına http://localhost/dosyaadi yazarak ulaşabilirsiniz.

Her http://localhost/ adresini ziyaret ettiğinizde http://localhost/apache2-default/ sayfasına yönlendirilmek hoşunuza gitmediyse, /etc/apache2/sites-enable/000-default dosyasını herhangi bir metin editörü ile açın ve RedirectMatch satırı silin ya da başına # karakteri koyun (# karakteri ile başlayan satırlar, yorum satırı olup, Apache sunucusu tarafından değerlerdirilmeye alınmayacaktır). Bu işlemden sonra Apache sunucunuzu yeniden başlatmanız gerekiyor:

# /etc/init.d/apache2 restart

Şimdi test için /var/www dizinine birkaç dosya kopyalayıp, tarayıcınızla http://localhost/ adresini ziyaret edin.

Farkettiğiniz üzere, /var/www dizinine yazabilmeniz için tüm haklara sahip (root) kullanıcı olmanız gerekiyor. Geliştirmenizi kendi ev dizininizde (home) yaparken, her seferinde ev dizininizdeki dosyaları /var/www altındaki eski sürümleriyle değiştirmek yerine, Apache’ye sizin ev dizininizdeki bir klasörü yayınlamasını söyleyebilirsiniz. Bunu sağlamanın bir çok yolu varken biz basitlik açısından Apache’nin UserDir modülünün kullanalımından bahsedelim.

UserDir modülünü aktifleştirmek için aşağıdaki komutu kullanın:

# a2enmod userdir

Değişiklerin geçerli olması için Apache’yi yeniden başlatın. Son olarak ev dizininizde public_html isminde bir klasör oluşturup, yayınlamak istediklerinizi bu klasöre kopyalayın (ya da geliştirmenizi bu klasörde yapın). Apache http://localhost/~kullaniciadi/ adresinde public_html dizinine kopyaladıklarınızı yayınlamaya başlayacak (Buradaki kullanıcı adı, sisteme giriş yaparken kullandığınız kullanıcı adıdır. Yani hangi kullanıcının ev dizinindeki public_html’i yayınlamak istiyorsanız, bu adrese o kullanıcı adını yazmalısınız).