Yapılandırma Dosyaları
Bu belgede Apache HTTP Sunucusunu yapılandırmakta kullanılan dosyalar
açıklanmıştır.
Ana Yapılandırma Dosyaları
mod_mime
IfDefine
Include
TypesConfig
Apache HTTP Sunucusu düz metin yapılandırma dosyalarına yönergeler yerleştirilerek yapılandırılır.
Ana yapılandırma dosyasının ismi normalde httpd.conf
’tur.
Bu dosyanın yeri derleme sırasında belirlenir, ancak çalıştırma
sırasında -f
komut satırı seçeneği ile başka bir yer
belirtilebilir. Ayrıca, Include
yönergesi kullanılarak başka yapılandırma dosyaları da eklenebilir
ve bu dosyaların isimleri belirtilirken dosya ismi şablonları
kullanılabilir. Bu dosyaların içine de ana yapılandırma dosyasında
olduğu gibi her türlü yönerge yerleştirilebilir. Ana yapılandırma
dosyalarındaki değişiklikler httpd tarafından sadece başlatma veya
yeniden başlatma sırasında etkin kılınır.
Sunucu ayrıca MIME belge türlerini içeren bir dosya daha okur;
dosya ismi öntanımlı olarak mime.types
olup TypesConfig yönergesi ile başka bir dosya
belirtilebilir.
Yapılandırma Dosyalarının Sözdizimi
httpd yapılandırma dosyalarının her satırında sadece bir yönerge
bulunur ve bir yönergenin birden fazla satıra yayılması daha iyi
olacaksa satır katlanabilir; devamı bir alt satırda olan her satırın
son karakteri “\” (tersbölü) olmalı, satırsonu karakteri ile bu tersbölü
karakteri arasında başka karakter bulunmamalıdır.
Yapılandırma dosyalarındaki yönergelerin isimleri harf büyüklüğüne
duyarlı olduğu halde argümanları genellikle harf büyüklüğüne duyarlı
değildir. Diyez (“#”) karakteri ile başlayan satırlar açıklama olarak
ele alınır ve yok sayılırlar. Yapılandırma yönergesi içeren satırların
ardına açıklama yerleştirilemez. Yönerge isminden önce yer alan boşluklar
ve boş satırlar yok sayılır; bu özellik, okunabilirliği sağlamak için
yönergelerin girintilenebilmesi olanağını verir.
Define ile veya kabuğun ortam
değişkenleri ile tanımlanmış değişkenlerin değerleri, yapılandırma
dosyasının satırlarında ${VAR}
sözdizimi ile kullanılabilir.
"VAR" geçerli bir değişkenin adı olduğu takdirde, bu değişkenin değeri
yapılandırma dosyasının bu noktasında yerine konacak ve orada zaten
değişken yerine değeri varmış gibi işlem kaldığı yerden devam edecektir.
Define ile tanımlanmış değişkenler
kabuğun ortam değişkenlerinden önceliklidir. "VAR" diye bir değişken yoksa
${VAR}
içindeki karakterler değişmeden kalır ve günlüğe bir
uyarı çıktılanır. RewriteMap
sözdizimi ile olası bir karışıklığı önlemek için, değişken isimleri iki
nokta imini (":") içeremez.
Kabuğun ortam değişkenlerinin, sadece, sunucu başlatılmadan önce
tanımlanmış değerleri kullanılabilir. Yapılandırma dosyasının kendisinde
tanımlanmış ortam değişkenleri (örneğin,
SetEnv ile), yapılandırma
dosyasındaki işlemlerde çok daha sonra yer alır.
Yapılandırma dosyasındaki bir satırın uzunluğu, değişken ikamesi
yapıldıkta, devam satırları eklenip satır başındaki ve sonundaki boşluk
karakterleri atıldıktan sonra en fazla 8192 karakter olabilir.
Sunucuyu başlatmadan önce apachectl configtest
ile veya
-t
komut satırı seçeneği ile yapılandırma dosyalarınızı
sözdizimi hatalarına karşı sınayabilirsiniz.
Modüller
mod_so
IfModule
LoadModule
httpd modüler yapıda bir sunucudur. Bu, çekirdek sunucunun sadece en
temel işlevselliği içermesi demektir. Ek özellikler, httpd’ye modüller halinde yüklenebilir. Öntanımlı olarak, derleme
sırasında sunucunun temel bir
modül kümesi içermesi sağlanır. Eğer sunucu devingen
yüklenen modülleri kullanmak üzere yapılandırılarak derlenirse modüller
ayrı olarak derlenip gerektiği zaman
LoadModule yönergesi kullanılarak yüklenebilir. Aksi takdirde,
ek modülleri yükleyebilmek veya kaldırabilmek için httpd’nin yeniden
derlenmesi gerekir. Yapılandırma yönergeleri belli bir modülün varlığına
dayalı olarak bir IfModule
bloku içine alınmak suretiyle sunucuya koşullu olarak eklenebilir. Ancak,
IfModule yönergeleri
gerekli değildir, önemli bir modülün yokluğu gibi durumlarda
maskelenebilir.
Sunucunun içinde derlenmiş modüllerin listesini görmek için
-l
komut satırı seçeneğini kullanabilirsiniz. Ayrıca,
-M
komut satırı seçeneği ile hangi modüllerin devingen olarak
yüklendiğini görebilirsiniz.
Yönergelerin Etki Alanı
Directory
DirectoryMatch
Files
FilesMatch
Location
LocationMatch
VirtualHost
Ana yapılandırma dosyasına yerleştirilen yönergeler sunucunun tamamına
uygulanır. Yapılandırmanızı sunucunun belli bir parçası için değiştirmek
isterseniz yönergelerinizi Directory, DirectoryMatch, Files, FilesMatch, Location ve LocationMatch bölümleri içine yerleştirerek etki
alanlarını değiştirebilirsiniz. Bu bölümler yönergelerin etkilediği
alanları dosya sistemininin belli yerleri veya belli URL’lerle sınırlar.
Yerine göre daha hassas ayarlamalar yapmak için bu bölgeler iç içe de
kullanılabilir.
httpd, çok sayıda farklı siteyi aynı anda sunabilecek yetenektedir.
Buna Sanal Konaklık adı verilir. Yönergelerin etki
alanları ayrıca VirtualHost
bölümleri içine konarak da değiştirilebilir. Böylece belli bir siteye gelen
isteklere farklı bir uygulama yapılabilir.
Yönergelerin çoğu bu bölümlere yerleştirilebilirse de bazı yönergelerin
bazı bağlamlarda bir etkisi olmaz. Örneğin, süreç oluşturmayı denetleyen
yönergeler sadece ana sunucu bağlamına yerleştirilebilir. Hangi yönergenin
hangi bağlama yerleştirilebileceğini bulmak için yönergenin bağlamına bakınız. Bu konuda daha
ayrıntılı bilgi edinmek için: Directory, Location ve
Files Bölümleri Nasıl Çalışır.
.htaccess Dosyaları
AccessFileName
AllowOverride
httpd yapılandırma sorumluluğunu dağıtmak için site ağaçları içine özel
dosyalar yerleştirilmesine izin verir. Bu özel dosyalar normalde
.htaccess
dosyaları olmakla birlikte AccessFileName yönergesi kullanılarak rasgele bir isim
belirtilebilir. .htaccess
dosyalarına yerleştirilen yönergeler
sadece dosyanın bulunduğu dizine ve alt dizinlerine uygulanır.
.htaccess
dosyalarında da ana yapılandırma dosyalarında geçerli
sözdizimi kullanılır. .htaccess
dosyaları her istek gelişinde
yeniden okunduğundan bu dosyalarda yapılan değişiklikler hemen etkisini
gösterir.
.htaccess
dosyalarına hangi yönergelerin
yerleştirilebileceğini bulmak için yönerge bağlamına bakınız.
Sunucunun yöneticisi .htaccess
dosyalarına hangi yönergelerin
yerleştirilebileceğini ana yapılandırma dosyalarında
AllowOverride yönergesini kullanarak
belirleyebilir.
.htaccess
dosyaları hakkında daha ayrıntılı bilgi edinmek
için .htaccess öğreticisine bakabilirsiniz.