Apache Nedir?
Apache, GNU lisanslı yani açık kaynak kodlu, güçlü, sağlam, yetenekli ve esnek bir http (web) sunucusudur.
34,785 Okunma Henüz yorum yapılmamış 04/10/2011 09:52:34 19/09/2014 09:52:59
İlk olarak istedigimiz ozelliklerin ne olmasi gerektigine karar
verecegiz.Ardindan yaptigimiz ayarlamalar ile apachenin tam olarak
istedigimiz sekilde calismasini saglayacagiz.
Bu makalede sizlere guvenli baglantilar,sanal web sunucular vb. gibi
ileri seviye ayarlamalar hakkinda bilgi verilmeyecektir.Bu konularin
herbirisi bir ayri makale konusudur.
Cok fazla detaya girilmeden sadece ana ayarlamalar ve secenekler
anlatilacaktir.
Kararlar
Apache ayar dosyalarina dokunmadan once bazi temel kararlari vermis
olmaniz gereklidir :
Bu web sunucusunun adi ne olacak,
Hangi ag arayuzlerine cevap verecek,
Web sunucusu ayar ve kayit (log) dosyalari nerede (hangi klasorde) yer
alacak,
Bu web sunucusu'nun ziyaretcilere sunacagi dokumanlar hangi klasorde yer
alacak,
Web Sunucusunun Adi
Apache, kendisine gelen HTTP isteklerine cevap verirken kendini tanitmak
icin bu isimi kullanir.Bu isim genelde www.ornek-domain..com
formatindadir.Cok yaygin bir yanlis anlama veya bilgilendirme,
apache'nin buraya yazilan isime cevap verecegidir.Bu dogru degildir...
Apache, "dinlemeye" devam ettigi herhangi bir network arayuzunden ve
herhangi bir porta gelen butun isteklere cevap verebilir.
Apache ongorulen olarak host uzerindeki o anda uygun olan butun aglari
dinlemeye ayarlanmistir.
Sunucu adi iste bu isteklere cevap veririken, apache'nin bir cok cevap
bilgisinin beraberinde kullandigi, kenidisini tanitan bir bilgisel
isimdir.
ServerName www.turk-php.com
Servis verilecek IP adresi
Apache'nin HTTP isteklerini alacagi IP adresidir.Bu adres aslinda
apache'nin degilde host makinenin genel network konfigurasyonuna
baglidir.Bu ayarin girilmesi zorunlu degildir.
Sunucumuz icin 192.168.1.1 IP adresini secelim.Bu adres gordugunuz gibi
ozel bir IP araliginda ve internet uzerinde herhangi bir doger host
makineyi bu sekilde rahatsiz etmis olmayacagiz.
Intranet icin sunucularda bu IP adresi kullanilabilir ama eger Internet
uzerinde bir sunucu kuruluyorsa daha uygun ve gecerli bir IP adresi
alinmali ve makineye bu adres verilmelidir.
Bunlar bu yazinin konusu disindadir.
Apache web sunucusu sadece belirli IP adreslerini dinlemeye
zorlanabilir.Bunun icin BindAddress ve Listen direktifleri kullanilir.Bu
direktifler ornegin makinemizde birden fazla network arayuzu varsa cok
kullanisilidir.Bu durumda bizim tayin ettigimiz arayuz dinelenecek ve bu
sekilde diger arayuzlere servis verilmeyecektir.
Apache ongorulen olarak, makine uzerindeki butun network arayuzlerini
dinler :
BindAddress *
Ornegin apachenin bizim verdigimiz bir IP adresini (dolayisi ile bir
network arayuzunu) dinlemesini istiyorsak asagidaki sekilde bu direktif
kullanilabilir :
BindAddress 192.168.1.1
Veya ornegin yanlizca host makinenin uzerindeki istemcilere cevap
verecek sekilde yapilandirmak icin :
BindAddress 127.0.0.1
Hangi port/portlar'a servis verilecek
Gelenege gore HTTP sunuculari icin ongorulen port 80'dir.Eger
degistirmek istiyorsak Port direktifi ile bunu saglayabiliriz :
Port 80
Bununla beraber Listen direktifide bu amacla kullanilabilir.Listen
direktifi cok yeni bir direktiftir.BindAddress ve Port direktiflerinin
yerine gecmesi icin tasarlanmistir.BindAddress direktifi yanlizca bir
tek IP adresi tanimlamaniza izin vermektedir.Bu durumda ikinci,ucuncu
BindAddress kullanimlari bir onceki direktifin uzerine yazacaktir.
Listen ile birden fazla kez kullanilabilir.Bu durumda bir adres
listesi/port listesi belirlenebilir.
BindAddress ve Port kullanmadan sadece Listen ile asagidaki sekilde
kolayca dinlenmesini istedigimiz IP adresini ve Port numarasini
belirleyebiliriz :
Listen 192.168.1.1:80
Standalone veya inetd secimi
Apache iki mod da calisabilir :
Standalone
inetd
Birinci secenek genel olarak kullanilan moddur.Bu mod ile apache kendi
network baglantilarini kendisi ayarlar, kendisi icin ayarlanmis
portu/portlari kendisi dinler.Tam bir basina buyruk program gibi
davranir.Bu mod apache icin ongorulen moddur.Degistirlmek istenirse
ServerType direktifi kullanilabilir :
ServerType standalone
Ikinci mod ise (Yanlizca UNIX sistemler icin) 'inetd' modudur.Bu durumda
apache 'inetd' tarafindan calistirilir.Ayarlanan porta bir istek
geldiginde, bu istek 'inetd' sunucusu tarafindan apacheye yonlendirilir...
Biz kendi sunucumuzu standalone modda calistiracagiz.Zira 'inetd'
secenegi verimli degildir.
Kullanici ve Grup
UNIX sistemlerde apache, belirli bir kullanici ve grup kimligi altinda
calisacak sekilde yapilandirilabilir.
Apache "root" kullanicisi tarafindan calistirildiginda, gelen isteklere
cevap verecek, boyle kendi altinda dallanan cocuk surecler
olusturur.Buna gelenek olarak "catallanma" denilmektedir.
Iste bu noktada cocuk surecler, -eger User ve Group direktiflerinde
belirli bir kullanici ID ve Grup ID belirlenmis ise- ellerindeki bu
"root" haklarini belirlenen "kullanici" ve "grup" ile degis tokus
ederler.Bir nevi o kullaniciyi evlat edinirler.
Bu sunucu guvenligi acisindan cok onemlidir.Sunucuyu saldirilarin
etkisinden uzaklastirmaktadir.
Apache neden root kullanici olarak baslatiliyor? sorusuna cevap ise 1024
un altindaki port numaralarinin yanlizca yuksek seviye izinlerle
calistirilabilir olmasidir.Bu nedenle acilista apache "root" kullanicisi
haklarina sahip olmalidir.Gordugunuz gibi HTTP portu 80 ise 1024 un
altinda bir port numarasidir.
Biz kendi sunucumuz icin "nobody" yetkisiz kullanicisini, bu amacla
kullanacagiz.Cogu UNIX sisteminde bu kullanici zaten ongorulen olarak
yaratilmistir.
User nobody Group nobody
Windows uzerinde bu direktifer kullanilamaz.Kullanilsa dahi apache
bunlari gozardi edecek kadar zekice tasarlanmistir.Bu nedenle apache
herhangi bir hata mesaji vermeyecektir.
Admin icin eposta adresinin belirlenmesi
Kullanicilarin, sunucu uzerindeki hatalari rapor etmesi icin bir eposta
adresi belirlenmesi cok kullanislidir.Bu admin eposta adresi yaratilan
hata sayfalarinda kullanilabilir.Eposta adresi ServerAdmin direktifi ile
belirlenir :
ServerAdmin < ="" ="text/">document.write('webmaster');document.write('@');document.write('turk-php.com');webmaster@turk-php.com
Sunucu kok klasorunun belirlenmesi
ServerRoot direktifi ile apache'nin kendisi icin gerekli dosyalarini
nerede tutacagi belirlenir.Bu yol ayni zamanda apache'nin diger
direktiflerinde "gorece" tanimlanmis yollar icin bir kok niteligindedir.
Ornegin ErrorLog ve DocumentRoot direktifleri bu sekilde gorece
tanimlanmis yollar icermektedir.
ServerRoot /usr/local/apache
Gordugunuz gibi yolun onunde bir adet "/" isareti bulunmaktadir.Bu
nedenle bu tip yollar "kesin yollar" olarak isimlendirilir.Dosya
agacinda kok dizinden itibaren bastan sona dogru ilgili klasore
ulasilir.
Ongorulen hata kayit dosyasinin secilmesi
Apache ile cok degisik bilgi kayitlari yaratilabilir.Bunlara ornek
olarak erisim kayitlari, ziyaretci gonderen site adreslerinin kayitlari,
hata kayitlari vb. sayilabilir.
Erisim kayitlari veya diger tip bilgi kayitlari ile ugrasip
ugrasmayacaginizi bilemeyiz ama hata kayitlari bir sunucu icin cok
onemlidir.Erisim kayitlari,gonderen kayitlari vb. kayitlar hem islem
zamani alirlar hemde sabit surucu uzerinde bir suru yer kaplarlar.
Butun hatalarin rapor edilip kayida gercirilmesi icin apache web
sunucusu ErrorLog direktifini kullanmaktadir.Bu kayit dosyasi ongorulen
olarak UNIX sistemler icin logs/error_log olarak, windows icin ise
logs/error.log belirlenmistir.
Yukaridaki yollar gordugunuz gibi "goreceli yollardir".Eger "kesin yol"
ile bunlari belirlemek isterseniz asagidaki gibi sunucu kokunden
itibaren tum yolu belirtmeniz gereklidir :
ErrorLog /usr/local/apache/logs/error_log
veya alternetif olarak "gorece yol " ile :
ErrorLog logs/error_log
Bu durumda bir onceki direktifte gordugumuz ServerRoot yolu bu gorece
yolun onune eklenecektir.
Sunulacak web dokumanlarinin tutulacagi klasorun tayin edilmesi
Son olarak sunacagimiz web sayfalarini hangi klasore koyacagimizi tayin
ediyoruz.Bu herhangi bir dosya klasoru olabilir.Buradaki tek sinirlama
apache'nin bu klasore olan erisiminin olmasi gerekliligidir.Apachenin
calistigi makine uzerinde bulunma zorunlulugu yoktur.Ornegin NFS ile
erisilebilen bir dosya klasoru bile olabilir...
Boyle ag servisleri icin http://www.netapp.com adresine bakabilirsiniz.
Ongorulen olarak apache sunacagi dosyalarin ServerRoot ile belirlenen
klasor altinda, htdocs isimli klasorde oldugunu kabul eder.Bunu
degistirmek icin DocumentRoot direktifi kullanilir.Bu direktif ile
belirlenen klasor gorece veya kesin yola sahip olabilir.Gorece yol
girildiginde ServerRoot ile belirlenen klasor bu yolun onune
eklenecektir.
Asagidaki iki ayar satirinin birincisinde gorece yol ikincisinde ise
kesin yol kullanilarak iki ornek yapilmistir.Secim tamamen size
kalmistir.Dosya sisteminde istediginiz bir klasor secerek bu direktifle
asagidaki gibi web klasorunuzu belirleyebilirisiniz :
DocumentRoot htdocs
DocumentRoot /usr/local/apache/htdocs
Biz kendi web sunucumuz icin ServerRoot klasorunun disinda (Bu sekilde
ayar dosyalarinin yer aldigi klasorden , web klasorunu ayirmak iyi bir
guvenlik onlemidir.) /home klasorunun altindaki webler isimli bir
klasore koyacagiz : Diger kullanicilardan bizim dosyalarimizi ayirmak
icin bir de turk-php isimli klasor actim.Iste bu klasor icine konulacak
her dosya web ile ulasilabilir hale geliyor...
DocumentRoot /home/webler/turk-php
Sonuc olarak asagidaki gibi bir web sunucu konfigurasyonu yapmis olduk :
ServerName www.turk-php.com BindAddress 192.168.1.1 #Port 80 User nobody
Group nobody ServerAdmin < ="" ="text/">document.write('webmaster');document.write('@turk-php.com');webmaster@turk-php.com ServerRoot
/usr/local/apache ErrorLog logs/error_log DocumentRoot
/home/webler/turk-php
Yukarida yer alan butun direktifler aciklamalari ile beraber (ingilizce
olarak) httpd.conf dosyasinda yer almaktadir.Burada # ile bir satir
"yorum" haline getirilip etkisiz hale getirilmektedir.Satiri silmekten
daha iyi bir yol bu sekilde ongorulen ayarlari unutmamak icin onune #
isareti getirerek yorum haline getirmektir.
Kaynak php.net
Apache, GNU lisanslı yani açık kaynak kodlu, güçlü, sağlam, yetenekli ve esnek bir http (web) sunucusudur.
34,785 Okunma Henüz yorum yapılmamış 04/10/2011 09:52:34 19/09/2014 09:52:59
27,475 Okunma Henüz yorum yapılmamış 12/09/2009 17:47:07 02/04/2014 01:47:20
Apache web sunucusuna ulasan istek, bir dosya yerine klasore isaret ediyorsa asagidaki 3 islemdenbirisi yapilir :
25,165 Okunma Henüz yorum yapılmamış 26/06/2007 22:01:23 18/01/2015 20:26:52
Mod_rewrite’ı veya htaccess dosyaları ile yönlendirme yapmayı duymayan kalmamıştır
23,611 Okunma Henüz yorum yapılmamış 17/10/2007 23:11:09
This article will lead you through rewrite rules, regular expressions, and rewrite conditions, and provide a great list of examples.
22,141 Okunma Henüz yorum yapılmamış 09/08/2009 03:41:56
Kullancağımız modül bkz. Mod_rewrite. Önceliklewww. Harmankaya. Org/goster. Php?id=5 gibi bir linki www. Harmankaya. Org/goster-3-yazi-basligi. Html gibi kafamdan bir örnek buluyorum ve başlıyorum. İlk işimiz . Htaccess dosyası kullanarak . Php dosyayı html olarak yorumlamayı göreceğiz bunun için /root altındaki . Htacces dosyasına ekleyeceğimiz kod
21,346 Okunma Henüz yorum yapılmamış 24/09/2008 05:47:20
İngilizce Redirectionslarla ilgili bir makale
20,841 Okunma Henüz yorum yapılmamış 15/08/2007 22:04:38
Bu dosyada Apache, httpd, ana sunucu birbirine eş anlamda kullanılmıştır.Kullanılan Türkçe terimlerin yanlarında, ilk sefere özel olarak İngilizce karşılıkları da verilmiştir. Ancak, Symbolic link, PID, Unix sistem çağrıları gibi temel kavramlar olduğu gibi bırakılmıştır.
20,397 Okunma 1 Yorum 26/06/2007 21:48:57 18/01/2015 20:40:22
Apache 2.x 'in Windows 7 üzerine kurulumu
19,190 Okunma Henüz yorum yapılmamış 24/10/2011 10:22:24
19,145 Okunma Henüz yorum yapılmamış 15/08/2007 00:26:20
Peter Freitag'in apache konfigürasyonunda yapılacak bazı düzenlemeler hakkındaki, Apache Security kitabından da alıntılar içeren önerileri. Not: Önerilerin bir garantisi yoktur. Sunucunuzu daha sıkı yapacaktır fakat bütün önerileri yaptıktan sonra sunucunuz %100 güvenli olacak diye bir garanti yok. Ayrıca önerilerin bazıları sizin ortamınızda performansı düşürebilir veya problemlere yol açabilir. Önerilen değişikliklerin ortamınıza uyup uymayacağına karar vermek size kalıyor.
19,067 Okunma Henüz yorum yapılmamış 26/06/2007 21:38:07 07/12/2014 23:16:16
Htaccess'in nerelerde kullanılabileceği hakkında hoş bir ingilizce makale
18,924 Okunma Henüz yorum yapılmamış 15/08/2007 21:57:19 18/01/2015 20:31:50
Herşeyden önce apache sunucusuna yönelik anlatacağım. Önümüzde 2 yol var: biri . Htaccess, evet şu ünlü htaccess hep kaçtığınız ama artık tamam pes dediğiniz olay; diğeri ise php. (cUrl gibi alternatifler de var ama benim bilgim dahilinde değil)…
18,575 Okunma 1 Yorum 14/08/2007 02:10:08
Htaccess; web alanında birçok faydalı yönlendirme işlerininyapılmasını sağlayan, Apache web sunucularında olan etkili ve çok amaçlı bir ayar dosyasıdır.
17,411 Okunma Henüz yorum yapılmamış 13/10/2013 09:47:19 18/01/2015 20:31:43
Wildcard DNS host servisiniz tarafından aktif edilmiş olmalıdır. Wildcard DNS *.alanadiniz.com şeklindeki bir altdomaindir ve bu domain site IP nize yönlendirilmiş olmalıdır.
16,373 Okunma 1 Yorum 24/11/2013 10:07:15 19/09/2014 10:09:00
Akıllı telefonların ve tabletlerin yaygınlaşması ile internetin mobil kullanımı büyük oranda arttı. İleride desktop ve laptopları tamamen bırakır mıyız bilmem ama mobil kullanımın giderek daha da artacağı aşikar gibi görünüyor.
15,576 Okunma Henüz yorum yapılmamış 14/10/2013 10:04:02 19/09/2014 10:04:25
Bazen hosting firmanız WildCARD DNS (*.domainadiniz.com) kullanmanıza izin vermez.
14,693 Okunma Henüz yorum yapılmamış 27/11/2013 01:53:06 27/11/2013 01:55:49
Apache konfigrasyon dosyaları için gerekli yönergeler
9,821 Okunma Henüz yorum yapılmamış 07/12/2014 23:24:44 18/01/2015 20:28:01