‘VARSAYILAN' SUNUCU AYARLARI

 

Bu bölümdeki ayarlar, hiçbir sanal sunucu tarafından ele alınmayan istekleri karşılayan 'Varsayılan' sunucu ayarlarını içerir. Ayrıca, <VirtualHost>'larda tanımlanmayan her değer bu bölümden alınır.

                  Buradaki bütün yönergeler <VirtualHost>'larda yeralabilir, ki o zaman, bu bölümdeki yönergeler'override' edilmiş olur, ve <VirtualHost>'daki değer kullanılır.Eğer yukarıda Evrensel Ortam bölümünde, ServerType inetd olarak ayarlanmışsa, aşağıdaki 'port', 'user' ve 'group' ayarlarının bir etkisi olmayacaktır.  Bu durumda, ServerAdmin kısmına atlayınız.

            Port: Tekbaşına (standalone) sunucunun dinlediği 'port'. 1023'den küçük 'port'lar için httpd'nin  çalıştırılma sırasında root haklarına sahip olması gerekir.

 

Port 80

 

Eğer, httpd'yi (Ana sunucu) farklı bir kullanıcı ya da grupta çalıştırmak isterseniz,başlangıçta root olarak çalıştırın, httpd kendisini o kullanıcıyla/grupla yer değiştirecektir.

Kullanıcı/Grup: httpd'nin çalışacağı kullanıcı ve/veya grup ismi (ya da numarası).SCO Unix (ODT 3) için "nouser" ve "nogroup" kullanınız.  . HPUX'da paylaşımlı belleği "nobody" kullanıcısıyla kullanamazsınız, bunun yerine www gibi bir  kullanıcı yaratıp onu kullanın.

            UYARI: Bazı işletim sistemlerinin çekirdekleri, grup numarası 60000'in üzerinde olduğu zaman  setgid(Grup) ya da semctl(IPC_SET) Unix fonksiyonlarını çağırmayı reddeder.Bu sistemlerde webgroup grubunu kullanmayın.

 

User webuser


Group webgroup

 

             ServerAdmin: Sunucuda problem çıktığında, e-posta gönderilebilecek adres. Bu adres,

hata mesajları gibi, sunucu tarafından üretilen sayfalarda "görünebilir".Ayrıca Server Signature yönergesine bakınız.


ServerAdmin webmaster@marun.edu.tr

 

ServerName: Eğer makinenizin ismi www'den farklıysa, istemciye geri gönderilecek sunucu  ismini  değiştirebilmenizi  sağlar. Yani,  makinenin  gerçek  ismi,  ör. sunucu.marun.edu.tr, yerine  www.marun.edu.tr kullanmak isterseniz, bu ayarı

değiştirin.


UYARI: Kendi başınıza makine ismi yaratıp, bunların çalışmasını bekleyemezsiniz.

Burada verdiğiniz  ismin DNS'de tanımlı olması gerekir. Daha detaylı bilgi için sistem yöneticinize başvurunuz.  Eğer sunucunuzun kayıtlı bir DNS ismi yoksa, IP numarasını giriniz. Ancak bu durumda, sunucuya sadece  IP adresiyle erişebilirsiniz (ör. http://123.45.67.89/).


 
ServerName www.marun.edu.tr

 

DocumentRoot: Belgelerinizi sunacağınız dizin. Varsayılanı, bütün isteklerin bu dizinden karşılanmasıdır. Ancak, sembolik bağ (symbolic link) ya da alias (lakap) kullanarak farklı  dizinlere  erişim de sağlayabilirsiniz.  Kişisel tecrübelere dayanarak Web sayfalarının

Apache programlarının durduğu dizinden farklı bir  dizinde durması yararlı olacaktır. Bu

hem yedeklemede, hem de dosyaların yönetiminde avantaj sağlar. Bu yolu seçtiğiniz takdirde, ör. /web dizini altında her sanal sunucu için ayrı bir kök dizin,  bu dizinlerin altında da HTML sayfaları ve CGI programları için ayrı dizinler açmak  işinizi rahatlatacaktır.

 

DocumentRoot "/web/www/docs"

 Apache'nin erişiminin olduğu her dizin ve altdizinleri için, hangi servis, özelliklerin vb izin  verildiği ve/veya verilmediği belirtilebilir. İlk olarak "varsayılan" dizinin haklarını epey kısacağız. Güvenliği maksimuma getirmek isterseniz FollowSymLinks'i de kaldırıp Options None yapın. FollowSymLinks'le kullanıcılarınızdan biri /etc gibi kritik bir dizine bir symbolik verebilir ve bu  dizin dış dünya tarafından okunabilir hale gelir. Bir diğer alternatif olarak görülen SymLinksIfOwnerMatch daha güvenlidir ancak istenen dizinin birkaç seviye içerde olması durumunda tepki süresini epey yavaşlatır. Örneğin "Option SymLinksIfOwnerMatch" verilmişse, sunucu

 

/usr/local/apache/htdocs/dosyalar/ dizini istendiği zaman  /usr, /usr/local, /usr/local/apache, /usr/local/apache/htdocs ve /usr/local/apache/htdocs/dosyalar dizinlerinin *hepsinin* bir symbolik link olup olmadığını ve sahiplerinin kim olduğunu kontrol eder.

 

<Directory />

  Options FollowSymLinks

  AllowOverride None

</Directory>

 

 Bu noktadan itibaren, ayrıntılıca hangi özelliklerin kullanılabileceği belirtilebilir. Dolayısıyla, birşeyler istediğiniz gibi çalışmıyorsa, aşağıda açık olarak izin verildiğine emin olun.Bu dizin DocumentRoot yönergesinde verdiğiniz dizin olmalıdır.

 

<Directory "/web/www/docs">

 

 Bu ayar aşağıdakilerin yanısıra "None", "All", veya "Indexes", "Includes", "FollowSymLinks","ExecCGI", "MultiViews"'in bir kombinasyonu olabilir.

UYARI: "MultiViews" açık olarak(explicitly) vermek zorundasınız --- "Options All" bu işi görmez.   Daha fazla güvenlik istiyorsanız, hızdan bir miktar taviz vererek buradaki FollowSymLinks'i   SymLinksIfOwnerMatch yapabilirsiniz. Bu şekilde, sembolik bağın sahibiyle, bağ verilen yolun sahibi  aynı olmadıkça o yol açılmayacaktır. Ör. webuser kullanıcısı /etc'ye sembolik bağ verse bile,  /etc'nin sahibi root olduğu için /etc'nin içeriği Web sitesinden erişilemez olur.

  

Options Indexes FollowSymLinks MultiViews

 

 Belli dizinlere .htaccess dosyası koyarak, o dizine şifreli erişim, belli adreslerden rişim gibi  kısıtlamalar getirebilirsiniz. Bu ayar .htaccess dosyalarında nelerin 'override' edilebileceğini  söyler. Aşağıdakinin yanısıra "All", ya da "Options", "FileInfo", "AuthConfig", "Limit"'in bir  kombinasyonu olabilir.  

AllowOverride None

 

 Bu sunucudan kimlerin dosya okumasına izin verildiği ayarı.Bütün adreslerden erişime izin ver...

 

  Order allow,deny

  Allow from all

Sadece aşağıdaki IP bloğundan okumaya izin ver...

Order deny,allow
  Allow from 193.140.83.

  Deny from all

</Directory>

 UserDir: Sistemdeki kullanıcıların kendi sayfalarına

http://www.marun.edu.tr/~kullanıcı_adı/ şeklinde ulaşabilmeleri için ev dizinlerinde oluşturmaları gereken dizinin adı.

 

<IfModule mod_userdir.c>

  UserDir public_html

</IfModule>


        Aşağıdaki satırla, Apache'nin çalışma esnasında, LD_LIBRARY_PATH ortam değişkeninini verilen şekliyle  kullanmasını belirtiyoruz. Bu satır, kurulan bazı modüllerin kütüphanelerinin varsayılan olarak /usr/local/lib'e kurulması
 ve Apache'nin varsayılanında /usr/local/lib'i yeralmaması nedeniyle gereklidir.

 

<IfModule mod_env.c>

  SetEnv LD_LIBRARY_PATH /usr/local/lib:/lib:/usr/ucblib:/usr/openwin/lib

</IfModule>

 

 Kullanıcı dizinlerine erişim hakları. Aşağıdaki ayarlar, bu dizinlere sadece-okuma (read-only) izni  verildiği bir örnektir.

 

<Directory /home/*/public_html>

  AllowOverride FileInfo AuthConfig Limit

  Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec

  <Limit GET POST OPTIONS PROPFIND>

    Order allow,deny
    Allow from all

  </Limit>

  <LimitExcept GET POST OPTIONS PROPFIND>

    Order deny,allow

    Deny from all

  </LimitExcept>

</Directory>

 

 DirectoryIndex: Dizin endeksleri (diğer bir deyişle varsayılan sayfa) için kullanılan dosya ya da  dosyaların adları. Birden fazla girdi arasında boşluk kullanınız.  Apache,istenen izinde bu dosyalara verilen sırada bakar, ve bulduğu *ilkini* gönderir, yani sıralama önemlidir.

 

<IfModule mod_dir.c>

  DirectoryIndex index.ozeluzanti index.php index.php3 index.html index.htm

</IfModule>

 

 AccessFileName:Dizinlerin altında erişim kontrol bilgilerinin tutulduğu dosya. Ayrıca AllowOverride yönergesine bakınız

 

AccessFileName .htaccess

 

Aşağıdaki satırlar, istemcilerin .htaccess dosyalarına doğrudan erişimini kısıtlar. Bu dosyaların  doğrulama bilgisi (şifre vb) gibi kritik bilgiler tutması nedeniyle, doğrudan erişimin kısıtlanması  gerekir. Bu dosyalara ancak Apache programının kendisi erişebilir. Bu davranışı istemiyorsanız, aşağıdaki satırların başına # koyunuz.  Ayrıca, eğer yukarıda AccessFileName yönergesinde bu dosyalara farklı bir isim verdiyseniz, bu ayarı  da değiştiriniz.  Aşağıdaki ayar .ht'yle başlayan tüm dosyaları filtreler, yani, .htaccess'den başka (bazı sitelerin kullandığı) .htpasswd, .htfiles gibi dosyaları da korur.


<Files ~ "^\.ht">

  Order allow,deny

  Deny from all

</Files>

 

     ozel.dosya ismindeki dosyaların sunucunun kendisi haricinde kimse tarafından okunmaması için. Örneğin bir PHP programı sunucu tarafında çalıştığı için bu dosyaları okuyabilirken, istemciler doğrudan bu dosyalara erişemezler.

 

<Files ~ "^ozel\.dosya$">

  Order allow,deny

  Deny from all

</Files>

 CacheNegotiatedDocs: Varsayılanı, Apache'nin her sayfayla birlikte "Pragma: no-cache" göndermesidir. Böylece 'Cache/Proxy' (Önbellek/Vekil) sunucuları (ör. http://wwwcache.ulak.net.tr/) bu dosyaları önbelleklemezler. Eğer bu davranışı istemiyorsanız, aşağıdaki satırın başındaki #'i kaldırınız.

 

CacheNegotiatedDocs

 

UseCanonicalName: (Apache 1.3 ve yukarısı) Bu ayar açıldığı zaman, ne zaman Apache geri-referans (self-referencing - cevabın geldiği sunucuyu gösteren) URL oluştursa, ServerName ve Port yönergelerinden oluşturulan bir 'Canonical' (yaklaşık olarak çözülmüş/gerçek denilebilir) isim ullanır. Bu ayar kapatıldığı zaman, Apache, istemcinin gönderdiği sunucuismi:port ikilisini kullanır. Ayrıca bu ayar, CGI programlarındaki SERVER_NAME ve SERVER_PORT değişkenlerini de etkiler.

 

UseCanonicalName On

 

 TypesConfig: MIME tiplerinin verildiği dosyanın nerede tutulduğunun ayarı.


<IfModule mod_mime.c>


  TypesConfig /usr/local/apache/conf/mime.types


</IfModule>

 

 DefaultType: Sunucu, dosya uzantısında MIME tipini bulamadığı zaman kullanacağı varsayılan MIME tipidir. Eğer sunucunuzda çoğunlukla metin ya da HTML dosyaları varsa, "text/plain" iyi bir değerdir. Eğer çoğunlukla ikili (binary), ör. program ya da resim, dosyanız varsa, tarayıcıların istediği dosyayı metin gibi göstermeyeçalışmaması için, "application/octet-stream" kullanmak isteyebilirsiniz.

 

DefaultType text/plain

 

  mod_mime_magic modülü, sunucunun dosyanın içeriğine bakarak dosya tipini bulabilmesini sağlar.(UNIX'de resim dosyalarının uzantısının .gif, .jpg olması zorunlu değildir). MIMEMagicFile yönergesi, mime_magic modülü için ipuçları dosyasının nerede tutulduğunu ayarlar.Eğer yukarıdaki "Evrensel Ortam: DSO" bölümünde bu modülün LoadModule yönergesiyle yüklenmiş olması  gerekmektedir.

 

 <IfModule> bu modülün gerektiği şekilde yüklenip yüklenmediğini kontrol eder, aksi takdirde sunucu hata verir.

 

<IfModule mod_mime_magic.c>

  MIMEMagicFile /usr/local/apache/conf/magic

</IfModule>

 

             HostnameLookups: Sunucu kayıtlarında (logfiles) İstemcilerin (varsa) açık isimlerinin(ör. descent.ulakbim.gov.tr) mi, yoksa sadece IP numaralarının (ör. 193.140.83.12) mı tutulacağı. Varsayılanı "Off"dur çünkü tersi durumda her istek için DNS sunucusundan istemcinin varsa ismi bulunmaya çalışılır. Diğer bir deyişle, "Off" durumunda sunucunun tepki süresi iyileşir. Ancak kayıtlarınızda istemcilerin tam adreslerini (FQDN) görmek isterseniz açın (On durumuna getirin), güvenliğe destek olan cinsten bir yönergedir.

 

HostnameLookups Off