From: Takashi Sato Date: Sat, 31 May 2008 12:14:25 +0000 (+0000) Subject: Add Turkish translations X-Git-Tag: 2.0.64~160 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=595f6ef540cd9062d0fcf1ccc3301954edfadf58;p=thirdparty%2Fapache%2Fhttpd.git Add Turkish translations Submitted by: Nilgün Belma Bugüner Reviewed by: Orhan Berent git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.0.x@662018 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/docs/manual/mod/core.xml.tr b/docs/manual/mod/core.xml.tr new file mode 100644 index 00000000000..0704962ea3e --- /dev/null +++ b/docs/manual/mod/core.xml.tr @@ -0,0 +1,3119 @@ + + + + + + + + + + +core +Apache HTTP Sunucusunda daima mevcut olan çekirdek + özellikler +Core + + +AcceptPathInfo +Dosya isminden sonra belirtilen yol verisini kabul veya + reddeder. +AcceptPathInfo On|Off|Default +AcceptPathInfo Default +server config +virtual hostdirectory +.htaccess +FileInfo +Apache 2.0.30 ve sonrasında mevcuttur. + + +

Bu yönerge, istekte dosya isminden sonra (dizinde belirtilen dosya + bulunmayabilir) belirtilen yol verisinin kabul edilip edilmeyeceğini + denetler. Dosya isminden sonra belirtilen yol verisi + PATH_INFO ortam değişkeninde betiklerin kullanımına + sunulabilir.

+ +

Örneğin, içinde sadece here.html dosyası bulunan bir + /test/ dizinimiz olsun. /test/here.html/more + ve /test/nothere.html/more isteklerinin her ikisi de + PATH_INFO değişkenine /more verisinin + atanmasını sağlar.

+ +

AcceptPathInfo yönergesine atanabilecek argüman + sayısı üçtür:

+
+
Off
Sadece dosya isminden sonra yol verisi + bulunmayan istekler kabul edilir. Yukarıdaki örnekteki gibi + /test/here.html/more şeklindeki istekler bir 404 (Nesne + bulunamadı) hatasıyla sonuçlanır.
+ +
On
Mevcut bir dosyaya ait bir dosya isminden + sonra bir yol verisinin de belirtildiği istekler kabul edilir. + Yukarıdaki örnekteki gibi /test/here.html/more şeklindeki + istekler, /test/here.html geçerli bir dosya olduğu + takdirde kabul edilir.
+ +
Default
Dosya isminden sonra yol verisi + belirtilen isteklerin nasıl ele alınacağı istekten sorumlu eylemci tarafından saptanır. Normal dosyalar + için çekirdek eylemci öntanımlı olarak PATH_INFO + isteklerini reddeder. cgi-script ve isapi-handler gibi betiklere + hizmet eden eylemciler ise genellikle PATH_INFO + isteklerini öntanımlı olarak kabul ederler.
+
+ +

AcceptPathInfo yönergesinin birincil amacı eylemcinin + PATH_INFO istekleri hakkında verdiği kabul veya red + kararını geçersiz kılabilmenizi sağlamaktır. Örneğin, + PATH_INFO’ya dayalı olarak içerik üretmek için INCLUDES gibi bir süzgeç kullandığınız takdirde bu + geçersizleştirme zorunlu olur. Normal dosyalar için çekirdek eylemci + normal olarak isteği reddederdi, böyle bir durumda bir betiği etkin + kılmak için aşağıdaki gibi bir yapılandırma kullanabilirsiniz:

+ + + <Files "mypaths.shtml">
+ + Options +Includes
+ SetOutputFilter INCLUDES
+ AcceptPathInfo On
+
+ </Files> +
+ +
+
+ + +AccessFileName +Dağıtık yapılandırma dosyasının ismi belirtilir. +AccessFileName filename [filename] ... +AccessFileName .htaccess +server configvirtual host + + + +

Belge yolu üzerindeki dizinlerde dağıtık yapılandırma dosyalarının bulunmasına izin verilmişse sunucu bir isteği + işlerken önce bu dizinlerde bu yönergede belirtilmiş yapılandırma + dosyasını arar. Örnek:

+ + + AccessFileName .acl + + +

Sunucu, /usr/local/web/index.html belgesini döndürmeden + önce,

+ + + <Directory />
+ + AllowOverride None
+
+ </Directory> +
+ +

şeklinde bir yapılandırma ile iptal edilmiş olmadıkça yönergeler için + /.acl, /usr/.acl, + /usr/local/.acl ve /usr/local/web/.acl + dosyalarını okur.

+
+AllowOverride +Yapılandırma Dosyaları +.htaccess Dosyaları +
+ + +AddDefaultCharset +Bir yanıtın içerik türü text/plain veya + text/html olduğunda eklenecek öntanımlı karakter kümesi + parametresini belirler. +AddDefaultCharset On|Off|karküm +AddDefaultCharset Off +server config +virtual hostdirectory +.htaccess +FileInfo + + +

Bu yönerge, yanıtın içerik türü text/plain veya + text/html olmak şartıyla yanıta eklenecek karakter + kümesini (karakter kodlamasınının ismini) belirler. Bu, asıl davranış + çoğunlukla kullanıcının istemci yapılandırmasına bağlı olmakla + birlikte, yanıtın gövdesinde META elemanı vasıtasıyla + belirtilmiş karakter kümesini geçersiz kılar. AddDefaultCharset + Off şeklinde bir atama bu işlevselliği iptal eder. + AddDefaultCharset On ile bu işlevsellik etkin kılınmaktan + başka iso-8859-1 karakter kümesini öntanımlı olarak yanıta + eklenir. Yönergede karküm olarak belirtilecek değerler, MIME + ortam türlerinde kullanmak üzere IANA’da kayıtlı + karakter kümesi değerlerinden biri olmalıdır. Örnek:

+ + + AddDefaultCharset utf-8 + + +

AddDefaultCharset yönergesi sadece, metin + kaynaklarının hepsinin aynı karakter kümesine sahip olduğu bilindiği + takdirde ve her birinde ayrı ayrı karakter kümesi belirtmek çok + külfetli olacaksa kullanılmalıdır. Buna bir örnek, CGI betikleri + tarafından üretilmiş içeriğe sahip kaynaklara karakter kümesinin + eklenmesidir; böyle kaynaklar çıktıda kullanıcı tarafından sağlanmış + veri içermeleri nedeniyle karşı siteden kaynaklanan betikli + saldırılardan zarar görebilir. Bununla birlikte, bir öntanımlı karakter + kümesi belirtmek, tarayıcılarında “karakter kodlamasını kendiliğinden + sapta” özelliğini etkin kılmış kullanıcıları korumayacağından daha iyi + bir çözüm bu betikleri bu tür saldırılara karşı düzeltmek veya en iyisi + silmektir.

+
+AddCharset +
+ + +AddOutputFilterByType +Belli bir MIME türüne bir çıktı süzgeci atar. +AddOutputFilterByType süzgeç[;süzgeç...] +MIME-türü [MIME-türü] ... +server config +virtual hostdirectory +.htaccess +FileInfo +2.0.33 ve sonrasında mevcuttur. + + +

Bu yönerge yanıtın MIME türüne + bağlı olarak bir istek için belli bir çıktı + süzgecini etkin kılar.

+ +

Aşağıdaki örnekte mod_deflate modülünce sağlanan + DEFLATE süzgeci kullanılmıştır. Bu süzgeç, + text/html veya text/plain olarak yaftalanmış + tüm çıktıyı (ister durağan ister devingen olsun) istemciye göndermeden + önce sıkıştırır.

+ + + AddOutputFilterByType DEFLATE text/html text/plain + + +

İçeriğin birden fazla süzgeç tarafından işlenmesini isterseniz süzgeç + isimlerini noktalı virgüllerle ayırarak belirtebilirsiniz. Ayrıca, bu + süzgeçlerin her biri için ayrı bir + AddOutputFilterByType yönergesi belirtmek de + mümkündür.

+ +

Aşağıdaki yapılandırma text/html olarak yaftalanmış tüm + betik çıktılarının önce INCLUDES sonra da + DEFLATE süzgecinden geçirilmesine sebep olur.

+ + + <Location /cgi-bin/>
+ + Options Includes
+ AddOutputFilterByType INCLUDES;DEFLATE text/html
+
+ </Location> +
+ + Ek Bilgi +

Süzgeçlerin AddOutputFilterByType ile etkin + kılınması bazı durumlarda kısmen bazılarında da tamamen başarısızlığa + uğrayabilir. Örneğin, MIME türü + saptanamadığı takdirde hiçbir süzgeç uygulanmaz ve DefaultType aynı olsa bile son çare olarak + DefaultType ayarlarına geri + dönülür.

+ +

Bununla birlikte, süzgeçlerin uygulanacağına emin olmak isterseniz, + bir kaynağa içerik türünü örneğin, AddType veya + ForceType ile açıkça + atayabilirsiniz. Ayrıca, içerik türünü (bir nph-olmayan) CGI betiği + içinde ayarlamak da bu güvenceyi sağlar.

+

Türe bağlı çıktı süzgeçleri vekil isteklerinde asla uygulanmaz.

+
+
+ +AddOutputFilter +SetOutputFilter +Süzgeçler +
+ + +AllowEncodedSlashes +Kodlanmış dosya yolu ayracı içeren URL’lere izin verilip + verilmeyeceğini belirler. +AllowEncodedSlashes On|Off +AllowEncodedSlashes Off +server configvirtual host + +Apache 2.0.46 ve sonrasında mevcuttur. + + +

AllowEncodedSlashes yönergesi kodlanmış dosya + yolu ayracı içeren URL’lere izin verir (/ yerine + %2F ve ek olarak \ için ilgili sistemlerde + %5C kullanılmış URL’ler). Normalde böyle URL’ler bir 404 + (Nesne bulunamadı) hatasıyla reddedilirler.

+ +

AllowEncodedSlashes On, çoğunlukla + PATH_INFO ile bir arada kullanıldığı zaman + kullanışlıdır.

+ + Ek Bilgi +

Kodlanmış bölü çizgilerine izin vermek bu kodlamanın karakter olarak + çözümleneceği anlamına gelmez. URL içindeki %2F veya + %5C’ler (sadece ilgili sistemlerde), tıpkı normal + URL’lere yapıldığı gibi, oldukları gibi bırakılırlar.

+
+
+AcceptPathInfo +
+ + +AllowOverride +.htaccess dosyalarında bulunmasına izin verilen + yönerge türleri belirtilir. +AllowOverride All|None|yönerge-türü +[yönerge-türü] ... +AllowOverride All +directory + + +

Sunucu AccessFileName yönergesi + ile belirtildiği şekilde bir .htaccess dosyasına rastlarsa + önceki yapılandırma yönergelerinin hangilerinin geçersiz kılınmak üzere + bildirildiğini bilmek ister.

+ + Sadece <Directory> bölümlerinde geçerli + AllowOverride yönergesi, Location, DirectoryMatch veya Files bölümlerinde değil, + sadece düzenli ifade içermeyen Directory bölümlerinde geçerlidir. + + +

Yönergeye değer olarak None belirtilirse .htaccess dosyaları tamamen yok sayılır. Bu + durumda, sunucu dosya sisteminde rastladığı .htaccess + dosyalarını okumaya dahi çalışmayacaktır.

+ +

Bu yönergeye All değeri atanırsa, .htaccess bağlamında kullanılabilecek her + yönergeye .htaccess dosyalarında izin verilir.

+ +

yönerge-türü olarak aşağıdaki yönerge grup + isimlerinden biri belirtilebilir:

+ +
+
AuthConfig
+ +
AuthDBMGroupFile, + AuthDBMUserFile, + AuthGroupFile, + AuthName, + AuthType, + AuthUserFile, + Require + ve benzeri yetkilendirme yönergelerinin kullanımını izin + verilir.
+ +
FileInfo
+ +
Belge türünü denetleyen mod_mime + Add* ve Remove* yönergeleri, + DefaultType, + ErrorDocument, + ForceType, + LanguagePriority, + SetHandler, + SetInputFilter, + SetOutputFilter + yönergelerinin kullanımına izin verilir. +
+ +
Indexes
+ +
Dizin içeriğinin listelenmesini denetleyen + AddDescription, + AddIcon, + AddIconByEncoding, + AddIconByType, + DefaultIcon, + DirectoryIndex, + FancyIndexing, + HeaderName, + IndexIgnore, + IndexOptions, + ReadmeName + yönergelerinin ve benzerlerinin kullanımına izin + verilir.
+ +
Limit
+ +
Konak erişimini denetleyen + Allow, + Deny ve + Order + yönergelerinin kullanımına izin verilir.
+ +
Options
+ +
Dizinlere özgü özellikleri denetleyen + Options ve + XBitHack yönergelerinin + kullanımına izin verilir.
+
+ +

Örnek:

+ + + AllowOverride AuthConfig Indexes + + +

Bu örnekte AuthConfig ve Indexes grubundaki + yönergeler bir dahili sunucu hatasına yol açmayacaktır.

+
+ +AccessFileName +Yapılandırma Dosyaları +.htaccess Dosyaları +
+ + +AuthName +HTTP kimlik doğrulamasında kullanmak için yetki alanı ismi +AuthName yetki-alanı +directory.htaccess + +AuthConfig + + +

Bu yönerge bir dizin için yetki alanı ismi belirler. Bu alan istemciye + bildirilerek kullanıcının hangi kullanıcı ismini ve parolasını + kullanacağını bilmesi sağlanır. AuthName tek bir + argüman alır. Bu bakımdan eğer alan ismi boşluk karakterleri içeriyorsa + ismin tırnak içine alınması gerekir. Çalışması için AuthUserFile ve + AuthGroupFile gibi yönergelerden + başka AuthType ve Require yönergelerinin kendine eşlik etmesini + gerektirir.

+ +

Örnek:

+ + + AuthName "Top Secret" + + +

AuthName için belirtilen dizge çoğu tarayıcı tarafından + parola diyaloğunda gösterilir.

+
+Kimlik Doğrulama, Yetkilendirme ve Erişim +Denetimi +
+ + +AuthType +Kullanıcı kimlik doğrulaması türü +AuthType Basic|Digest +directory.htaccess + +AuthConfig + + +

Bu yönerge bir dizin için kullanıcı kimlik doğrulaması türünü belirler. + Olası kimlik doğrulama türleri Basic ve + Digest’tir.

+ +

Kimlik doğrulamasının gerçekleşmesi için AuthName ve Require yönergelerini de kullanmalısınız. + Bunlara ek olarak sunucunun AuthUserFile ve AuthGroupFile gibi yönergelere de ihtiyacı + vardır.

+
+ +Kimlik Doğrulama, Yetkilendirme ve Erişim +Denetimi +
+ + +CGIMapExtension +CGI betik yorumlayıcısını saptama tekniğini belirler. + +CGIMapExtension cgi-yolu .uzantı +directory.htaccess + +FileInfo +Sadece NetWare’de geçerlidir. + + +

Bu yönerge Apache’inin CGI bekitlerini çalıştırmak için kullanacağı + yorumlayıcıyı nasıl bulacağını denetlemek için kullanılır. Örneğin, + CGIMapExtension sys:\foo.nlm .foo satırı .foo + uzantılı CGI betik dosyalarının FOO yorumlayıcıya aktarılmasını + sağlar.

+
+
+ + +ContentDigest +Content-MD5 HTTP yanıt başlıklarının üretimini + etkin kılar. +ContentDigest On|Off +ContentDigest Off +server configvirtual host +directory.htaccess + +Options +Experimental + + +

Bu yönerge RFC2616 ve RFC1864’te tanımlandığı gibi + Content-MD5 üretimini etkin kılar.

+ +

MD5, verideki herhangi bir değişikliğin ileti özetinin değişmesi + olarak yansıması nedeniyle yüksek derecede itimat sağlayan keyfi + uzunlukta bir "ileti özeti" (bazen "parmakizi" dendiği de olur) + hesaplama algoritmasıdır.

+ +

Content-MD5 başlığı öğe gövdesinin iki uç arasında ileti + bütünlük sınamasının yapılabilmesini sağlar. Bir istemci veya vekil + aktarılan öğe gövdesinde rastlantısal bir değişiklik olup olmadığını + saptamak için bu başlığın doğruluğunu sınayabilir. Başlık örneği:

+ + + Content-MD5: AuLb7Dp1rqtRtxz2m9kRpA== + + +

Her istekte ileti özeti hesaplanacağından (değerler saklanmaz), bu + yönergenin sunucunuzda başarım sorunlarına yol açacağına dikkat + ediniz.

+ +

Content-MD5, herhangi bir modül değil, sadece + core modülü tarafından sunulan belgeler için + gönderilir. Örneğin, SSI belgeleri CGI betikleri tarafından + çıktılanırlar ve bayt seviyesinden çıktılar bu başlığa sahip + olmazlar.

+
+
+ + +DefaultType +Sunucunun MIME türünü saptayamadığı durumda göndereceği MIME + içerik türünü belirler. +DefaultType MIME-türü +DefaultType text/plain +server configvirtual host +directory.htaccess + +FileInfo + + +

Sunucudan zaman zaman kendi MIME + türü ile uyuşmayan bir belge sunması istenir.

+ +

Sunucu, belgenin içerik türünü istemciye bildirmek zorundadır. Eğer + sunucu bunu normal yollardan saptayamazsa içerik türü olarak + DefaultType ile belirtilen değeri gönderir. Örneğin, GIF + dosyaları bulunan bir dizinde .gif uzantısına sahip + olmayan dosyaların da bulunması durumunda, bu dizin için,

+ + + DefaultType image/gif + + +

belirtilmesi uygun olurdu.

+ +

Bu yönergenin sadece öntanımlı MIME-türünü sağlaması nedeniyle + ForceType yönergesinden farklı + olduğuna dikkat ediniz. Dosya ismi uzantıları dahil, tüm diğer + MIME-türü tanımları ortam türünü tanımladığı noktada bu öntanımlı türü + sunulan veri için geçersiz kılacaktır.

+
+
+ + +Directory +Sadece ismi belirtilen dosya sistemi dizininde ve bunun + altdizinlerinde uygulanacak bir yönerge grubunu sarmalar. +<Directory dizin-yolu> +... </Directory> +server configvirtual host + + + +

Directory ve + </Directory> sadece ismi belirtilen dosya sistemi + dizininde ve bunun altdizinlerinde uygulanacak bir yönerge grubunu + sarmalamakta kullanılır. Bir dizin bağlamında kullanılabilecek her + yönergeye izin verilir. dizin-yolu bir dizinin tam yolu + olabileceği gibi Unix kabuk tarzı bir dosya ismi eşleştirme kalıbı da + olabilir. Kalıp dizgesinde, ? herhangi bir tek karakterle, + * herhangi bir karakter dizisiyle eşleşir. Ayrıca + [] karakter aralıkları da kullanılabilir. ‘/’ karakteri + ile hiçbir kalıp karakteri eşleşmez, bu bakımdan <Directory + /*/public_html> ile /home/user/public_html + değil, ama <Directory /home/*/public_html> + eşleşecektir. Örnek:

+ + + <Directory /usr/local/httpd/htdocs>
+ + Options Indexes FollowSymLinks
+
+ </Directory> +
+ + +

dizin-yolu argümanlarını belirtirken dikkatli + olmalısınız: Apache’nin dosyalara erişmekte kullandığı dosya sistemi + yolu ile bire bir eşleşmelidir. Belli bir + <Directory> dizinine uygulanan yönergeler, aynı + dizine farklı bir yoldan, örneğin başka bir sembolik bağ üzerinden + erişilen dosyalara uygulanmayacaktır.

+
+ +

~ karakterine ek olarak gelişkin düzenli ifadeler de kullanılabilir. Örnek:

+ + + <Directory ~ "^/www/.*/[0-9]{3}"> + + +

yönergesi /www/ içindeki üç rakamdan oluşan dizinlerle + eşleşecektir.

+ +

Eğer çok sayıda (düzenli ifade olmayan) Directory bölümü, bir dosyayı içeren bir + dizinle veya üst dizinlerinden biri ile eşleşiyorsa, uygulama en kısa + eşleşmedeki yönergelerden başlayarak .htaccess dosyalarındaki yönergelere kadar + genişletilir. Örneğin,

+ + + <Directory />
+ + AllowOverride None
+
+ </Directory>
+
+ <Directory /home/>
+ + AllowOverride FileInfo
+
+ </Directory> +
+ +

bölümleri ile /home/web/dir/doc.html belgesine erişirken + şu aşamalardan geçilir:

+ +
    +
  • AllowOverride None yönergesi uygulanır + (.htaccess dosyaları iptal edilir).
  • + +
  • AllowOverride FileInfo yönergesi uygulanır + (/home dizini için).
  • + +
  • Sırayla /home/.htaccess, + /home/web/.htaccess ve + /home/web/dir/.htaccess dosyaları içindeki + FileInfo yönergeleri uygulanır.
  • +
+ +

Normal bölümlerin tamamı uygulanıncaya kadar düzenli ifadeler + değerlendirilmez. Düzenli ifadelerin tamamı yapılandırma dosyasında + görüldükleri sıraya göre sınanırlar. Örneğin,

+ + + <Directory ~ abc$>
+ + # ... yönergeler burada ...
+
+ </Directory> +
+ +

düzenli ifadeli bölümü, tüm normal Directory bölümleri ve + .htaccess dosyaları uygulanıncaya kadar + değerlendirilmeyecektir. Düzenli ifadeleri değerlendirmeye sıra gelince + düzenli ifade /home/abc/public_html/abc ile eşleştirilecek + ve buna ilişkin Directory + uygulanacaktır.

+ +

<Directory /> için öntanımlı Apache + erişiminin Allow from All oluşuna dikkat ediniz. Bunu şöyle + bir blokla değiştirmeniz,

+ + + <Directory />
+ + Order Deny,Allow
+ Deny from All
+
+ </Directory> +
+ +

ve erişilebilir olmasını istediğiniz dizinleri ayrıca + belirtmeniz önerilir. Daha ayrıntılı bilgi edinmek için Güvenlik İpuçları belgesine + bakınız.

+ +

Dizin bölümleri httpd.conf dosyasında yer alır. + Directory yönergeleri iç içe + olamazlar ve bir Limit veya LimitExcept bölümü içinde bulunamazlar.

+
+Bir istek alındığında farklı yapılandırma bölümlerinin nasıl bir + arada ele alındığının anlatıldığı <Directory>, <Location> ve + <Files> bölümleri nasıl çalışır? belgesine de bakınız. +
+ + +DirectoryMatch +Bir düzenli ifade ile eşleşen dosya sistemi dizininde ve bunun + altdizinlerinde uygulanacak bir yönerge grubunu sarmalar. +<DirectoryMatch düzifd> +... </DirectoryMatch> +server configvirtual host + + + +

DirectoryMatch and + </DirectoryMatch> yönergeleri Directory gibi sadece ismi + belirtilen dosya sistemi dizininde ve bunun altdizinlerinde uygulanacak + bir yönerge grubunu sarmalamakta kullanılır. Tek farkla argüman olarak + bir düzenli ifade alır. Örnek:

+ + + <DirectoryMatch "^/www/(.+/)?[0-9]{3}"> + + +

yönergesi /www/ içindeki üç rakamdan oluşan dizinlerle + eşleşecektir.

+
+Normal Directory + bölümlerindeki yönergelerle düzenli ifadelerin nasıl karıştırıldığının bir + açıklaması için Directory yönergesine bakınız. +Bir istek alındığında farklı yapılandırma bölümlerinin nasıl bir arada + ele alındığının açıklaması için <Directory>, <Location> ve + <Files> bölümleri nasıl çalışır? belgesine bakınız. +
+ + +DocumentRoot +İstemciye görünür olan ana belge ağacının kök dizinini belirler. +DocumentRoot dizin-yolu +DocumentRoot /usr/local/apache/htdocs +server configvirtual host + + + +

Bu yönerge httpd tarafından dosyalarının sunulacağı + dizini belirler. Alias + benzeri bir yönerge ile eşleşmedikçe, sunucu istenen URL’deki yolu, + belge yolu haline getirmek için belge kök dizinine ekler. Örnek:

+ + + DocumentRoot /usr/web + + +

yapılandırması ile http://www.my.host.com/index.html + isteği /usr/web/index.html ile eşleştirilir.

+ +

DocumentRoot ile belirtilen dizin bir bölü + çizgisi ile bitirilmemelidir.

+
+URL’lerin Dosya Sistemi + ile Eşlenmesi +
+ + +EnableMMAP +Teslimat sırasında okunacak dosyalar için bellek eşlemeyi etkin + kılar. +EnableMMAP On|Off +EnableMMAP On +server configvirtual host +directory.htaccess + +FileInfo + + +

Bu yönerge, sunucunun teslimat sırasında gerektiği takdirde bir dosya + içeriğinin okunması için bellek eşleme kullanıp kullanmayacağını + belirler. Öntanımlı olarak, bir isteğin yerine getirilmesi, + mod_include kullanarak sunucu tarafından çözümlenen + bir dosyanın teslimatı sırasında olduğu gibi, bir dosya içindeki veriye + erişilmesini gerektirdiğinde Apache, işletim sistemi tarafından + desteklendiği takdirde dosyayı belleğe eşler.

+ +

Böyle bellek eşleme kimi zaman başarım artışını beraberinde getirirse + de bazen sorunlardan kaçınmak için bellek eşlemeyi kapatmak daha iyi + sonuç verir:

+ +
    +
  • Bazı çok işlemcili sistemlerde bellek eşleme + httpd’nin başarımını düşürebilmektedir.
  • +
  • DocumentRoot NFS gibi bir ağ + dosya sistemi üzerinde ise ağ kopması sonucunda, bir dosyanın silinmesi + veya dosya okuma işleminin kesilmesi durumunda + httpd parçalama arızası vererek çökebilir.
  • +
+ +

Bu tür sorunlardan dolayı zarar görülebilecek sunucu + yapılandırmalarında dosya teslimatında bellek eşlemlerinin kullanımını + şu şekilde iptal etmeniz gerekir:

+ + + EnableMMAP Off + + +

Bu özellik, sadece NFS dosya sistemi üzerinde sunulan dosyaları + kapsamak üzere şu şekilde kolayca kapatılabilir:

+ + + <Directory "/nfs-dosya-yolu"> + + EnableMMAP Off + + </Directory> + +
+
+ + +EnableSendfile +Dosyaların istemciye tesliminde çekirdeğin dosya gönderme + desteğinin kullanımını etkin kılar. +EnableSendfile On|Off +EnableSendfile On +server configvirtual host +directory.htaccess + +FileInfo +2.0.44 ve sonrasında mevcuttur. + + +

Bu yönerge, dosya içeriğinin istemciye teslimi için + httpd’nin çekirdeğin dosya gönderme desteğini + kullanıp kullanmayacağını belirler. Öntanımlı olarak, bir isteğin + yerine getirilmesi, bir durağan dosyanın teslimatı sırasında olduğu + gibi, bir dosya içindeki veriye erişilmesini gerektirmediği takdirde + Apache, işletim sistemi tarafından destekleniyorsa dosyayı istemciye + teslim etmek için çekirdeğin dosya gönderme özelliğini kullanır.

+ +

Çekirdeğin dosya gönderme mekanizması, okuma, gönderme ve tampon + ayırma işlemlerini ayrı ayrı yapmaktan kaçınır. Fakat bazı + platformlarda veya bazı dosya sistemlerinde aşağıda belirtilen işlemsel + sorunlardan kaçınmak için bu özelliği iptal etmek daha iyidir:

+ +
    +
  • Bazı platformlar, derleme sistemince saptanamayan bozuk bir dosya + gönderme desteğine sahiptir; özellikle eğer derleme işlemi dosya + gönderme desteğinde sorun olmayan bir makinede yapılıp çalıştırılabilir + dosyaların sorunlu makineye kurulduğu durumda bu saptama + yapılamayacaktır.
  • +
  • Linux’ta IPv6 kullanırken dosya gönderme desteği bazı ağ + kartlarındaki TCP toplama sağlaması aktarım hatasını tetikler.
  • +
  • DocumentRoot ağ dosya sistemi + (NFS veya SMB gibi) üzerinde olduğu durumda çekirdek ağ dosyalarını + kendi arabelleği üzerinden sunamayabilir.
  • +
+ +

Bu sorunlardan muzdarip sunucu yapılandırmaları için bu özelliği şöyle + iptal edebilirsiniz:

+ + + EnableSendfile Off + + +

Bu özellik, sadece bir NFS veya SMB dosya sistemi üzerinde sunulan + dosyaları kapsamak üzere şu şekilde kolayca kapatılabilir:

+ + + <Directory "/path-to-nfs-files"> + + EnableSendfile Off + + </Directory> + +
+
+ + +ErrorDocument +Bir hata durumunda sunucunun istemciye ne döndüreceğini + belirler. +ErrorDocument hata-kodu belge +server configvirtual host +directory.htaccess + +FileInfo +Metin iletilerini tırnak içine alma sözdizimi Apache 2.0’da + farklıdır. + + +

Bir sorun çıktığında veya hata oluştuğunda Apache şu dört işlemden + birini yapacak şekilde yapılandırılabilir:

+ +
    +
  1. Yerleşik bir hata iletisi çıktılanır.
  2. + +
  3. Özel bir ileti çıktılanır.
  4. + +
  5. Sorunu/hatayı işleyecek yerel bir URL-yoluna yönlendirme + yapılır.
  6. + +
  7. Sorunu/hatayı işleyecek harici bir URL-yoluna + yönlendirme yapılır.
  8. +
+ +

İlk seçenek öntanımlıdır. Diğer üç seçenek + ErrorDocument yönergesinin argümanları (hata + kodundan sonra bir URL veya hata iletisi) ile belirtilir. Apache bazı + durumlarda sorun/hata ile ilgili ek bilgi verecektir.

+ +

URL’ler yerel yollarda (DocumentRoot’a göre) bir bölü çizgisi (/) ile + başlatılabileceği gibi istemci tarafından çözümlenecek tam bir URL + şeklinde de belirtilebilir. Bunlar yerine, tarayıcıda gösterilmek üzere + bir ileti de belirtilebilir. Örnekler:

+ + + ErrorDocument 500 http://hata.meselae.dom/cgi-bin/dnmci
+ ErrorDocument 404 /cgi-bin/bad_urls.pl
+ ErrorDocument 401 /subscription_info.html
+ ErrorDocument 403 "Kusura bakmayın, bugün hizmet veremiyoruz." +
+ +

Bunlardan başka, Apache’nin kendi hata iletilerinin kullanılacağı özel + default değeri ile belirtilebilir. Normal şartlar altında + gerekmese de, bir şey belirtilmediği takdirde mevcut bir + ErrorDocument yönergesini miras alan + yapılandırmalarda Apache’nin kendi hata iletilerinin kullanımı + default değeri açıkça belirtilerek örnekteki gibi + zorlanabilir:

+ + + ErrorDocument 404 /cgi-bin/bad_urls.pl

+ <Directory /web/docs>
+ + ErrorDocument 404 default
+
+ </Directory> +
+ +

ErrorDocument yönergesinde bir uzak URL (önünde + http bulunan bir yol) belirtildiğinde, belge aynı sunucuda + olsa bile, Apache’nin istemciye belgeyi bulacağı yer için bir + yönlendirme göndereceğine dikkat ediniz. Bunun bazı istenmeyen etkileri + vardır; en önemlilerinden biri istemcinin hata kodu yerine bir + yönlendirme durum kodu alacak olmasıdır. Bu, bir URL’nin geçerliliğini + durum koduna göre saptayan istemciler veya robotlar için yanıltıcı + olacaktır. Buna ek olarak, ErrorDocument 401 için bir uzak + URL belirttiğiniz durumda istemci 401 durum kodunu almayacağı için + kullanıcıdan parola isteğinde bulunamayacaktır. Bu bakımdan, + ihtiyaç duyduğunuz takdirde, ErrorDocument 401 + yönergesine yerel bir belge belirtmelisiniz.

+ +

Sunucunun ürettiği hata iletileri "çok kısa" olduğu takdirde, + Microsoft Internet Explorer (MSIE) öntanımlı olarak bu hata iletilerini + yoksayar ve bunun yerine kendi "kullanıcı dostu" hata iletilerini + kullanır. "Çok kısa" eşiği duruma göre değişmekle birlikte, genellikle, + hata iletileriniz 512 bayttan büyük olduğu takdirde MSIE kendi hata + iletileri yerine sunucunun ürettiği hata iletilerini gösterecektir. Bu + konuda daha fazla bilgiyi Q294807 kodlu Microsoft Knowledge Base makalesinde + bulabilirsiniz.

+ +

Çoğu yerleşik hata iletisi özel iletilerle değiştirilebilse de bazı + durumlarda ErrorDocument ile ne + belirtildiğine bakılmaksızın yerleşik hata iletileri kullanılır. + Özellikle, bozuk bir istek saptandığında normal istek işleme hemen + devre dışı bırakılır ve yerleşik hata iletisi döndürülür. Bu, hatalı + istekler yaparak güvenlik sorunlarına yol açılmak istenmesi + durumlarında gereklidir.

+ +

2.0 öncesi sürümlerde iletiler bir çift çift-tırnak içine alınmayıp, + tek bir çift-tırnak ile başlatılması yeterli olurdu.

+
+ +Özel Hata Yanıtları +
+ + +ErrorLog +Sunucunun hata günlüğünü tutacağı yeri belirler. + ErrorLog dosya-yolu|syslog[:oluşum] +ErrorLog logs/error_log (Unix) ErrorLog logs/error.log (Windows ve + OS/2) +server configvirtual host + + + +

ErrorLog yönergesi sunucunun saptadığı hataları + kaydedeceği dosyanın ismini belirtmek için kullanılır. + dosya-yolu ile göreli dosya yolu belirtildiği takdirde + dizininin ServerRoot ile + belirtilen sunucu kök dizinine göre belirtildiği varsayılır.

+ + Örnek + ErrorLog /var/log/httpd/error_log + + +

dosya-yolu bir boru imi (|) ile başlatıldığı takdirde hata + iletilerinin hata günlüğünü işleme sokacak komuta borulanacağı + varsayılır.

+ + Örnek + ErrorLog "|/usr/local/bin/httpd_errors" + + +

Dosya adı yerine syslog kullanılırsa, sistem desteklediği + takdirde günlük kaydı syslogd(8) üzerinden yürütülür. Öntanımlı olarak + local7 syslog oluşumu kullanılır. Bunu + syslog:oluşum sözdizimini kullanarak + değiştirebilirsiniz. Buradaki oluşum + syslog.conf(5) kılavuz sayfasında belirtilen oluşum isimlerinden biri + olabilir.

+ + Örnek + ErrorLog syslog:user + + +

GÜVENLİK: Günlük dosyalarının saklandığı dizin, sunucuyu başlatan + kullanıcı dışındakiler tarafından yazılabilir olduğu takdirde + güvenliğinizin nasıl tehlikeye gireceği güvenlik ipuçları + belgesinde ayrıntılı olarak açıklanmıştır.

+ Ek Bilgi +

Unix-dışı platformlarda dosya yolunu girerken, platform ters bölü + çizgilerini desteklese bile normal bölü çizgileri kullanmaya özen + göstermelisiniz. Genel olarak, dosya yollarını belirtirken + yapılandırma dosyası boyunca normal bölü çizgisi kullanmak her zaman + daha iyidir.

+
+
+LogLevel +Apache Günlük Dosyaları +
+ + +FileETag +ETag HTTP yanıt başlığını oluşturmakta kullanılacak + dosya özniteliklerini belirler. +FileETag bileşen ... +FileETag INode MTime Size +server configvirtual host +directory.htaccess + +FileInfo + + +

FileETag yönergesi, belge bir dosyaya dayandığı + takdirde ETag (Entity Tag - öğe etiketi kısaltması) yanıt + başlığı alanını oluşturmakta kullanılacak dosya özniteliklerini + yapılandırır. (ETag değeri, ağ band genişliğinden kazanmak + için arabellek yönetiminde kullanılır.) Apache 1.3.22 ve öncesinde + ETag değeri daima dosyanın düğümü, boyutu ve son + değişiklik zamanından (mtime) oluşurdu. FileETag + yönergesi ne kullanılması gerektiğini belirleyebilmenizi sağlar. Değer + olarak belirtilebilecek anahtar sözcükler şunlardır:

+ +
+
INode
+
Dosyanın düğüm numarası hesaba katılır.
+
MTime
+
Dosyanın son değişiklik tarih ve saati dahil edilir.
+
Size
+
Dosyanın bayt cinsinden uzunluğu dahil edilir.
+
All
+
Olası tüm alanlar kullanılır. Bu şuna eşdeğerdir: + FileETag INode MTime Size
+
None
+
Bir belge dosyasıyla sunulsa bile yanıta hiçbir ETag + alanı dahil edilmez.
+
+ +

Öntanımlı ayarları miras alıp bunların kapsamını genişletmek/daraltmak + için INode, MTime ve Size + anahtar sözcüklerinin önüne + veya - imi + konabilir. Bu imlerin bulunmadığı bir anahtar sözcüğün varlığı halinde + hiçbir değer miras alınmaz.

+ +

Eğer bir dizinin yapılandırması + FileETag INode MTime Size ve alt dizini + FileETag -INode içeriyorsa bu alt dizinin (ve bir + geçersizleştirme olmadığı takdirde onun alt dizinlerinin) ayarları + FileETag MTime Size yapılandırmasına eşdeğer + olacaktır.

+
+
+ + +Files +Dosya isimleriyle eşleşme halinde uygulanacak yönergeleri + içerir. +<Files dosya-adı> ... </Files> +server configvirtual host +directory.htaccess + +All + + +

Files yönergesi, içerdiği + yönergelerin etki alanını dosya isimlerine göre sınırlandırır. + Directory ve + Location bölümleri + ile karşılaştırılabilir. Bir </Files> yönergesi ile + sonlandırılması gerekir. Bu bölüm içinde belirtilen yönergeler, + Files yönergesinde belirtilen + dosya-adı’nın son bileşeniyle (dizinler atıldıktan sonda + kalan dosya ismi) eşleşen nesnelere uygulanır. Files bölümleri yapılandırma dosyasında, + Directory bölümleri + ve .htaccess dosyaları okunduktan sonra fakat Location yönergelerinden önce + göründükleri sıraya göre işleme sokulurlar. Files bölümlerinin Directory bölümlerinin içinde uygulama + alanını sınırlamak amacıyla kullanılabileceğine dikkat ediniz.

+ +

dosya-adı argümanının bir dosya ismi veya bir dosya ismi + kalıbı içermesi gerekir. Bir dosya ismi kalıbındaki her ? + imi bir karakterle eşleştirilirken * imi karakter dizileri + ile eşleştirilir. ~ imine ek olarak düzenli ifadeler de kullanılabilir. Örneğin

+ + + <Files ~ "\.(gif|jpe?g|png)$"> + + +

satırı en bilinen resim dosyası biçimleriyle eşleşecektir. Bunun + yerine FilesMatch + yönergesi de tercih edilebilirdi.

+ +

Directory ve + Location + bölümlerinin aksine, Files + bölümleri .htaccess dosyaları içinde kullanılabilir. Bu + sayede kullanıcıların kendi dosyalarına erişimi dosya seviyesinde + denetlemelerine imkan sağlanmış olur.

+ +
+Bir istek alındığında farklı yapılandırma bölümlerinin nasıl bir + arada ele alındığının açıklaması için + <Directory>, <Location> ve <Files> bölümleri nasıl + çalışır? belgesine bakınız. +
+ + +FilesMatch +Düzenli ifadelerin dosya isimleriyle eşleşmesi halinde + uygulanacak yönergeleri içerir. +<FilesMatch düzifd> ... </FilesMatch> +server configvirtual host +directory.htaccess + +All + + +

FilesMatch yönergesi, içerdiği + yönergelerin etki alanını Files yönergesinin yaptığı gibi dosya + isimlerine göre sınırlandırır. Ancak, argüman olarak bir düzenli ifade kabul eder. Örneğin

+ + + <FilesMatch "\.(gif|jpe?g|png)$"> + + +

satırı en bilinen resim dosyası biçimleriyle eşleşecektir.

+
+ +Bir istek alındığında farklı yapılandırma bölümlerinin nasıl bir + arada ele alındığının açıklaması için + <Directory>, <Location> ve <Files> bölümleri nasıl + çalışır? belgesine bakınız. +
+ + +ForceType +Bütün dosyaların belirtilen MIME içerik türüyle sunulmasına + sebep olur. +ForceType MIME-türü|None +directory.htaccess + +FileInfo +Apache 2.0’da core modülüne taşındı. + + +

Bu yönerge, bir .htaccess dosyası veya bir + Directory, + Location veya + Files bölümüne + yerleştirildiği zaman, eşleşen tüm dosyaların MIME-türü ile + belirtilen içerik türüyle sunulmasına sebep olur. Örneğin, altında + sadece GIF dosyaları bulunan bir dizininiz varsa ve bunlara tek tek + .gif uzantısı belirtmek istemiyorsanız şu yapılandırmayı + kullanabilirsiniz:

+ + + ForceType image/gif + + +

DefaultType yönergesinin tersine + bu yönerge ortam türünü betimleyen tüm MIME-türü tanımlarını geçersiz + kılar.

+ +

Mevcut ForceType ayarlarını None + değeriyle geçersiz kılabilirsiniz:

+ + + # tüm dosyaların image/gif olarak sunulması için:
+ <Location /images>
+ + ForceType image/gif
+
+ </Location>
+
+ # normal MIME-türüne geri dönmek için:
+ <Location /images/mixed>
+ + ForceType None
+
+ </Location> +
+
+
+ + +HostnameLookups +İstemci IP adresleri üzerinde DNS sorgularını etkin kılar. + +HostnameLookups On|Off|Double +HostnameLookups Off +server configvirtual host +directory + + +

Bu yönerge oturum açabilecek konak isimlerini tespit edebilmek için + DNS sorgularını etkin kılar (ve sonuç REMOTE_HOST’ta + belirtilerek CGI/SSI’lere aktarılır). Double değeri + sorgunun çift yönlü yapılacağını belirtir. Yani, bir tersine sorgunun + ardından bir normal sorgu yapılır. Normal sorguda elde edilen IP + adreslerinden birinin istek yapan IP adresi ile eşleşmesi gerekir. + ("tcpwrappers" terminolojisinde buna PARANOID adı + verilir.)

+ +

Konak ismine göre erişimi denetlemek için + mod_access kullanıldığında, nasıl bir ayar + yapıldığına bakılmaksızın, çift yönlü sorgulama yapılır. Bu güvenlik + için gereklidir. Bunun dışında açıkça HostnameLookups + Double belirtilmedikçe genellikle çift yönlü sorgulama yapılmaz. + Örneğin, sadece HostnameLookups On belirtilmiş ve konak + ismi kısıtlamalarıyla korunmuş bir nesne için bir istek yapılmışsa çift + yönlü sorgunun başarısına bakılmaksızın CGI’lere + REMOTE_HOST olarak tek yönlü sorgu sonucu aktarılır.

+ +

Gerçekte ters yönlü sorguya gerek duyulmayan sitelerde ağ trafiğini + yormamak için Off, öntanımlı değerdir. Ayrıca, son + kullanıcıların DNS sorguları nedeniyle gereksiz yere bir beklemeye + maruz kalmaması için de bu daha iyidir. Yükü zaten ağır olan sitelerde, + DNS sorgularının görece uzun zaman alması nedeniyle bu yönergenin + değeri Off olarak bırakılmalıdır. Öntanımlı olarak kurulum + dizininizin bin alt dizinine kurulan + logresolve uygulaması kullanılarak oturum açan IP + adresleri için isim sorguları çevrim dışıyken yapılabilir.

+
+
+ + +IdentityCheck +Uzak kullanıcıların RFC 1413’e göre kimlik bilgilerinin günlük +kayıtlarını etkin kılar. +IdentityCheck On|Off +IdentityCheck Off +server configvirtual host +directory + +

Bu yönerge, istemci makinenin identd veya benzeri bir uygulama çalıştırdığı durumda her bağlantıda uzak kullanıcı isimlerinin RFC1413’e uygun olarak günlüğe kaydedilmesini etkin kılar. Bu bilgi erişim günlüğüne kaydedilir.

+ +

Bu bilgi ilkel kullanım izleme dışında herhangi bir şekilde güvenilir kılınmamalıdır.

+ +

Sunucunuza yapılan her istek bu sorgulardan birinin uygulanmasını gerektireceğinden bu uygulamanın sunucunun yanıt verme süresi bakımından sorunlara yol açacağına dikkat ediniz. Her sorguda işe bir de güvenlik duvarları karışırsa sorgu muhtemelen başarısız olacağından her sorguya bir 30 saniye de buradan eklenir. Bu bakımdan Genel Ağ’dan erişilen sunucular için genelde pek yararlı değildir.

+
+
+ + +IfDefine +Başlatma sırasında bir doğruluk sınamasından sonra işleme +sokulacak yönergeleri sarmalar. +<IfDefine [!]parametre-adı> ... + </IfDefine> +server configvirtual host +directory.htaccess + +All + + +

<IfDefine sınama>...</IfDefine> + bölümü koşullu olarak işleme sokulacak yönergeleri içerir. + Bir IfDefine bölümü içindeki + yönergeler sadece sınama doğru sonuç verirse işleme sokulur. + Aksi takdirde, bölüm içinde kalan her şey yok sayılır.

+ +

IfDefine bölüm yönergesinde + sınama için belirtilebilecek iki biçim vardır:

+ +
    +
  • parametre-adı
  • + +
  • !parametre-adı
  • +
+ +

Birinci durumda bölüm içinde kalan yönergeler sadece + parametre-adı ile belirtilen parametre tanımlı ise işleme + sokulur. İkinci durumda ise tersi yapılır, yani sadece + parametre-adı ile belirtilen parametre tanımlı + değil ise yönergeler işleme sokulur.

+ +

parametre-adı argümanı sunucu başlatılırken + httpd komut satırında + -Dparametre ile + belirtilerek tanımlı hale getirilebilir.

+ +

IfDefine bölümleri iç içe + olabilir, dolayısıyla çok parametreli basit sınamalar gerçeklenebilir. + Örnek:

+ + + httpd -DReverseProxy ...
+
+ # httpd.conf
+ <IfDefine ReverseProxy>
+ + LoadModule rewrite_module modules/mod_rewrite.so
+ LoadModule proxy_module modules/libproxy.so
+
+ </IfDefine> +
+
+
+ + +IfModule +Belli bir modülün varlığına veya yokluğuna göre işleme sokulacak +yönergeleri sarmalar. +<IfModule [!]modül-ismi ... + </IfModule> +server configvirtual host +directory.htaccess + +All + + +

<IfModule sınama>...</IfModule> + bölümü belli bir modülün varlığına veya yokluğuna göre işleme sokulacak + yönergeleri içerir. Bir IfModule + bölümü içindeki yönergeler sadece sınama doğru sonuç verirse + işleme sokulur. Aksi takdirde, bölüm içinde kalan her şey yok sayılır.

+ +

IfModule bölüm yönergesinde + sınama için belirtilebilecek iki biçim vardır:

+ +
    +
  • modül-ismi
  • + +
  • !modül-ismi
  • +
+ +

Birinci durumda bölüm içinde kalan yönergeler sadece + modül-ismi ile belirtilen modül Apache içine dahil edilmişse + veya LoadModule yönergesi ile + devingen olarak yüklenmişse işleme sokulur. İkinci durumda ise tersi + yapılır, yani sadece modül-ismi içerilmiş + değil ise yönergeler işleme sokulur.

+ +

modül-ismi modülün derleme sırasındaki dosya ismidir. + Örneğin, mod_rewrite.c. Eğer modül çok sayıda kaynak + dosyasından oluşuyorsa STANDARD20_MODULE_STUFF dizgesini + içeren dosyanın ismi kullanılır.

+ +

IfModule bölümleri iç içe + olabilir, dolayısıyla çok parametreli basit sınamalar gerçeklenebilir.

+ + Bu bölümü sadece yapılandırma dosyanızın belli modüllerin varlığına + veya yokluğuna bağlı olarak çalışması gerektiği durumlarda + kullanmalısınız. Normal işlemlerde yönergelerin IfModule bölümlerine yerleştirilmeleri + gerekmez. +
+
+ + +Include +Sunucu yapılandırma dosyalarının başka dosyaları içermesini sağlar. + +Include dosya-yolu|dizin-yolu +server configvirtual host +directory + +Dosya kalıbıyla eşleşme 2.0.41 ve sonrasında mevcuttur. + + + +

Bu yönerge sunucu yapılandırma dosyalarının başka dosyaları içermesini + mümkün kılar.

+ +

Çok sayıda dosyayı bir kerede alfabetik sırada içermek için kabuk tarzı + (fnmatch()) dosya ismi kalıp karakterleri kullanılabilir. + Ayrıca, eğer Include yönergesi bir dosya değil de + bir dizin gösteriyorsa Apache bu dizindeki ve alt dizinlerindeki bütün + dosyaları okuyacaktır. Fakat dizinin bir bütün olarak okutulması + önerilmez, çünkü dizinde httpd programının çökmesine + sebep olabilecek geçici dosyalar unutulabilir.

+ +

Dosya yolu mutlak bir dosya yolu olarak belirtilebileceği gibi + ServerRoot dizinine göreli olarak da + belirtilebilir.

+ +

Örnekler:

+ + + Include /usr/local/apache2/conf/ssl.conf
+ Include /usr/local/apache2/conf/vhosts/*.conf +
+ +

Veya dizinler ServerRoot dizinine + göre belirtilebilir:

+ + + Include conf/ssl.conf
+ Include conf/vhosts/*.conf +
+ +

apachectl configtest ile yapılandırma sınanırken işleme + sokulan dosyalar listelenir:

+ + + root@host# apachectl configtest
+ Processing config file: /usr/local/apache2/conf/ssl.conf
+ Processing config file: /usr/local/apache2/conf/vhosts/vhost1.conf
+ Processing config file: /usr/local/apache2/conf/vhosts/vhost2.conf
+ Syntax OK +
+
+ +apachectl +
+ + +KeepAlive +HTTP kalıcı bağlantılarını etkin kılar +KeepAlive On|Off +KeepAlive On +server configvirtual host + + + +

Keep-Alive yönergesi HTTP/1.0 protokolüne bir eklenti olup + HTTP/1.1 protokolünün kalıcı bağlantı özelliği aynı TCP bağlantısı + üzerinden çok sayıda isteğin gönderilmesini mümkün kılan uzun süreli HTTP + oturumları açılmasını sağlar. Bunun, çok sayıda resim içeren HTML + belgelerin yanıt zamanlarında bazı durumlarda %50’lik bir hızlanmayla + sonuçlandığı gösterilmiştir. Kalıcı bağlantıları etkin kılmak için + yönerge KeepAlive On şeklinde kullanılır.

+ +

HTTP/1.0 istemcileri için kalıcı bağlantılar sadece bir istemci + tarafından özellikle istendiği takdirde kullanılabilir. Ek olarak, + HTTP/1.0 istemci kalıcı bağlantıları sadece içerik uzunluğu baştan + bilindiği zaman kullanılabilir. Bu, CGI çıktısı, SSI sayfaları ve + sunucunun ürettiği dizin listeleri gibi genellikle HTTP/1.0 istemcilere + kalıcı bağlantılar kullanmayan devingen içeriklere uygulanır. HTTP/1.1 + istemciler için kalıcı bağlantılar aksi belirtilmedikçe öntanımlıdır. + İstemci istediği takdirde, uzunluğu bilinmeyen içerik kalıcı bağlantılar + üzerinden gönderilirken parçalı kodlama kullanılacaktır.

+
+ +MaxKeepAliveRequests +
+ + +KeepAliveTimeout +Bir kalıcı bağlantıda sunucunun bir sonraki isteği bekleme süresi + +KeepAliveTimeout saniye +KeepAliveTimeout 15 +server configvirtual host + + + +

Sunucunun kalıcı bir bağlantıyı kapatmadan önce bir sonraki isteği kaç + saniye bekleyeceğini belirler. İstek alındıktan sonra Timeout yönergesiyle belirtilen zaman aşımı + değeri uygulanır.

+ +

KeepAliveTimeout için yüksek bir değer belirtmek + ağır yüklü sunucularda başarım sorunlarına yol açar. Daha yüksek bir + zaman aşımı, boştaki istemcilerin bulunduğu bağlantıları bekleyen daha + fazla sunucu sürecini meşgul edecektir.

+ +

İsme dayalı sanal konak bağlamında, NameVirtualHost bölümleri içinde tanımlanmış ilk sanal konağın (öntanımlı konak) değeri kullanılır. Diğer değerler görmezden gelinir.

+
+
+ + +Limit +Erişimi sınırlanacak HTTP yöntemleri için erişim sınırlayıcıları +sarmalar. +<Limit yöntem [yöntem] ... > ... + </Limit> +server configvirtual host +directory.htaccess + +All + + +

Erişim denetleyicileri normalde tüm erişim yöntemleri + için etkindir ve olağan olanı da budur. Genel durum olarak, + erişim denetim yönergeleri bir Limit bölümüne + yerleştirilmemelidir.

+ +

Limit bölümünün amacı, erişim + denetleyicilerinin etkilerini belli HTTP yöntemleri için sınırlamaktır. + Limit bölümü içinde listelenen + erişim sınırlamaları, kalan tüm diğer yöntemler için etkisiz + olacaktır. Aşağıdaki örnekte, erişim sınırlaması + POST, PUT ve DELETE yöntemleri + için uygulanmakta, diğer tüm yöntemler korumasız bırakılmaktadır:

+ + + <Limit POST PUT DELETE>
+ + Require valid-user
+
+ </Limit> +
+ +

Birden fazla bölümde kullanılabilecek yöntem isimleri: GET, + POST, PUT, DELETE, + CONNECT, OPTIONS, + PATCH, PROPFIND, PROPPATCH, + MKCOL, COPY, MOVE, + LOCK ve UNLOCK. Yöntem isimleri harf + büyüklüğüne duyarlıdır. GET yöntemi sınırlanırsa + HEAD istekleri de sınırlanmış olur. TRACE + yöntemi sınırlanamaz.

+ + Erişimi sınarlarken bir Limit bölümü yerine daima bir LimitExcept bölümünü tercih + etmelisiniz, çünkü LimitExcept bölümü belirtilen yöntemler dışında kalanlara + erişim koruması sağlar. + +
+
+ + +LimitExcept +İsimleri belirtilenler dışında kalan HTTP yöntemleri için +kullanılacak erişim sınırlayıcıları sarmalar. +<LimitExcept yöntem [yöntem] ... > ... + </LimitExcept> +server configvirtual host +directory.htaccess + +All + + +

LimitExcept ve + </LimitExcept> argüman olarak belirtilenler + dışında kalan HTTP yöntemleri için kullanılacak erişim + sınırlayıcıları gruplamakta kullanılır. Yani, Limit bölümünün tersine, standart olsun olmasın + bütün yöntemler için erişimi kısıtlamakta kullanılabilir. Daha ayrıntılı + bilgi edinmek için Limit yönergesinin açıklamasına bakınız.

+ +

Örnek:

+ + + <LimitExcept POST GET>
+ + Require valid-user
+
+ </LimitExcept> +
+ +
+
+ + +LimitInternalRecursion +Dahili yönlendirmelerin ve istek içi isteklerin azami sayısını +belirler. +LimitInternalRecursion sayı [sayı] +LimitInternalRecursion 10 +server configvirtual host + +Apache 2.0.47 ve sonrasında mevcuttur. + + +

Örneğin, özgün istekleri dahili olarak bir CGI betiğine yönlendiren + Action yönergesi + kullanıldığında bir dahili yönlendirme oluşur. İstek içi istekler ise + bazı URI’ler için istek yapıldığında ne olacağını bulmak için Apache’nin + kullandığı bir mekanizmadır. Örneğin, mod_dir, + DirectoryIndex yönergesinde + listelenen dosyalara bakmak için istek içi istekler kullanır.

+ +

LimitInternalRecursion yönergesi sunucunun dahili + yönlendirmeler ve istek içi isteklerin oluşturduğu döngülerden dolayı + çökmemesini sağlar. Böyle döngüler genellikle yanlış yapılandırma sonucu + ortaya çıkarlar.

+ +

Yönerge her istek için değerlendirmeye alınacak iki farklı sınırlama + için kullanılabilir. İlk sayı ardarda gelebilen dahili + yönlendirmelerin azami sayısını, ikinci sayı ise istek içi + isteklerin ne kadar iç içe olabileceğini belirler. Tek bir + sayı belirtilirse iki sınırlama için de aynı değer + kullanılır.

+ + Örnek + LimitInternalRecursion 5 + +
+
+ + +LimitRequestBody +İstemci tarafından gönderilen HTTP istek gövdesinin toplam +uzunluğunu sınırlar. +LimitRequestBody bayt-sayısı +LimitRequestBody 0 +server configvirtual host +directory.htaccess + +All + + +

Bu yönerge, bir istek gövdesinde izin verilen bayt sayısını 0 (sınırsız + anlamında) ile 2147483647 (2GB) arasında sınırlamak için kullanılır.

+ +

LimitRequestBody yönergesi kullanıcıya yönergenin + kullanıldığı bağlam (sunucu, belli bir dizin, belli bir dosya, belli bir + yer) dahilinde bir HTTP istek iletisi gövdesinin izin verilen uzunluğu + için bir sınır belirleme imkanı verir. Eğer istemcinin isteği bu sınırı + aşarsa sunucu isteği sunmak yerine bir hata iletisi döndürecektir. Normal + bir istek ileti gövdesinin uzunluğu büyük oranda özkaynağın doğasına ve + bu özkaynak üzerinde izin verilen yöntemlere bağlıdır. CGI betikleri + genellikle ileti gövdesini form bilgisini almak için kullanır. + PUT yöntemi gerçeklenimleri, en azından, sunucunun o + özkaynak için kabul etmek isteyeceği herhangi bir gösterim kadar büyük + bir değer gerektirecektir.

+ +

Bu yönerge, bazı hizmet reddi (DoS) saldırılarından kaçınmak için sunucu + yöneticilerine, anormal istemci istekleri üzerinde daha iyi denetim + imkanı sağlar.

+ +

Eğer, örneğin, belli bir yere dosya yükleme izni verir ve buraya + yüklenebilecek dosya boyutunu 100 kB ile sınırlamak isterseniz yönergeyi + şöyle kullanabilirsiniz:

+ + + LimitRequestBody 102400 + + +
+
+ + +LimitRequestFields +İstemciden kabul edilecek HTTP isteği başlık alanlarının sayısını +sınırlar. +LimitRequestFields sayı +LimitRequestFields 100 +server config + + +

sayı, en küçük 0 (sınırsız anlamında), en büyük 32767 + olabilir. Öntanımlı değer bir derleme zamanı sabiti olan + DEFAULT_LIMIT_REQUEST_FIELDS ile belirlenir (dağıtımla gelen + değeri 100’dür).

+ +

LimitRequestFields yönergesi sunucu + yöneticilerine bir HTTP isteğinde izin verilen istek başlık alanlarının + sayısı üzerindeki sınırı değiştirebilme imkanı verir. Sunucu bu değerin, + normal bir istemci isteğinin içerebileceği alan sayısından daha büyük + olmasına ihtiyaç duyar. Bir istemci tarafından kullanılan istek başlık + alanlarının sayısı nadiren 20’yi geçer, fakat bu farklı istemci + gerçeklenimleri için değişiklik gösterir ve çoğunlukla kullanıcının + tarayıcısını ayrıntılı içerik müzakeresini desteklemek için nasıl + yapılandırdığıyla ilgilidir. İsteğe bağlı HTTP eklentileri çoğunlukla + istek başlık alanları kullanılarak ifade edilir.

+ +

Bu yönerge, bazı hizmet reddi (DoS) saldırılarından kaçınmak için sunucu + yöneticilerine, anormal istemci istekleri üzerinde daha iyi denetim + imkanı sağlar. Eğer normal istemciler sunucudan istekte bulunurken çok + fazla başlık alanı gönderildiğine dair bir hata iletisi alırlarsa bu + değerin arttırılması gerekir.

+ +

Örnek:

+ + + LimitRequestFields 50 + + +
+
+ + +LimitRequestFieldSize +İstemciden kabul edilecek HTTP isteği başlık uzunluğunu sınırlar. + +LimitRequestFieldSize bayt-sayısı +LimitRequestFieldSize 8190 +server config + + +

Bu yönerge, HTTP istek başlığında izin verilecek bayt sayısını + belirler.

+ +

LimitRequestFieldSize yönergesi, sunucu + yöneticilerine HTTP istek başlık alanının azami uzunluğunu arttırıp + azaltma imkanı verir. Sunucu bu değerin, normal bir istemci isteğinin + içerebileceği herhangi bir başlık alanını tutabilecek kadar büyük + olmasını gerektirir. Normal bir istek başlık alanı uzunluğu kullanıcının + tarayıcısını ayrıntılı içerik müzakeresini desteklemek için nasıl + yapılandırdığıyla ilgilidir. SPNEGO kimlik doğrulama başlıkları 12392 + baytlık olabilir.

+ +

Bu yönerge, bazı hizmet reddi (DoS) saldırılarından kaçınmak için sunucu + yöneticilerine, anormal istemci istekleri üzerinde daha iyi denetim + imkanı sağlar.

+ +

Örnek:

+ + + LimitRequestFieldSize 4094 + + + Normal şartlar altında öntanımlı değer değiştirilmemelidir. + + Apache 2.0.53 ve sonrasında, sınırı, bir derleme değeri olan + DEFAULT_LIMIT_REQUEST_FIELDSIZE (dağıtımda 8190) değerinin + üzerine çıkarmak için gereklidir. + + +
+
+ + +LimitRequestLine +İstemciden kabul edilecek HTTP istek satırının uzunluğunu sınırlar. + +LimitRequestLine bayt-sayısı +LimitRequestLine 8190 +server config + + +

Bu yönerge, HTTP istek satırında izin verilecek bayt sayısını 0 ile bir + derleme zamanı sabiti olan DEFAULT_LIMIT_REQUEST_LINE + (dağıtımda 8190) ile belirtilen değer arasında bir değere ayarlar.

+ +

LimitRequestLine yönergesi, sunucu yöneticilerine + bir istemcinin HTTP istek satırının azami uzunluğunu, sunucunun + derlenmesi sırasında belirtilenden daha azına ayarlama + imkanı verir. İstek satırının içeriği HTTP yöntemi, URI ve protokol + sürümünden oluştuğundan LimitRequestLine + yönergesi, sunucudan bir istek için kullanılan istek adresinin uzunluğunu + sınırlamış olur. Sunucu bu değerin, bir GET isteğinin sorgu + kısmında aktarılabilen her bilgi dahil, özkaynak isimlerinden her birini + tutabilecek kadar büyük olmasını gerektirir.

+ +

Bu yönerge, bazı hizmet reddi (DoS) saldırılarından kaçınmak için sunucu + yöneticilerine, anormal istemci istekleri üzerinde daha iyi denetim + imkanı sağlar.

+ +

Örnek:

+ + + LimitRequestLine 4094 + + + Normal şartlar altında öntanımlı değer değiştirilmemelidir. +
+
+ + +LimitXMLRequestBody +Bir XML temelli istek gövdesinin uzunluğunu sınırlar. +LimitXMLRequestBody bayt-sayısı +LimitXMLRequestBody 1000000 +server configvirtual host +directory.htaccess +All + + +

Bir XML temelli istek gövdesinin azami bayt sayısını belirler. Değer + olarak 0 belirtildiğinde herhangi bir boyut sınaması + yapılmaz.

+ +

Örnek:

+ + + LimitXMLRequestBody 0 + + +
+
+ + +Location +İçerdiği yönergeler sadece eşleşen URL’lere uygulanır. + +<Location URL-yolu|URL> ... +</Location> +server configvirtual host + + + +

Location bölüm yönergesi kapsadığı + yönergelerin etki alanını belirtilen URL’lerle sınırlar. Bu yönerge, + Directory yönergesine + benzer ve </Location> yönergesi ile biten bir alt + bölüm başlatır. Location bölümleri + yapılandırma dosyasında göründükleri sıraya göre, Directory bölümleri ve + .htaccess dosyaları okunup Files bölümleri de işlendikten sonra işleme + sokulurlar.

+ +

Location bölümleri dosya + sisteminin tamamen dışında işlem görürler. Bunun çeşitli sonuçları olur. + En önemlisi, Location + yönergelerinin dosya sistemi konumlarına erişimi denetim altına almak + için kullanılmaması gerekliliğidir. Aynı dosya sistemi konumuna farklı + URL’lerle erişmek mümkün olduğundan bu tür erişim denetimleri hile ile + atlatılabilir olacaktır.

+ + <directive type="section">Location</directive> ne zaman + kullanılmalı + +

Location yönergesini dosya sistemi + dışındaki içeriğe çeşitli yönergeler uygulamak için kullanın. Dosya + sisteminde bulunan içerik için Directory ve Files bölümlerini kullanın. Bunun istisnası, + sunucunun tamamına bir yapılandırma uygulamak için kolay bir yol olan + <Location /> kullanımıdır.

+
+ +

Kaynağa yapılan (vekil olmayan) tüm istekler için eşleşecek URL, + /yol/ şeklinde bir URL yolu olmalı; ne şema, ne konak ismi + ne port ne de sorgu dizgesi içermelidir. Vekil istekleri için eşleşecek + URL ise şema://sunucuadı/dosya-yolu şeklinde olmalı ve önek + içermelidir.

+ +

URL içinde dosya kalıp karakterleri kullanılabilir. Dosya kalıp + karakterleri bulunan bir dizgede bulunan ? karakteri + herhangi bir tek karakterle eşleşirken * karakteri herhangi + bir karakter dizisi ile eşleşecektir.

+ +

Ayrıca, ~ karakteri eşliğinde gelişkin düzenli ifadeler de kullanılabilir. Örneğin,

+ + + <Location ~ "/(ek|hususi)/veri"> + + +

yönergesi /ek/veri ve /hususi/veri alt + dizgeleriyle eşleşecektir. LocationMatch yönergesi Location yönergesinin düzenli ifade sürümüne + eşdeğer davranır.

+ +

Location işlevselliği özellikle + SetHandler yönergesi ile birlikte + kullanışlı olur. Örneğin, durum isteklerini etkin kılmak ama sadece + mesela.dom’dan gelen isteklere izin vermek için şöyle bir + uygulama yapabilirsiniz:

+ + + <Location /status>
+ + SetHandler server-status
+ Order Deny,Allow
+ Deny from all
+ Allow from .mesela.dom
+
+ </Location> +
+ + / (bölü çizgisi) hakkında +

Bölü çizgisinin URL içinde bulunduğu yere bağlı olarak özel anlamları + vardır. Dosya sistemindeki çok sayıda yanyana kullanımının tek bir bölü + çizgisi olarak ele alındığı duruma alışkın olanlar olabilir (yani, + /home///foo ile /home/foo aynıdır). URL + uzayında bunun böyle olması gerekli değildir. Eğer çok sayıda bölü + çizgisini yanyana belirtmeniz gerekiyorsa LocationMatch yönergesinde ve Location yönergesinin düzenli ifadeli + kullanımında bunu açıkça belirtmeniz gerekir.

+ +

Örneğin, <LocationMatch ^/abc> yönergesi + /abc ile eşleşecek ama //abc ile + eşleşmeyecektir. Location + yönergesinin düzenli ifade içermeyen kullanımındaki davranış vekil + isteklerinde kullanılana benzer ve doğrudan kaynağa yapılan (vekil + olmayan) isteklerde çok sayıda bölü çizgisi dolaylı olarak tek bir bölü + çizgisiyle eşleşecektir. Örneğin, <Location + /abc/def> belirtirseniz ve istek /abc//def + şeklinde olursa bu ikisi eşleşir.

+
+
+Bir istek alındığında farklı yapılandırma bölümlerinin nasıl bir arada + ele alındığının açıklaması için + <Directory>, <Location> ve <Files> bölümleri nasıl + çalışır? belgesine bakınız. +
+ + +LocationMatch +İçerdiği yönergeler sadece düzenli ifadelerle eşleşen URL’lere +uygulanır. +<LocationMatch + düzifade> ... </LocationMatch> +server configvirtual host + + + +

LocationMatch yönergesi içerdiği + yönergelerin etki alanını Location yönergesinin yaptığı gibi belirtilen URL’lerle + sınırlar. Ancak argüman olarak basit bir dizge değil bir düzenli ifade alır. Örneğin,

+ + + <LocationMatch "/(ek|hususi)/veri"> + + +

yönergesi /ek/veri ve /hususi/veri alt + dizgeleriyle eşleşecektir.

+
+ +Bir istek alındığında farklı yapılandırma bölümlerinin nasıl bir arada + ele alındığının açıklaması için + <Directory>, <Location> ve <Files> bölümleri nasıl + çalışır? belgesine bakınız. +
+ + +LogLevel +Hata günlüklerinin ayrıntı seviyesini belirler. +LogLevel seviye +LogLevel warn +server configvirtual host + + + +

LogLevel yönergesi hata günlüklerine kaydedilen + hata iletilerinde hangi ayrıntılara yer verileceğini belirler (ErrorLog yönergesine bakınız). En yüksek önem + derecesinden başlayarak olası seviye değerleri aşağıda + sıralanmıştır:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Seviye Açıklama Örnek
emerg Acil durumlar - sistem kullanışsız."Child cannot open lock file. Exiting"
(Alt süreç kilit + dosyasını açamıyor. Çıkılıyor)
alert Ne yapılacaksa beklemeden yapılmalı."getpwuid: couldn't determine user name from uid"
(getpwuid: + Kullanıcı ismi numarasından saptanamadı)
crit Kriz durumları."socket: Failed to get a socket, exiting child"
(socket: bir + soket alınamadı, alt süreç çıkıyor)
error Hata durumları."Premature end of script headers"
(Betik başlıkları + beklenmedik şekilde bitti)
warn Uyarı durumları."child process 1234 did not exit, sending another + SIGHUP"
(1234 alt süreci çıkmadı, başka bir SIGHUP + gönderiliyor)
notice Normal fakat önemli durum."httpd: caught SIGBUS, attempting to dump core in + ..."
(httpd: SIGBUS alındı, core dökümlenmeye çalışılıyor: + ...)
info Bilgilendirme."Server seems busy, (you may need to increase + StartServers, or Min/MaxSpareServers)..."
(Sunucu meşgul + görünüyor, (StartServers veya Min/MaxSpareServers değerlerini + arttırmanız gerekebilir)...)
debug Hata ayıklama seviyesi iletileri"Opening config file ..."
(... yapılandırma dosyası + açılıyor)
+ +

Belli bir seviye belirtildiğinde daha yüksek seviyeden iletiler de + raporlanır. Örneğin, LogLevel info belirtildiğinde + notice ve warn günlük seviyelerinin iletileri + ayrıca raporlanacaktır.

+ +

En az crit seviyesinin kullanılması önerilir.

+ +

Örnek:

+ + + LogLevel notice + + + Ek Bilgi +

Günlük iletileri normal bir dosyaya yazılırken notice + seviyesinden iletiler engellenemez ve dolayısıyla daima raporlanırlar. + Ancak, günlük kaydı syslog kullanılarak yapılıyorsa bu + uygulanmaz.

+
+
+
+ + +MaxKeepAliveRequests +Bir kalıcı bağlantıda izin verilen istek sayısı +MaxKeepAliveRequests sayı +MaxKeepAliveRequests 100 +server configvirtual host + + + +

MaxKeepAliveRequests yönergesi KeepAlive etkinken bağlantı başına izin + verilecek istek sayısını sınırlar. Değer olarak 0 + belirtilirse istek sayısı sınırsız olur. Sunucu başarımını yüksek tutmak + için yüksekçe bir değer belirtmenizi öneririz.

+ +

Örnek:

+ + + MaxKeepAliveRequests 500 + +
+
+ + +NameVirtualHost +İsme dayalı sanal konaklar için IP adresi belirtir +NameVirtualHost adres[:port] +server config + + +

NameVirtualHost yönergesi isme dayalı sanal konakları yapılandırmak isterseniz gerekli olur. +

+ +

adres olarak bir konak ismi de belirtebilirsiniz ama daima + bir IP adresi kullanmanızı öneririz. Örnek:

+ + + NameVirtualHost 111.22.33.44 + + +

NameVirtualHost yönergesi ile sunucunun isme + dayalı sanal konaklar için istekleri hangi IP adresinden alacağı + belirtilir. Bu adres genellikle isme dayalı sanal konak isimleri + çözümlendiğinde elde edilen IP adresidir. İstekleri bir güvenlik + duvarının veya bir vekilin alıp sunucuya yönlendirdiği durumlarda ise bu + adres sunucunun istekleri aldığı fiziksel arabirimin IP adresi olmalıdır. + Çok sayıda adres üzerinde çok sayıda isme dayalı sanal konak varsa her + adresin kendi yönergeleri olmalıdır.

+ + Ek Bilgi +

“Ana sunucu” ve _default_ sunucuların bir + NameVirtualHost IP adresine yapılan bir isteği + asla sunmayacağına dikkat ediniz (bir sebeple + NameVirtualHost belirtip bu adres için herhangi + bir VirtualHost tanımlamadığınız durumlar + hariç).

+
+ +

Seçimlik olarak, isme dayalı sanal konakların kullanması gereken port + numarasını örnekteki gibi belirtebilirsiniz:

+ + + NameVirtualHost 111.22.33.44:8080 + + +

IPv6 adresleri belirtilirken örnekteki gibi köşeli ayraçlar arasına + alınmalıdır:

+ + + NameVirtualHost [2001:db8::a00:20ff:fea7:ccea]:8080 + + +

İsteklerin bütün arabirimlerden alınacağını belirtmek için değer olarak + * belirtebilirsiniz:

+ + + NameVirtualHost * + + + <directive type="section">VirtualHost</directive> yönergesinin + argümanı +

VirtualHost yönergesinin + argümanının NameVirtualHost yönergesininkiyle tam + olarak eşleşmesi gerektiğine dikkat ediniz.

+ + + NameVirtualHost 1.2.3.4
+ <VirtualHost 1.2.3.4>
+ # ...
+ </VirtualHost>
+
+
+
+ +Apache Sanal Konak Belgeleri + +
+ + +Options +Belli bir dizinde geçerli olacak özellikleri yapılandırır. + +Options + [+|-]seçenek [[+|-]seçenek] ... +Options All +server configvirtual host +directory.htaccess + +Options + + +

Options yönergesi belli bir dizinde hangi sunucu + özelliklerinin etkin olacağını (veya olmayacağını) belirler.

+ +

seçenek olarak hiçbir ek özellik etkin olmayacaksa + None, aksi takdirde aşağıdakilerden biri veya bir kaçı + belirtilir:

+ +
+
All
+
MultiViews hariç tüm seçenekler. Bu öntanımlıdır.
+ +
ExecCGI
+
mod_cgi kullanan CGI betiklerinin çalışmasına izin + verilir.
+ +
FollowSymLinks
+
Sunucu bu dizindeki sembolik bağları izler. + +

Sembolik bağlar izlense bile Directory bölümleriyle eşleşen dosya yolları + değiştirilmez.

+

Ayrıca, bu seçenek bir Location bölümü içinde belirtildiği takdirde yok + sayılır.

+
+ +
Includes
+
mod_include tarafından sağlanan sunucu taraflı + içeriklere izin verilir.
+ +
IncludesNOEXEC
+
Sunucu taraflı içeriklere izin verilir fakat #exec cmd + ve #exec cgi iptal edilir. Ancak, ScriptAlias’lı dizinlerdeki CGI + betikleri için #include virtual hala mümkün olacaktır.
+ +
Indexes
+
İstenen URL bir dizin ile eşleşiyorsa ve bu dizin için bir DirectoryIndex (index.html + gibi) belirtilmemişse mod_autoindex bu dizinin + biçimlenmiş bir listesini döndürecektir.
+ +
MultiViews
+
mod_negotiation kullanılarak içerik uzlaştırmalı çok + görünümlü içeriğe izin verilir.
+ +
SymLinksIfOwnerMatch
+
Sunucu sembolik bağları sadece sembolik bağın hedefi ile bulunduğu + dizinin sahibinin aynı kullanıcı olması halinde izleyecektir. + + Ek Bilgi

Bu seçenek bir Location bölümü içinde belirtildiğinde yok + sayılır.

+
+
+ +

Normalde, bir dizine çok sayıda Options + uygulanabilirse de, dizine en uygun olanı uygulanıp diğerleri yok + sayılır; seçenekler katıştırılmaz (bkz, Bölümler Nasıl Katıştırılır?). Bununla birlikte, önüne bir + + veya - simgesi konmuş seçenekler varsa, o + seçenekler katıştırılır. Önüne + konmuş seçenekler + mevcutlara eklenirken - konmuş seçenekler silinir.

+ + Uyarı +

+ veya - imli seçenekler içeren + Options ile imsiz seçenekler içerenlerin karışık + olarak kullanılması beklenmedik sonuçlara yol açması sebebiyle aslında + geçersiz bir sözdizimidir.

+
+ +

Örneğin, + ve - imleri olmaksızın,

+ + + <Directory /web/docs>
+ + Options Indexes FollowSymLinks
+
+ </Directory>
+
+ <Directory /web/docs/spec>
+ + Options Includes
+
+ </Directory> +
+ +

yapılandırmasıyla /web/docs/spec dizininde sadece + Includes seçeneği etkin olacaktır. Bununla birlikte, ikinci + Options yönergesinde + ve + - imleri kullanılırsa,

+ + + <Directory /web/docs>
+ + Options Indexes FollowSymLinks
+
+ </Directory>
+
+ <Directory /web/docs/spec>
+ + Options +Includes -Indexes
+
+ </Directory> +
+ +

yapılandırmasıyla /web/docs/spec dizininde + FollowSymLinks ve Includes seçenekleri etkin + olacaktır.

+ + Ek Bilgi +

-IncludesNOEXEC veya -Includes kullanımı, + önceki ayarların ne olduğuna bakılmaksızın sunucu taraflı içeriğin + tamamen iptaline sebep olur.

+
+ +

Herhangi bir başka değer belirtilmedikçe All + öntanımlıdır.

+
+
+ + +Require +Bir özkaynağa erişebilecek kimliği doğrulanmış kullanıcıları +belirler +Require öğe-adı [öğe-adı] ... +directory.htaccess + +AuthConfig + + +

Bu yönerge bir özkaynağa erişebilecek kimliği doğrulanmış kullanıcıları + belirlemek için kullanılır. İzin verilen bazı sözdizimleri:

+ +
+
Require user kull-kiml [kull-kiml] + ...
+
Sadece belirtilen kullanıcılar özkaynağa erişebilir.
+ +
Require group grup-adı [grup-adı] + ...
+
Sadece belirtilen gruplara üye kullanıcılar özkaynağa erişebilir.
+ +
Require valid-user
+
Geçerli kullanıcıların hepsi özkaynağa erişebilir.
+
+ +

Require yönergesinin düzgün çalışması için + kendisine AuthName ve AuthType yönergelerinin yanı sıra kullanıcıları + ve grupları tanımlamak için AuthUserFile ve AuthGroupFile gibi yönergelerinin de eşlik + etmesi gerekir. Örnek:

+ + + AuthType Basic
+ AuthName "Restricted Resource"
+ AuthUserFile /web/users
+ AuthGroupFile /web/groups
+ Require group admin +
+ +

Bu yolla uygulanan erişim denetimleri tüm yöntemler + için etkilidir. Normalde istenen zaten budur. Erişim + denetimlerini diğerlerini korumasız bırakmak pahasına sadece belli + yöntemlerle sınırlamak isterseniz Require + yönergesini bir Limit + bölümüne yerleştirin.

+
+ +Kimlik Doğrulama, Yetkilendirme ve Erişim +Denetimi +Satisfy +mod_access +
+ + +RLimitCPU +Apache alt süreçleri tarafından çalıştırılan süreçlerin işlemci +tüketimine sınırlama getirir. +RLimitCPU saniye|max [saniye|max] +Bir değer belirtilmemiştir; işletim sistemi öntanımlıları kullanılır + +server configvirtual host +directory.htaccess +All + + +

1 veya 2 değer alır. İlk değer bütün süreçler için sanal özkaynak + sınırını, ikinci değer ise kesin özkaynak sınırını belirler. İki değer de + birer sayı olabileceği gibi bu sınırın işletim sistemi yapılandırmasında + izin verilen üst sınıra ayarlanacağını belirtmek üzere max + olabilir. Kesin özkaynak sınırını yükseltmek için sunucunun + root olarak veya sistem açılışı sırasında çalıştırılması + gerekir.

+ +

Bu sınırlar Apache’nin kendi alt süreçlerine değil, isteklere yanıt + verirken Apache alt süreçlerinin çatalladıkları süreçlere uygulanır. + Bunlar CGI betikleri ve SSI çalıştırma komutları olabilir fakat borulu + günlük kaydı gibi ana Apache süreci tarafından çatallanmış süreçler + olmazlar.

+ +

İşlemci özkaynak sınırları saniye cinsinden ifade edilir.

+
+RLimitMEM +RLimitNPROC +
+ + +RLimitMEM +Apache alt süreçleri tarafından çalıştırılan süreçlerin bellek +tüketimine sınırlama getirir. +RLimitMEM bayt-sayısı|max [bayt-sayısı|max] + +Bir değer belirtilmemiştir; işletim sistemi öntanımlıları kullanılır + +server configvirtual host +directory.htaccess +All + + +

1 veya 2 değer alır. İlk değer bütün süreçler için sanal özkaynak + sınırını, ikinci değer ise kesin özkaynak sınırını belirler. İki değer de + birer sayı olabileceği gibi bu sınırın işletim sistemi yapılandırmasında + izin verilen üst sınıra ayarlanacağını belirtmek üzere max + olabilir. Kesin özkaynak sınırını yükseltmek için sunucunun + root olarak veya sistem açılışı sırasında çalıştırılması + gerekir.

+ +

Bu sınırlar Apache’nin kendi alt süreçlerine değil, isteklere yanıt + verirken Apache alt süreçlerinin çatalladıkları süreçlere uygulanır. + Bunlar CGI betikleri ve SSI çalıştırma komutları olabilir fakat borulu + günlük kaydı gibi ana Apache süreci tarafından çatallanmış süreçler + olmazlar.

+ +

Bellek özkaynak sınırları süreç başına bayt sayısı olarak ifade edilir. +

+
+RLimitCPU +RLimitNPROC +
+ + +RLimitNPROC +Apache alt süreçleri tarafından çalıştırılabilecek süreç sayısına +sınırlama getirir. +RLimitNPROC sayı|max [sayı|max] +Bir değer belirtilmemiştir; işletim sistemi öntanımlıları kullanılır + +server configvirtual host +directory.htaccess +All + + +

1 veya 2 değer alır. İlk değer bütün süreçler için sanal özkaynak + sınırını, ikinci değer ise kesin özkaynak sınırını belirler. İki değer de + birer sayı olabileceği gibi bu sınırın işletim sistemi yapılandırmasında + izin verilen üst sınıra ayarlanacağını belirtmek üzere max + olabilir. Kesin özkaynak sınırını yükseltmek için sunucunun + root olarak veya sistem açılışı sırasında çalıştırılması + gerekir.

+ +

Bu sınırlar Apache’nin kendi alt süreçlerine değil, isteklere yanıt + verirken Apache alt süreçlerinin çatalladıkları süreçlere uygulanır. + Bunlar CGI betikleri ve SSI çalıştırma komutları olabilir fakat borulu + günlük kaydı gibi ana Apache süreci tarafından çatallanmış süreçler + olmazlar.

+ +

Süreç sayısı sınırı kullanıcı başına süreç sayısına sınırlama getirir. +

+ + Ek Bilgi +

CGI süreçleri sunucu kullanıcı kimliğinden farklı bir kullanıcı + kimliği altında çalışmıyorsa bu yönerge sunucunun kendi oluşturduğu + süreç sayısını sınırlayacaktır. Bunun kanıtı error_log’da + iletilerin çatallanamamasıdır.

+
+
+RLimitMEM +RLimitCPU +
+ + +Satisfy +Konak seviyesinde erişim denetimi ile kullanıcı kimlik doğrulaması +arasındaki etkileşim +Satisfy Any|All +Satisfy All +directory.htaccess + +AuthConfig +2.0.51 sürümü ve sonrasında Limit ve LimitExcept tarafından etkin kılınır. + + +

Allow ve Require yönergelerinin ikisi birden + kullanıldığında uygulanacak erişim kuralını belirler. Değer olarak sadece + All veya Any belirtilebilir. Bu yönergenin + yararlı olabilmesi için belli bir alana hem istemci konak adresi hem de + kullanıcı ismi ve parolası belirtmek suretiyle erişilebiliyor olunması + gerekir. Bu durumda öntanımlı davranış (All), istemcinin + belli bir adrese erişebilmek için belli kısıtlamaları aşması ve geçerli + bir kullanıcı adı ve parola girmesi gerekir. Any seçeneğinin + belirtildiği durumda ise istemcinin ya konak kısıtlamalarıdan geçmesi ya + da geçerli bir kullanıcı adı ve parolası girmesi gerekir. Bu seçenek, + belli bir alana erişimi parolayla kısıtlayıp, belli adreslerden gelen + kullanıcılara parolasız erişim vermek için kullanılabilir.

+ +

Örneğin, sitenizin belli bir bölümü için iç ağınızdan gelen isteklere + sınırsız erişim vermek ama dışardan gelen istekleri parolayla kısıtlamak + isterseniz şöyle bir yapılandırma kullanabilirsiniz:

+ + + Require valid-user
+ Allow from 192.168.1
+ Satisfy Any +
+ +

2.0.51 sürümünden itibaren Satisfy yönergeleri + Limit ve LimitExcept bölümleri tarafından + belli yöntemlerle kullanılmak üzere kısıtlanmış olabilir.

+
+ Allow + Require +
+ + +ScriptInterpreterSource +CGI betikleri için yorumlayıcı belirleme tekniği +ScriptInterpreterSource Registry|Registry-Strict|Script +ScriptInterpreterSource Script +server configvirtual host +directory.htaccess +FileInfo +Sadece Win32 için; Registry-Strict seçeneği Apache +2.0 ve sonrası için geçerlidir. + + +

Bu yönerge Apache’nin CGI betiklerini çalıştıracak yorumlayıcıyı nasıl + tespit edeceğini belirler. Script öntanımlı olup Apache’nin + yorumlayıcı olarak betiğin diyezli ünlem satırında (#! ile + başlayan ilk satır) belirtilen yorumlayıcıyı kullanacağını belirtir. + Win32 sistemlerinde bu satır genellikle şöyledir:

+ + + #!C:/Perl/bin/perl.exe + + +

perl yorumlayıcının yeri PATH değişkeninde + kayıtlı ise şöyle de olabilir:

+ + + #!perl + + +

ScriptInterpreterSource Registry değeri ise betik dosyası + uzantısının (.pl gibi) Windows Sicili içindeki + HKEY_CLASSES_ROOT ağacında arama yapmak için bir arama + anahtarı olarak kullanılmasını sağlar. Betik dosyasını çalıştırmak için + tanımlanmış komutu bulmak için Shell\ExecCGI\Command yoluna, + orada yoksa Shell\Open\Command yoluna bakılır. İkisi de + yoksa son çare olarak Script seçeneğinin davranışına + dönülür.

+ + Güvenlik +

ScriptAlias’lı dizinlerde + Apache bulduğu her dosyayı çalıştırmayı deneyeceğinden + ScriptInterpreterSource Registry yapılandırmasını + kullanırken dikkatli olun. Registry seçeneği genellikle + çalıştırılmayacak dosyalar için istenmeyen program çağrılarına sebep + olabilir. Örneğin, çoğu Windows sisteminde .htm dosyaları + için ön tanımlı "open" komutu Microsoft Internet Explorer’ın + çalıştırılmasına sebep olur; bu bakımdan, betik dizininde bulunan bir + .htm dosyası için yapılan bir HTTP isteği tarayıcının sunucu + artalanında çalıştırılmasına sebep olacaktır. Bu, sistemi bir kaç dakika + içinde çökertmek için iyi bir yoldur.

+
+ +

Registry-Strict seçeneği Apache 2.0’da yeni olup + Registry seçeneğinin yaptığını + Shell\ExecCGI\Command yolu için yapar. ExecCGI + sistem tarafından bilinen bir anahtar olmadığından Windows Siciline elle + kaydedilmesi gerekir ve dolayısıyla sisteminiz üzerinde istenmeyen + program çağrılarına sebep olmaz.

+
+
+ + +ServerAdmin +Sunucunun hata iletilerinde istemciye göstereceği eposta adresi + +ServerAdmin eposta-adresi +server configvirtual host + + + +

ServerAdmin yönergesi, sunucunun bir hata + durumunda istemciye döndüreceği hata iletilerinde içereceği eposta + adresini belirtmek için kullanılır.

+ +

Kullanıcıların sunucu hakkında konuşurken isminizden bahsetmemeleri için + burada belirtilecek adresin sırf bu işe adanmış bir adres olması daha + iyidir. Örnek:

+ + + ServerAdmin www-admin@falan.filan.dom + +
+
+ + +ServerAlias +İstekleri isme dayalı sanal konaklarla eşleştirilirken +kullanılacak konak adları için başka isimler belirtebilmeyi sağlar. + +ServerAlias konakadı [konakadı] ... +virtual host + + +

ServerAlias yönergesi, istekleri isme dayalı sanal konaklarla + eşleştirilirken kullanılacak konak adları için başka isimler + belirtebilmeyi sağlar.

+ + + <VirtualHost *>
+ ServerName sunucu.mesela.dom
+ ServerAlias sunucu sunucu2.mesela.dom sunucu2
+ # ...
+ </VirtualHost> +
+
+Apache Sanal Konak Belgeleri +
+ + +ServerName +Sunucunun özdeşleşeceği konak ismi ve port. +ServerName tam-nitelenmiş-alan-adı[:port] + +server configvirtual host + +Bu yönerge 2.0 sürümünden itibaren 1.3 sürümündeki +Port yönergesinin işlevselliğini de +üstlenmiştir. + + +

ServerName yönergesi, sunucunun kendini + betimlemekte kullanacağı konak adı ve port değerlerini belirler. + Bu, yönlendirme URL’leri oluşturulurken kullanılır. Örneğin, HTTP + sunucusunun barındırıldığı makinenin ismi falan.filan.dom + olduğu halde makinenin bir de www.filan.dom diye bir de DNS + rumuzu varsa ve HTTP sunucunuzun bu rumuzla kendini özdeşleştirmesini + isterseniz bunu şöyle belirtebilirsiniz:

+ + + ServerName www.filan.dom:80 + + +

Bir ServerName ataması yapılmamışsa sunucu IP + adresine atanmış sunucu ismi için bir ters DNS sorgusu yapacaktır. + ServerName yönergesinde bir port belirtilmediği + takdirde sunucu, isteğin geldiği portu kullanacaktır. Öngörülebilirlik ve + güvenilirlik açısından en iyisi ServerName + yönergesini kullanarak açıkça bir konak ismi ve port belirtmektir.

+ +

İsme dayalı sanal konaklar + kullanıyorsanız, VirtualHost bölümü içindeki + ServerName yönergesi, isteğin Host: + başlığında bu sanal konakla eşleşecek konak ismini belirler.

+ + +

Sunucunun kendine yönelik URL’lerin belirtilen portu içerip içermediğini + veya istemcinin yaptığı istekte belirtilen port numarasının verilip + verilmediğinin saptanmasını sağlayan (örneğin, mod_dir + modülü tarafından) ayarlar için UseCanonicalName yönergesinin açıklamalarına + bakınız.

+ +
+ +DNS ile ilgili konular ve Apache + +Apache Sanal Konak Belgeleri +UseCanonicalName +NameVirtualHost +ServerAlias +
+ + +ServerPath +Uyumsuz bir tarayıcı tarafından erişilmesi için bir isme dayalı +sanal konak için meşru URL yolu +ServerPath URL-yolu +virtual host + + +

ServerPath yönergesi isme + dayalı sanal konaklarda kullanmak için konağa meşru bir URL yolu + belirler.

+
+Apache Sanal Konak Belgeleri +
+ + +ServerRoot +Sunucu yapılandırması için kök dizin +ServerRoot dizin-yolu +ServerRoot /usr/local/apache +server config + + +

ServerRoot yönergesi sunucu yapılandırmasını + içeren dizinin yerini belirtir. Genellikle conf/ ve + logs/ gibi alt dizinler içerir. Include, LoadModule gibi diğer yapılandırma + yönergelerindeki göreli yollar bu dizine göre ele alınır.

+ + Örnek + ServerRoot /home/httpd + + +
+httpd için -d seçeneği +ServerRoot dizininin erişim izinlerinin nasıl + ayarlanması gerektiğini öğrenmek için güvenlik ipuçları +
+ + +ServerSignature +Sunucu tarafından üretilen belgelerin dipnotunu ayarlar. + +ServerSignature On|Off|EMail +ServerSignature Off +server configvirtual host +directory.htaccess + +All + + +

ServerSignature yönergesi, sunucu tarafından + üretilen belgelerin (hata iletileri, mod_proxy ftp dizin + listeleri, mod_info çıktısı, vs.) altındaki dipnot + satırını yapılandırabilmenizi sağlar. Böyle bir dipnot satırın + istenmesinin sebebi vekil zincirlerinde istemciye dönen hata iletisinin + aslında hangi sunucu tarafından üretildiğini kullanıcıya bildirmektir.

+ +

Off değeri öntanımlı değer olup dipnot satırının + gösterilmemesini sağlar (Apache-1.2 ve öncesi ile uyumluluk). + On değeri, sunucu sürüm numarası ve hizmeti sunan sanal + konağın isminden (ServerName) oluşan + bir dipnot satırı oluşturulmasını sağlar; EMail değeri bu + ikisine ek olarak satıra ServerAdmin + ile belirtilen adres için bir "mailto:" bağı ekler.

+ +

2.0.44 sürümünden beri sunucu sürüm numarasının ayrıntıları ServerTokens yönergesi ile belirlenmektedir.

+
+ServerTokens +
+ + +ServerTokens +Server HTTP yanıt başlığını yapılandırır. + +ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full +ServerTokens Full +server config + + +

Bu yönerge Server HTTP yanıt başlığı alanında istemcilere + sunucunun işletim sistemi, sunucuyla derlenmiş modüller, vs. hakkında + bilgi verilip verilmeyeceğini belirler.

+ +
+
ServerTokens Prod[uctOnly]
+ +
Sunucu şunu gönderir (örnek): Server: + Apache
+ +
ServerTokens Major
+ +
Sunucu şunu gönderir (örnek): Server: + Apache/2
+ +
ServerTokens Minor
+ +
Sunucu şunu gönderir (örnek): Server: + Apache/2.0
+ +
ServerTokens Min[imal]
+ +
Sunucu şunu gönderir (örnek): Server: + Apache/2.0.41
+ +
ServerTokens OS
+ +
Sunucu şunu gönderir (örnek): Server: Apache/2.0.41 + (Unix)
+ +
ServerTokens Full (ya da belirtilmezse)
+ +
Sunucu şunu gönderir (örnek): Server: Apache/2.0.41 + (Unix) PHP/4.2.2 MyMod/1.2
+
+ +

Bu ayarlama sunucunun tamamını etkiler ve her sanal konak için + farklılaştırılamaz.

+ +

2.0.44 sürümünden itibaren bu yönerge ServerSignature yönergesi tarafından sunulan + bilgiyi de etkilemektedir.

+
+ServerSignature +
+ + +SetHandler +Eşleşen tüm dosyaların belli bir eylemci tarafından işlenmesine +sebep olur. +SetHandler eylemci-ismi|None +server configvirtual host +directory.htaccess + +FileInfo +Apache 2.0’da core modülüne taşındı. + + +

Bir .htaccess dosyasına veya bir Directory ya da Location bölümüne yerleştirildiğinde, eşleşen + tüm dosyaların, ismi eylemci-ismi ile belirtilen eylemci tarafından çözümlenmesine sebep olur. + Örneğin, bir dizin içindeki bütün dosyaların, uzantılarına bakılmaksızın + birer imagemap kural dosyası olarak çözümlenmesini istersiniz, bu dizin + içindeki bir .htaccess dosyasına şöyle bir satır + koyabilirsiniz:

+ + + SetHandler imap-file + + +

Başka bir örnek: http://localhost/status gibi bir istek + yapıldığında sunucunun bir durum bilgisi göstermesi için + httpd.conf dosyasına şöyle bir satır koyabilirsiniz:

+ + + <Location /status>
+ + SetHandler server-status
+
+ </Location> +
+ +

Evvelce tanımlanmış bir SetHandler yönergesini + None değeriyle geçersiz hale getirebilirsiniz.

+
+ +AddHandler + +
+ + +SetInputFilter +POST girdilerini ve istemci isteklerini işleyecek süzgeçleri +belirler. +SetInputFilter süzgeç[;süzgeç...] +server configvirtual host +directory.htaccess + +FileInfo + + +

SetInputFilter yönergesi, istemci isteklerini ve + sunucu tarafından alındığı takdirde POST girdisini işleyecek süzgeç veya + süzgeçleri belirler. Bu, diğer AddInputFilter yönergeleri dahil evvelce tanımlanmış + süzgeçlere eklenir.

+ +

Birden fazla süzgeç belirtilmek istenirse birbirlerinden noktalı + virgüllerle ayrılmalı ve çıktıyı işleyecekleri sıraya uygun olarak + sıralanmalıdırlar.

+
+Süzgeçler belgesi +
+ + +SetOutputFilter +Sunucunun yanıtlarını işleyecek süzgeçleri belirler. +SetOutputFilter süzgeç[;süzgeç...] +server configvirtual host +directory.htaccess + +FileInfo + + +

SetOutputFilter yönergesi, istemciye + gönderilmeden önce sunucunun yanıtlarını işleyecek süzgeçleri belirler. + Bu, diğer AddOutputFilter + yönergeleri dahil evvelce tanımlanmış süzgeçlere eklenir.

+ +

Örneğin, aşağıdaki yapılandırma ile /www/data/ dizinindeki + bütün dosyalar sunucu taraflı içerik kapsamında ele alınacaktır.

+ + + <Directory /www/data/>
+ + SetOutputFilter INCLUDES
+
+ </Directory> +
+ +

Birden fazla süzgeç belirtilmek istenirse birbirlerinden noktalı + virgüllerle ayrılmalı ve çıktıyı işleyecekleri sıraya uygun olarak + sıralanmalıdırlar.

+
+Süzgeçler belgesi +
+ + +TimeOut +Bir istek için başarısız olmadan önce belirli olayların +gerçekleşmesi için sunucunun geçmesini bekleyeceği süre. +TimeOut saniye +TimeOut 300 +server configvirtual host + + + +

TimeOut yönergesi Apache’nin aşağıdaki üç durum + için bekleyeceği süreyi belirler:

+ +
    +
  1. Bir GET isteğini almak için geçecek toplam süre.
  2. + +
  3. Bir POST veya PUT isteğinde TCP paketlerinin alımları arasında geçen + süre.
  4. + +
  5. Yanıtlarda TCP paketlerinin aktarımı için alındılar arasında geçen + süre.
  6. +
+

Bunları ileride ayrı ayrı yapılandırılabilir kılmayı planlıyoruz. 1.2 + öncesinde zaman aşımı öntanımlı olarak 1200 saniye idi, fakat çoğu durum + için hala gereğinden fazla olsa bile şimdi 300 saniyeye düşürüldü. Kodun + içinde, bir paket gönderilmediği takdirde zaman aşımı değerinin + sıfırlanmadan kaldığı tuhaf yerler bulunabileceğinden bu değer öntanımlı + değerin altına ayarlanmamalıdır.

+ +
+
+ + +TraceEnable +TRACE isteklerinde davranış şeklini belirler + +TraceEnable [on|off|extended] +TraceEnable on +server config +Apache 1.3.34, 2.0.55 ve sonrasında mevcuttur. + + +

Bu yönerge çekirdek ve vekil (mod_proxy) sunucuların + her ikisi için öntanımlı TRACE davranışını değiştirir. + Öntanımlı olan TraceEnable on ile RFC 2616’dan kaynaklanan + ve isteğe herhangi bir istek gövdesinin eşlik etmesine izin vermeyen + TRACE isteklerine izin verilir. TraceEnable off + ile çekirdek ve vekil (mod_proxy) sunucuların her ikisi + de TRACE isteklerine yanıt olarak bir 405 + (Yönteme izin verilmiyor) hatası döndürür.

+ +

TraceEnable extended ile sadece sınama ve tanı koyma + amaçlarına yönelik olarak istek gövdelerine izin verilir. Asıl sunucu + istek gövdesini 64k ile sınırlar (Transfer-Encoding: chunked + kullanılmışsa bölüm başlıkları için 8k daha). Asıl sunucu yanıt + gövdesinde tüm başlıkları ve bölüm başlıklarının tamamını yansıtacaktır. + Vekil sunucuda ise istek gövdesi için 64k’lık sınır yoktur.

+
+
+ + +UseCanonicalName +Sunucunun kendi adını ve portunu nasıl belirleyeceğini ayarlar + +UseCanonicalName On|Off|DNS +UseCanonicalName On +server configvirtual host +directory + + +

Apache‘nin çoğu durumda özüne yönelik URL‘ler (isteğin tekrar aynı + sunucuya yapıldığı bir URL türü) oluşturması gerekir. + UseCanonicalName On ile Apache, sunucu için meşru ismi ve + portu oluşturmak için ServerName + yönergesinde belirtilen ismi ve portu kullanır. Bu isim CGI'lerde + SERVER_NAME ve SERVER_PORT değerlerinde ve tüm + özüne yönelik URL’lerde kullanılır.

+ +

UseCanonicalName Off ile Apache, özüne yönelik URL’leri + varsa istemci tarafından sağlanan konak ismini ve portu kullanarak + oluşturur; bunlar istemci tarafından sağlanmamışsa yukarıda tanımlanan + işleme başvurulur. Bu değerler, isme + dayalı sanal konakları gerçekleştirirken kullanılan değerlerle aynı + olup aynı istemcilerle kullanılabilir. SERVER_NAME ve + SERVER_PORT CGI değişkenleri de istemci tarafından sağlanan + isim ve portla oluşturulur.

+ +

Bir örnek olarak, iç ağdaki istemcilerin sunucuya www gibi + bir kısa isim kullanarak bağlandığı durumu ele alırsak daha yararlı olur. + Kullanıcılar bir kısa isim ve bir dizin isminden oluşan ve bir / ile + sonlandırılmamış http://www/splat şeklinde bir istek + yaparlarsa, Apache onları http://www.mesela.dom/splat/ + adresine yönlendirecektir. Eğer kimlik doğrulama da etkinse bu + kullanıcının iki defa kimlik doğrulamasına sokulmasına sebep olacaktır + (bir kere www için bir kere de www.mesela.dom + için; daha ayrıntılı bilgi için SSS’y + e bakınız). Fakat UseCanonicalName Off olsaydı + Apache isteği http://www/splat/ adresine yönlendirecekti.

+ +

UseCanonicalName DNS diye üçüncü bir seçenek daha vardır ve + istek yaparken Host: başlığını kullanmayan eski istemcileri + desteklemek amacıyla IP’ye dayalı sanal konaklarla kullanmak için + tasarlanmıştır. Bu seçenek etkin olduğunda Apache, istemciyi özüne + yönelik URL’lerle doğru yere bağlamak için sunucu IP adresi üzerinde bir + ters DNS sorgusu yapar.

+ + Uyarı +

Eğer CGI’ler SERVER_NAME değerleri için önkabuller + yapıyorlarsa bu seçenek işlerinin bozulmasına yol açabilir. Aslında + istemciler konak ismi olarak istedikleri değeri vermekte özgürdürler. + Fakat eğer CGI, özüne yönelik URL’leri oluştururken sadece + SERVER_NAME değerini kullanıyorsa bu istendiği gibi + çalışacaktır.

+
+
+ServerName +Listen +
+ + +VirtualHost +Sadece belli bir konak ismine ve porta uygulanacak yönergeleri +barındırır. +<VirtualHost + adres[:port] [adres[:port]] + ...> ... </VirtualHost> +server config + + +

VirtualHost ve + </VirtualHost> birlikte sadece belli bir sanal konağa + uygulanacak yönergeleri sarmalamakta kullanılırlar. Bir sanal konak + kapsamında belirtilebilecek her yönerge kullanılabilir. Sunucu belli bir + sanal konak üzerindeki bir belge için bir istek aldığında VirtualHost bölümünde bulunan yapılandırma + yönergelerini kullanır. adres şunlardan biri olabilir:

+ +
    +
  • Sanal konağın IP adresi.
  • + +
  • Sanal konağın IP adresi için tam nitelenmiş alan adı.
  • + +
  • NameVirtualHost * ile birlikte tüm IP adresleri ile + eşleşmek üzere * karakteri.
  • + +
  • Sadece IP sanal konaklarında kullanmak için eşleşmeyen IP adreslerini + yakalamak amacıyla _default_ dizgesi.
  • +
+ + Örnek + <VirtualHost 10.1.2.3>
+ + ServerAdmin webmaster@konak.mesela.dom
+ DocumentRoot /www/docs/konak.mesela.dom
+ ServerName konak.mesela.dom
+ ErrorLog logs/konak.mesela.dom-error_log
+ TransferLog logs/konak.mesela.dom-access_log
+
+ </VirtualHost> +
+ + +

İsteğe bağlı port numarasını belirtmeyi mümkün kılmak için IPv6 + adresleri köşeli ayraç içine alınır. IPv6 adresi kullanılan bir örnek:

+ + + <VirtualHost [2001:db8::a00:20ff:fea7:ccea]>
+ + ServerAdmin webmaster@konak.mesela.dom
+ DocumentRoot /www/docs/konak.mesela.dom
+ ServerName konak.mesela.dom
+ ErrorLog logs/konak.mesela.dom-error_log
+ TransferLog logs/konak.mesela.dom-access_log
+
+ </VirtualHost> +
+ +

Her sanal konağın ya farklı bir IP adresi ve port ile ya da farklı bir + konak ismiyle eşleşmesi gerekir. Birinci durumda sunucu makinesinin çok + sayıda adresten IP paketleri kabul edecek şekilde yapılandırılması + gerekir. (Eğer makinede çok sayıda ağ arabirimi yoksa bu, işletim sistemi + desteklediği takdirde ifconfig alias komutuyla + sağlanabilir.)

+ + Ek Bilgi +

VirtualHost kullanımı Apache’nin + dinleyeceği adresler üzerinde belirleyici değildir. Apache’nin doğru + adresi dinlediğinden emin olmak için Listen kullanmanız gerekebilir.

+
+ +

IP’ye dayalı sanal konakları kullanıyorsanız, diğer sanal konaklarda + açıkça belirtilmemiş IP adresleriyle eşleşecek sanal konağı + _default_ özel ismiyle belirtebilirsiniz. "Ana" sunucu + yapılandırmasında _default_ diye bir sanal konağın + bulunmaması halinde, hiçbir IP adresi eşleşmesi bulunamadığı takdirde + VirtualHost bölümleri dışında kalan + tüm yapılandırmalar bu amaca yönelik olarak kullanılır. (Yalnız dikkat + edin, bir NameVirtualHost yönergesi + ile eşleşen bir IP adresi için ne "ana" sunucu yapılandırması ne de + _default_ sanal konak yapılandırması kullanılır. Bu konuda + daha ayrıntılı bilgi için isme dayalı + sanal konaklar belgesine bakınız.)

+ +

Eşleşilecek portu değiştirmek için bir :port + belirtebilirsiniz. Port bu şekilde değiştirilmediği takdirde ana + sunucunun son Listen + yönergesinde belirtilen port kullanılır. Bir adresteki tüm portlarla + eşleşileceğini belirtmek için :* kullanabilirsiniz. (Bu, + _default_ kullanıldığı takdirde önerilir.)

+ + Güvenlik +

Günlük dosyalarının sunucuyu çalıştıran kullanıcıdan başka herkes + tarafından yazılabilen bir yerde saklanmasından dolayı ortaya çıkabilecek + güvenlik sorunları hakkında daha ayrıntılı bilgi için güvenlik ipuçları belgesine + bakınız.

+
+
+Apache Sanal Konak Belgeleri +DNS ile İlgili Konular ve Apache +Apache’nin belli adresleri ve portları dinlemek + üzere yapılandırılması +Bir istek alındığında farklı yapılandırma bölümlerinin nasıl bir arada + ele alındığının açıklaması için + <Directory>, <Location> ve <Files> bölümleri nasıl + çalışır? belgesine bakınız. +
+ +
diff --git a/docs/manual/vhosts/index.xml.tr b/docs/manual/vhosts/index.xml.tr new file mode 100644 index 00000000000..2a37d326b8f --- /dev/null +++ b/docs/manual/vhosts/index.xml.tr @@ -0,0 +1,106 @@ + + + + + + + + + + + + Apache Sanal Konak Belgeleri + + + +

Sanal Konak (Virtual Host) terimi tek bir makine üzerinde + birden fazla sitenin (www.sirket1.dom, www.sirket2.dom gibi) barındırılma + uygulamasını betimler. Sanal konaklar, "IP’ye dayalı" veya "isme dayalı" olabilir; birincisinde, her site + ayrı bir IP adresinden sunulurken, ikincisinde her IP adresinde birden + fazla site sunulur. Olayda aynı fiziksel sunucu kullanıldığı halde bu + sunucu son kullanıcıya görünür değildir.

+ +

Apache yazılımsal olarak IP’ye dayalı sanal konakları destekleyen ilk + sunuculardan biridir. 1.1 sürümünden itibaren Apache hem IP’ye dayalı hem + de isme dayalı sanal konakları desteklemektedir. İsme dayalı sanal + konaklara bazen konağa dayalı sanal konaklar veya IP’ye + dayanmayan sanal konaklar da denmektedir.

+ +

Aşağıda, Apache’nin 1.3 sürümü ve sonrası için sanal konak desteğini bütün + ayrıntıları ile açıklayan belgeler listelenmiştir.

+ +
+ +mod_vhost_alias +İsme Dayalı Sanal Konaklar +IP Adresine Dayalı Sanal Konaklar +Sanal Konak Örnekleri +Dosya Tanıtıcı Sınırları +Kütlesel Sanal Konaklık +Ayrıntılı olarak Konak Eşleme + +
Sanal Konak Desteği + + + +
+ +
Yapılandırma Yönergeleri + +
    +
  • VirtualHost
  • +
  • NameVirtualHost
  • +
  • ServerName
  • +
  • ServerAlias
  • +
  • ServerPath
  • +
+ +

Sanal konak yapılandırmanız üzerinde hata ayıklamaya çalışıyorsanız + Apache’nin -S komut satırı seçeneği şu şekilde çok işinize + yarayabilir:

+ + + /usr/local/apache2/bin/httpd -S + + +

Bu komut, yapılandırma dosyasının Apache yorumunu dökümler. IP + adreslerinin ve sunucu isimlerinin dikkatli bir incelemesi, yapılandırma + yanlışlarınızı keşfetmenize yardımcı olabilir. (Diğer komut satırı + seçenekleri için httpd programının belgelerine + bakınız.)

+ +
+
diff --git a/docs/manual/vhosts/ip-based.xml.tr b/docs/manual/vhosts/ip-based.xml.tr new file mode 100644 index 00000000000..479212aec6a --- /dev/null +++ b/docs/manual/vhosts/ip-based.xml.tr @@ -0,0 +1,166 @@ + + + + + + + + + +Sanal Konaklar + Apache’de IP’ye Dayalı Sanal Konak Desteği + + +İsme Dayalı Sanal Konak Desteği + + +
Sistem gereksinimleri + +

IP’ye dayalı deyince, sunucunun her IP’ye dayalı + sanal konak için ayrı bir IP adresine sahip olduğunu anlıyoruz. + Bunun olması için, makine ya çok sayıda ağ bağlantısına sahiptir ya da + makinede, günümüzde çoğu işletim sistemi tarafından desteklenen sanal + arabirimler kullanılıyordur. (Sanal arabirimlerle ilgili ayrıntılar için + sistem belgelerinize bakınız; bu konu genellikle IP rumuzları (ip aliases) + olarak geçer ve ayarlamak için genellikle "ifconfig" komutu + kullanılır.)

+ +
+ +
Apache nasıl ayarlanır? + +

Çok sayıda konağı desteklemek üzere Apache iki şekilde + yapılandırılabilir. Ya her konak için ayrı bir httpd + süreci çalıştırırsınız ya da tüm sanal konakları destekleyen tek bir + süreciniz olur.

+ +

Çok sayıda süreç kullanıyorsanız:

+ +
    +
  • Güvenli bölgeler oluşturmanız gerekiyordur. Örneğin, şirket2’deki hiç + kimse dosya sistemi üzerinden şirket1’e ait verileri okuyamasın, sadece + herkes gibi tarayıcı kullanarak okuyabilsin istenebilir. Bu durumda, + User, + Group, + Listen ve + ServerRoot yönergeleri farklı + değerlerle yapılandırılmış iki ayrı süreç çalıştırmanız gerekir.
  • + +
  • Makine üzerindeki her IP adresini dinlemek için gereken + dosya tanıtıcı + ve bellek miktarını makul bir seviyede tutabilirsiniz. Bu sadece belli + adresleri dinleyerek veya çok sayıda adresle eşleşen adres kalıpları + kullanarak mümükün olabilir. Zaten, bir sebeple belli bir adresi dinleme + ihtiyacı duyarsanız, diğer tüm adresleri de ayrı ayrı dinlemeniz + gerekir. (Bir httpd programı N-1 adresi dinlerken + diğerleri kalan adresleri dinleyebilir.)
  • +
+ +

Tek bir süreç kullanıyorsanız:

+ +
    +
  • httpd yapılandırmasının sanal konaklar arasında + paylaşılmasına izin veriliyor demektir.
  • + +
  • Makine çok büyük miktarda isteği karşılayabilir ve ayrı ayrı + süreçlerin çalışmasından kaynaklanan önemli başarım kayıpları + yaşanmaz.
  • +
+ +
+ +
Çok sayıda sürecin yapılandırılması + +

Her sanal konak için ayrı bir httpd yapılandırması + oluşturulur. Her yapılandırmada, o süreç tarafından sunulacak IP adresi + (veya sanal konak) için Listen + yönergesi kullanılır. Örnek:

+ + + Listen www.birkobi.dom:80 + + +

Burada konak ismi yerine IP adresi kullanmanız önerilir (ayrıntılar için + DNS ile ilgili konular belgesine + bakınız).

+ +
+ +
Sanal konaklar tek bir sürecin yapılandırılması + +

Bu durum için, ana sunucu ve sanal konakların tümüne gelen istekler tek + bir httpd süreci tarafından karşılanır. Yapılandırma + dosyasında, her sanal konak için, farklı değerlere sahip ServerAdmin, ServerName, DocumentRoot, ErrorLogveTransferLog + veya CustomLog yönergeleri + içeren ayrı birer VirtualHost bölümü + oluşturulur. Örnek:

+ + + <VirtualHost www.birkobi.dom> + + ServerAdmin bilgi@posta.birkobi.dom
+ DocumentRoot /gruplar/birkobi/belgeler
+ ServerName www.birkobi.dom
+ ErrorLog /gruplar/birkobi/günlükler/hatalar.log
+ TransferLog /gruplar/birkobi/günlükler/erisim.log +
+ </VirtualHost>
+
+ <VirtualHost www.digerkobi.dom> + + ServerAdmin bilgi@posta.digerkobi.dom
+ DocumentRoot /gruplar/digerkobi/belgeler
+ ServerName www.digerkobi.dom
+ ErrorLog /gruplar/digerkobi/günlükler/hatalar.log
+ TransferLog /gruplar/digerkobi/günlükler/erisim.log +
+ </VirtualHost> +
+ +

Burada konak isimlerinin yerlerine IP adreslerini kullanmanız önerilir + (ayrıntılar için DNS ile ilgili konular + belgesine bakınız).

+ +

Süreç oluşturmayı denetleyen yönergeler ve bir kaç başka yönerge dışında + hemen hemen tüm yapılandırma yönergeleri VirtualHost bölümleri içinde kullanılabilir. Bir + yönergenin VirtualHost bölümlerinde + kullanılıp kullanılmayacağını öğrenmek için yönerge dizinini kullanarak yönergenin Bağlam’ına bakınız.

+ +

suEXEC sarmalayıcısı kullanıldığı takdirde + SuexecUserGroup yönergesi de + bir VirtualHost bölümü içinde + kullanılabilir.

+ +

GÜVENLİK:Günlük dosyalarının yazılacağı yeri belirlerken, + Apache’yi başlatan kullanıcıdan başka kimsenin yazamayacağı bir yerin + seçilmesi bazı güvenlik risklerini ortadan kaldırmak bakımından önemlidir. + Ayrıntılar için güvenlik ipuçları + belgesine bakınız.

+
+
diff --git a/docs/manual/vhosts/name-based.xml.tr b/docs/manual/vhosts/name-based.xml.tr new file mode 100644 index 00000000000..e8173a0cb88 --- /dev/null +++ b/docs/manual/vhosts/name-based.xml.tr @@ -0,0 +1,278 @@ + + + + + + + + + +Sanal Konaklar +İsme Dayalı Sanal Konaklar + + +

Bu belgede isme dayalı sanal konakların ne zaman, nasıl kullanılacakları + açıklanmıştır.

+
+ +IP Adresine Dayalı Sanal Konaklar +Konak Eşlemenin Derinliğine İncelenmesi + +Devingen olarak Yapılandırılan Kütlesel Sanal +Barındırma +Çok kullanılan sanal konak yapılandırma +örnekleri +ServerPath yapılandırma örneği + + +
İsme dayalı ve IP’ye dayalı Sanal Konaklar + +

IP’ye dayalı sanal konaklarda sunulacak sanal konağı doğru tespit + edebilmek için bağlantının yapıldığı IP adresine bakılır. Bu bakımdan her + konak için ayrı bir IP adresine gereksinim vardır. İsme dayalı sanal + konaklarda ise sunucu, istemcinin HTTP başlığının bir parçası olarak + gönderdiği konak adını kullanır. Bu teknikte aynı IP adresini çok sayıda + farklı konak kullanabilir.

+ +

İsme dayalı sanal barındırma nispeten daha kolaydır, çünkü her konak + ismini doğru IP adresiyle eşlemek için DNS sunucunuzu yapılandırdıktan + sonra Apache HTTP sunucusunu farklı konak isimlerini tanıyacak şekilde + yapılandırmanız yeterli olur. İsme dayalı sanal barındırma ayrıca zaten + kıt olan IP adreslerine talebi de azaltır. Bu nedenle, IP’ye dayalı sanal + konakları kullanmanızı gerektirecek çok özel bir sebep olmadıkça isme + dayalı sanal konaklar kullanmalısınız. IP’ye dayalı sanal konakların + kullanımını gerektirebilecek bazı durumlar:

+ +
    +
  • Bazı tarihi istemciler isme dayalı sanal konaklarla uyumlu değildir. + İsme dayalı sanal konakların çalışması için istemcinin HTTP Host + başlığı göndermesi gerekir. Bu da HTTP/1.1 desteği gerektirir. + Günümüzdeki HTTP/1.0 istemcileri bir eklenti olarak HTTP/1.1’i de + desteklemektedir. Tarihi eser haline gelmiş HTTP/1.1 desteği + bulurmayan eski istemcileri hala isme dayalı sanal konaklarla + desteklemek isterseniz bu belgenin sonunda bunu mümkün kılabilecek bir + tekniğe yer verilmiştir.
  • + +
  • İsme dayalı sanal konaklar SSL portokolünün doğası gereğince SSL’li + güvenli sunucular için kullanılamazlar.
  • + +
  • Bazı işletim sistemlerinin ve ağ donanımlarının gerçekleştirdiği + band genişliği yönetim teknikleri IP adresleri farklı olmadığı sürece + konaklar arasında ayrım yapamazlar.
  • +
+ +
+ +
İsme Dayalı Sanal Konakların Kullanımı + + + + core + + + + DocumentRoot + NameVirtualHost + ServerAlias + ServerName + ServerPath + VirtualHost + + + +

İsme dayalı sanal konakları kullanmak için, bu konaklar için istekleri + kabul edecek sunucuya IP adresini (ve muhtemelen portu da) + belirtmelisiniz. Bu işlem NameVirtualHost yönergesiyle yapılır. Normal + şartlar altında sunucu üzerinde bütün IP adreslerinin kullanılması + gerekir; bunun için NameVirtualHost + yönergesine argüman olarak * belirtebilirsiniz. Çok sayıda + port kullanmayı planlıyorsanız (SSL çalıştırmak gibi), argümana + *:80 şeklinde port ekleyebilirsiniz. Yalnız, NameVirtualHost yönergesinde bir IP adresi + belirtmiş olmakla sunucunun kendiliğinden o IP adresini dinlemeyeceğine + dikkat ediniz. Bu konuda ayrıntılı bilgi edinmek için Apache’nin kullanacağı adreslerin ve portların + ayarlanması belgesine bakınız. Ayrıca, sunucuda, burada belirttiğiniz + IP adresine sahip bir ağ arabirimi olmalıdır.

+ +

Sonraki adım sunacağınız her konak için ayrı bir VirtualHost bölümü oluşturmaktır. + VirtualHost + yönergesinin argümanı ile eşleşen bir NameVirtualHost yönergesi tanımlanmış olmalıdır + (bu değer normalde ya bir IP adresidir ya da *’dır). Her + VirtualHost bölümü + içinde sunulan konağı belirtmek üzere en azından bir adet ServerName yönergesine ve konak içeriğinin dosya + sisteminde bulunduğu yeri gösteren bir DocumentRoot yönergesine ihtiyacınız olacaktır.

+ + Ana konağı unutmayın +

Mevcut sitenize sanal konaklar eklerseniz, mevcut siteniz için de bir + VirtualHost bölümü + oluşturmalısınız. Bu sanal konak bölümü içinde kullanacağınız + ServerName ve DocumentRoot yönergelerinin argümanları, bu + yönergelerin sunucu geneli için belirttiğiniz değerlerini + içermelidir. Bu sanal konağı yapılandırma dosyanızdaki ilk sanal konak + yapın ki, öntanımlı konak olsun.

+
+ +

Örnek olarak, www.biralan.tld adresinden sitenizi sunmakta + olduğunuzu ve bunun yanına aynı IP adresini kullanan + www.digeralan.tld sanal konağını eklemek istediğinizi + varsayalım. Bunun için httpd.conf dosyanıza basitçe şu + satırları ekleyebilirsiniz:

+ + + NameVirtualHost *:80
+
+ <VirtualHost *:80>
+ + ServerName www.biralan.tld
+ ServerAlias biralan.tld *.biralan.tld
+ DocumentRoot /siteler/biralan
+
+ </VirtualHost>
+
+ <VirtualHost *:80>
+ ServerName www.digeralan.tld
+ DocumentRoot /siteler/digeralan
+
+ </VirtualHost>
+
+ +

İsterseniz, NameVirtualHost ve + VirtualHost + yönergelerinde argüman olarak * yerine doğrudan bir IP adresi + belirtebilirsiniz. Hatta, daha sonra, isme dayalı sanal konakları bir IP + adresinden ve IP’ye dayalı olanları veya isme dayalı diğer bir sanal konak + grubunu diğer IP adreslerinden sunmak isteyebilirsiniz.

+ +

Çoğu sunucunun birden fazla isim ile erişilebilir olması istenir. Bu, + VirtualHost bölümü + içine bir ServerAlias yönergesi + yerleştirmek suretiyle mümkün olur. Örneğin yukarıdaki örnekte, + kullanıcıların aynı siteye farklı isimlerle erişmelerini mümkün kılmak + için bölüm içine şu satırı ekleyebilirsiniz:

+ + + ServerAlias biralan.tld *.biralan.tld + + +

Böylece biralan.tld alanındaki tüm konaklar için gelen + isteklere www.biralan.tld sanal konağından hizmet sunulmuş + olur. Konak isimleriyle eşleşmek üzere dosya ismi kalıp karakterleri + * ve ? kullanılabilir. Şüphesiz bu isimleri sırf + ServerName veya + ServerAlias yönergesinde belirtmiş olmakla bu isimleri + erişilebilir kılamazsınız. Öncelikle, bu isimleri sunucunuzdaki IP + adresleriyle eşlemek üzere yapılandıracağınız bir DNS sunucunuz + olmalıdır.

+ +

Son olarak, sanal konak yapılandırmanıza, VirtualHost bölümlerinin içine başka yönergeler + yerleştirerek ince ayar çekebilirsiniz. Çoğu yönerge bu bölümlere + yerleştirilebilir ve sadece o sanal konakla ilgili yapılandırmayı + değiştirmek için kullanılabilir. Belli bir yönergenin sanal konak + bölümlerinde kullanılıp kullanılmayacağını yönergenin açıklamasında Bağlam satırına bakarak + öğrenebilirsiniz. Ana sunucu bağlamındaki (VirtualHost bölümleri dışındaki) + yapılandırma yönergelerinden sadece sanal konak bölümlerinde geçersiz + kılınmamış olanlar kullanılacaktır.

+ +

Sunucuya bir istek geldiğinde, sunucu önce IP adresiyle eşleşmesi olası + NameVirtualHost bölümleri var mı diye + bakar. Varsa, IP adresini eşleştirmek için NameVirtualHost bölümlerine tek tek bakar ve + istenen konak ismi ile eşleşen bir ServerName veya ServerAlias yönergesi bulmaya + çalışır. Bir tane bulduğunda, sunucu için onun yapılandırmasını kullanır. + İsimle eşleşen bir sanal konak bulamazsa IP adresiyle eşleşen ilk + sanal konağın yapılandırmasını kullanır.

+ +

Bir önkabul olarak yapılandırma dosyasında rastlanan ilk sanal konak + öntanımlı sanal konaktır. IP adresi bir sanal konakla eşleştiği + takdirde ana sunucunun DocumentRoot değeri asla kullanılmayacaktır. + Sanal konaklardan hiçbiriyle eşleşmeyen istekler için özel bir + yapılandırmanız olsun isterseniz, bu yapılandırmayı yapılandırma + dosyanızdaki ilk VirtualHost bölümüne yerleştirmeniz + yetecektir.

+ +
+ +
Artık Tarihe Karışmış Tarayıcılarla Uyumluluk + +

Evvelce de bahsedildiği gibi, isme dayalı sanal konakların gerektiği gibi + çalışması için gerekli veriyi göndermeyen bazı istemciler vardır. Bu + istemcilere daima o IP adresinin yapılandırma dosyasındaki ilk sanal + konağının (isme dayalı başat sanal konak) sayfaları + gönderilir.

+ + Ne kadar eski? +

Lütfen dikkat edin, eski deyince gerçekten de antika demek istiyoruz. + Günümüzde bu tür tarayıcılara rastlamanız neredeyse imkansızdır. Günümüz + tarayıcılarının hepsi isme dayalı sanal konakların gerektirdiği + Host başlığını gönderirler.

+
+ +

Olayı fazla germeden ServerPath + yönergesini kullanarak sorunun çevresinden dolanmak mümkündür:

+ +

Örnek yapılandırma:

+ + + NameVirtualHost 111.22.33.44
+
+ <VirtualHost 111.22.33.44>
+ + ServerName www.biralan.tld
+ ServerPath /biralan
+ DocumentRoot /siteler/biralan
+
+ </VirtualHost>
+
+ +

Bu ne anlama geliyor? Anlamı, "/biralan" ile başlayan her + URI isteği www.biralan.tld sanal konağı tarafından sunulacak, + demektir. Yani, tüm istemcilerin + http://www.biralan.tld/biralan/ olarak eriştiği yere + Host: başlığı gönderen istemciler + http://www.biralan.tld/ olarak erişirler.

+ +

Bunu gerçekleştirebilmek için başat sanal konağın baş sayfasına + http://www.biralan.tld/biralan/ için bir bağ koyduktan sonra + sanal konağın sayfalarında ya tamamen göreli bağlar + ("dosya.html", "../simgeler/resim.png" gibi) + veya /biralan/ ile öncelenmiş bağlar + ("http://www.biralan.tld/biralan/muht/dosya.html" veya + "/biralan/muht/dosya.html" gibi) kullanın.

+ +

Bu işlem biraz disiplin gerektirse de bu yazılanlara sıkı sıkıya bağlı + kalarak hem eski hem de yeni tarayıcıların sayfalarınızı doğru + görüntülemesini sağlamış olursunuz.

+ +
+