<
name>CoreDumpDirectory</
name>
<
description><
code>core</
code> dosyasını dökümlemek üzere Apache’nin geçmeye
çalışacağı dizin.</
description>
<
syntax>CoreDumpDirectory <
var>dizin</
var></
syntax>
<
default>Öntanımlı değer için aşağıdaki açıklamaya bakınız</
default>
<
contextlist><
context>server config</
context></
contextlist>
<
modulelist><
module>beos</
module><
module>leader</
module>
<
module>mpm_winnt</
module><
module>perchild</
module><
module>prefork</
module>
<
module>threadpool</
module><
module>worker</
module></
modulelist>
<
p>Bu yönerge <
code>core</
code> dosyasını dökümlemek üzere Apache’nin
geçmeye çalışacağı dizini belirler. <
directive module="core">ServerRoot</
directive> dizini öntanımlı dizin olmakla
birlikte, bu dizin kullanıcılar tarafından yazılabilir bir dizin
olmadığından bir <
code>core</
code> dosyası dökümlenmez. Hata ayıklama
amacıyla bir <
code>core</
code> dosyası dökümlemek isterseniz farklı bir
yer belirtmek için bu yönergeyi kullanabilirsiniz.</
p>
<
note><
title>Linux üzerinde <
code>core</
code> dökümlemek</
title>
<
p>Apache root olarak başlatılıp başka bir kullanıcıya geçilirse Linux
çekirdeği süreç tarafından yazılabilir olsa bile <
code>core</
code>
dökümlemeyi <
em>iptal eder</
em>. Eğer
<
directive>CoreDumpDirectory</
directive> yönergesi ile açıkça bir
dizin belirtirseniz, Apache (2.0.46 ve sonraki sürümleri), Linux 2.4 ve
sonrasında <
code>core</
code> dökümlemeyi yeniden
<
name>EnableExceptionHook</
name>
<
description>Bir çöküş sonrası olağandışılık eylemcilerini çalıştıracak
kancayı etkin kılar.</
description>
<
syntax>EnableExceptionHook On|Off</
syntax>
<
default>EnableExceptionHook Off</
default>
<
contextlist><
context>server config</
context></
contextlist>
<
modulelist><
module>leader</
module><
module>perchild</
module>
<
module>prefork</
module><
module>threadpool</
module>
<
module>worker</
module></
modulelist>
<
compatibility>Sürüm 2.0.49 ve sonrasında mevcuttur</
compatibility>
<
p>Güvenlik sebebiyle bu yönerge sadece Apache
<
code>--enable-exception-hook</
code> seçeneği ile yapılandırılmışsa
kullanılabilir olacaktır. Bu, harici modüllerin eklenmesine ve bir çocuk
sürecin çöküşü sonrası bir şeyler yapmaya izin veren bir kancayı etkin
<
p>Bu kancayı kullanan iki modül (<
code>mod_whatkilledus</
code> ve
<
code>mod_backtrace</
code>) zaten vardır. bunlar hakkında daha fazla bilgi
edinmek için Jeff Trawick'in <
a >EnableExceptionHook site</
a>sine bakabilirsiniz.</
p>
<
name>GracefulShutdownTimeout</
name>
<
description>Sunucunun nazikçe kapatılmasının ardından ana süreç çıkana kadar
geçecek süre için bir zaman aşımı belirler.</
description>
<
syntax>GracefulShutDownTimeout <
var>saniye</
var></
syntax>
<
default>GracefulShutDownTimeout 0</
default>
<
contextlist><
context>server config</
context></
contextlist>
<
modulelist><
module>prefork</
module><
module>worker</
module>
<
module>event</
module></
modulelist>
<
compatibility>Sürüm 2.2 ve sonrasında mevcuttur</
compatibility>
<
p><
directive>GracefulShutdownTimeout</
directive> yönergesi, sunucuya
"nazikçe dur" sinyali gönderildikten sonra mevcut bağlantılara hizmet
sunmaya daha kaç saniye devam edebileceğini belirtir.</
p>
<
p>Bu değerin <
code>0</
code> olarak belirtilmesi, sunucunun bekleyen bütün
isteklere hizmet sunumu tamamlanıncaya kadar (gerekirse sonsuza kadar)
bekleyebileceği anlamına gelir.</
p>
<
description>İsteklere yanıt verecek sunucunun ait olacağı grubu belirler.</
description>
<
syntax>Group <
var>unix-grubu</
var></
syntax>
<
default>Group #-1</
default>
<
contextlist><
context>server config</
context></
contextlist>
<
modulelist><
module>beos</
module><
module>leader</
module>
<
module>mpmt_os2</
module><
module>perchild</
module><
module>prefork</
module>
<
module>threadpool</
module><
module>worker</
module></
modulelist>
<
compatibility>Apache 2.0’dan itibaren sadece sunucu geneli için geçerlidir.</
compatibility>
<
p><
directive>Group</
directive> yönergesi, sunucunun hangi grup altında
isteklere yanıt vereceğini belirler. Bu yönergenin uygulanabilmesi için
sunucunun <
code>root</
code> olarak çalıştırılmış olması gerekir.
Sunucuyu <
code>root</
code> dışında bir kullanıcı başlattığı takdirde,
sunucu belirtilen gruba geçemez ve kullanıcının kendi grubunda
çalışmaya devam eder. <
var>unix-grubu</
var> şunlardan biri olabilir:</
p>
<
dd>Gruba ismiyle başvurulur.</
dd>
<
dt><
code>#</
code> ardından grup numarası</
dt>
<
dd>Gruba numarası ile başvurulur.</
dd>
<
example><
title>Örnek</
title>
<
p>Çalışan sunucu için özellikle yeni bir grup atamanız önerilir. Bazı
sistem yöneticileri <
code>nobody</
code> grubunu kullanırlar fakat
bu her zaman mümkün olmadığı gibi arzulanan da değildir.</
p>
<
note type="warning"><
title>Güvenlik</
title>
<
p>Ne yaptığınızı ve ne tehlikelere yol açacağınızı bilmiyorsanız
<
directive>Group</
directive> (veya <
directive module="mpm_common">User</
directive>) yönergesine değer olarak
<
code>root</
code> atamayınız.</
p>
<
p>Özel bilgi: Bu yönergenin <
directive module="core" type="section">VirtualHost</
directive> taşıyıcısı içinde kullanımı
artık desteklenmemektedir. Sunucunuzu <
program>suexec</
program> için
yapılandırırken <
directive module="mod_suexec">SuexecUserGroup</
directive> yönergesini
<
note><
title>Ek Bilgi</
title>
<
p><
directive>Group</
directive> yönergesi <
module>beos</
module> ve
<
module>mpmt_os2</
module> MPM’lerinde mevcut olsa da, aslında
işlevsiz olup sadece uyumluluk adına mevcuttur.</
p>
<
description>Ana sürecin süreç kimliğinin (PID) kaydedileceği dosyayı belirler.</
description>
<
syntax>PidFile <
var>dosya</
var></
syntax>
<
contextlist><
context>server config</
context></
contextlist>
<
modulelist><
module>beos</
module><
module>leader</
module>
<
module>mpm_winnt</
module><
module>mpmt_os2</
module>
<
module>perchild</
module><
module>prefork</
module>
<
module>threadpool</
module><
module>worker</
module></
modulelist>
<
p><
directive>PidFile</
directive> yönergesi, sunucunun artalan sürecinin
süreç kimliğinin kaydedileceği dosyayı belirler. Dosya ismi mutlak dosya
yoluyla belirtilmemişse dosya yolunun <
directive module="core">ServerRoot</
directive> dizinine göre belirtildiği kabul
<
example><
title>Örnek</
title>
<
p>Sunucuya sinyal gönderebilmek çoğunlukla işe yarar. Böylece <
directive module="core">ErrorLog</
directive> ve <
directive module="mod_log_config">TransferLog</
directive> dosyaları kapatılıp
yeniden açılır ve yapılandırma dosyaları yeniden okunur. Bu,
<
directive>PidFile</
directive> dosyasında belirtilen süreç kimliğine bir
SIGHUP (kill -1) sinyali gönderilerek yapılır.</
p>
<
p>Günlük dosyasının yeri ve <
a uyarılar <
directive>PidFile</
directive> dosyası içinde sözkonusu
<
note><
title>Ek Bilgi</
title>
<
p>Apache 2’de sunucuyu (yeniden) başlatırken veya durdururken sadece
<
program>apachectl</
program> betiğini kullanmanız önerilir.</
p>
<
description>Sunucunun dinleyeceği IP adresini ve portu belirler.</
description>
<
syntax>Listen [<
var>IP-adresi</
var>:]<
var>port-numarası</
var>
[<
var>protokol</
var>]</
syntax>
<
contextlist><
context>server config</
context></
contextlist>
<
modulelist><
module>beos</
module><
module>leader</
module>
<
module>mpm_netware</
module><
module>mpm_winnt</
module>
<
module>mpmt_os2</
module><
module>perchild</
module>
<
module>prefork</
module><
module>threadpool</
module><
module>worker</
module>
<
compatibility>Apache 2.0’dan beri gerekli yönergelerden biridir.<
br/>
<
var>protokol</
var> argümanı 2.1.5 sürümünde eklenmiştir.</
compatibility>
<
p><
directive>Listen</
directive> yönergesi Apache’yi sadece belli IP
adreslerini ve portlarını dinlemeye sevkeder.
<
directive>Listen</
directive> artık belirtilmesi zorunlu yönergelerden
biridir. Yapılandırma dosyasında bulunmadığı takdirde sunucu
başlatılırken başarısız olacaktır. Bu Apache Sunucusunun önceki
sürümünde böyle değildi.</
p>
<
p><
directive>Listen</
directive> yönergesi Apache’ye, sadece belli
portlardan veya IP adresi ve port çiftlerinden gelen istekleri kabul
etmesini söyler. Eğer sadece port numarası belirtilmişse sunucu
belirtilen portu bütün ağ arabirimlerinde dinleyecektir. Eğer portla
birlikte bir IP adresi de belirtilmişse, sunucu belirtilen portu sadece
belirtilen arabirimden dinleyecektir.</
p>
<
p>Çok sayıda IP adresi ve port belirtmek için çok sayıda
<
directive>Listen</
directive> yönergesi kullanılabilir. Sunucu bu
durumda belirtilen bütün IP adreslerinden ve portlardan gelecek
isteklere yanıt verecektir.</
p>
<
p>Örneğin sunucunun hem port 80 hem de port 8000’den istek kabul etmesini
istiyorsanız bunu şöyle belirtebilirsiniz:</
p>
<
p>Sunucunun belirtilen iki ağ arabiriminden ve port numarasından gelen
bağlantıları kabul etmesi için şu yapılandırmayı kullanabilirsiniz:</
p>
Listen 192.170.2.1:80<
br />
<
p>IPv6 adresleri belirtilirken örnekteki gibi köşeli ayraçlar arasına
Listen [2001:db8::a00:20ff:fea7:ccea]:80
<
p>İsteğe bağlı <
var>protocol</
var> argümanı çoğu yapılandırmada gerekli
değildir. Belirtilmediği takdirde. port 443 için <
code>https</
code> ve
tüm diğer portlar için <
code>http</
code> öntanımlıdır. Protokol, isteği
hangi modülün elde edeceğinin ve <
directive module="core">AcceptFilter</
directive> yönergesi ile protokole özgü
hangi en iyilemelerin uygulanacağının saptanmasında kullanılır.</
p>
<
p>Protokol belirtme ihtiyacını sadece standartdışı portlar
çalıştırıyorsanız duyarsınız. Örneğin, port 8443 üzerinde bir
<
code>https</
code> sitesi çalıştırmak istiyorsanız bunu şöyle
Listen 192.170.2.1:8443 https
<
note><
title>Hata durumu</
title>
Aynı IP adresi ve portun çok sayıda <
directive>Listen</
directive>
yönergesinde belirtilmesi bir "adres kullanımda" (<
code>Address already
in use</
code>) hatasına yol açar.
<
seealso><
a href="/dns-caveats.html">DNS ve Apache ile ilgili Konular</
a> </
seealso>
<
seealso><
a href="/bind.html">Sunucunun Kullandığı Adreslerin ve Portların
Ayarlanması</
a></
seealso>
<
name>ListenBackLog</
name>
<
description>Bekleyen bağlantılar kuyruğunun azami uzunluğunu
<
syntax>ListenBacklog <
var>kuyruk-uzunluğu</
var></
syntax>
<
default>ListenBacklog 511</
default>
<
contextlist><
context>server config</
context></
contextlist>
<
modulelist><
module>beos</
module><
module>leader</
module>
<
module>mpm_netware</
module><
module>mpm_winnt</
module>
<
module>mpmt_os2</
module><
module>perchild</
module><
module>prefork</
module>
<
module>threadpool</
module><
module>worker</
module></
modulelist>
<
p>Bekleyen bağlantılar kuyruğunun azami uzunluğu. Genellikle bu ayar ne
gerekir ne de istenir. Ancak bazı sistemlerde TCP SYN yüklenme
saldırılarına karşı bu değerin arttırılması gerekebilir.
<
var>kuyruk-uzunluğu</
var> parametresi için <
code>listen(2)</
code>
işlevinin açıklamasına bakınız.</
p>
<
p>Bu değer çoğunlukla işletim sistemi tarafından daha küçük bir sayıyla
sınırlanır. Bu, işletim sistemine bağlı olarak değişiklik gösterir.
Ayrıca, çoğu işletim sisteminin <
var>kuyruk-uzunluğu</
var> parametresi
ile ne belirttiğinize bakmaksızın kendisi için atanmış değeri (fakat
normal olarak daha büyüğünü) kullanacağına dikkat ediniz.</
p>
<
description>Apache HTTPd Sunucusunun ağ soketlerinden istekleri kabul eden
çok sayıda çocuk süreci sıraya sokarken kullandığı kilit dosyasının yerini
belirler. <
em>(kullanımı önerilmemektedir)</
em></
description>
<
syntax>LockFile <
var>dosya</
var></
syntax>
<
contextlist><
context>server config</
context></
contextlist>
<
modulelist><
module>leader</
module><
module>perchild</
module>
<
module>prefork</
module><
module>threadpool</
module><
module>worker</
module>
<
p><
directive>LockFile</
directive> yönergesi, <
directive module="mpm_common">AcceptMutex</
directive> yönergesi <
code>fcntl</
code>
veya <
code>flock</
code> değeri ile belirtildiği takdirde kullanılan
kilit dosyasının yerini belirler. Bu yönerge normalde öntanımlı
değeriyle bırakılır. Değişmesini gerektiren ana sebep, <
code>logs</
code>
dizininin ağ dosya sisteminde (NFS) yeralması halinde <
strong>kilit
dosyasının bir yerel diskte saklanması gereği</
strong>dir. Ana sürecin
süreç kimliği dosyaya kendiliğinden eklenir.</
p>
<
note type="warning"><
title>Güvenlik</
title>
<
p>Bu dosyayı herkesin yazabildiği <
code>/
var/
tmp</
code> gibi bir dizine
koymaktan kaçınmak gerekir. Çünkü, bu takdirde, birileri sunucunun
hizmet sunmaya başlarken oluşturacağı kilit dosyası ile aynı isimde
bir dosya oluşturarak hizmet reddi saldırısı (DoS) başlatabilir.</
p>
<
note type="warning"><
title>Kullanımı önerilmiyor</
title>
<
p>Bu yönergenin kullanılması önerilmemektedir. Kilit dosyasının yerini
<
directive module="mpm_common">AcceptMutex</
directive> yönergesinde
muteks kilitleme gerçeklenimiyle birlikte belirtmeniz
<
seealso><
directive module="mpm_common">AcceptMutex</
directive></
seealso>
<
description>Aynı anda işleme sokulacak azami bağlantı sayısı</
description>
<
syntax>MaxClients <
var>sayı</
var></
syntax>
<
default>Ayrıntılar için aşağıdaki açıklamaya bakınız.</
default>
<
contextlist><
context>server config</
context></
contextlist>
<
modulelist><
module>beos</
module><
module>leader</
module>
<
module>prefork</
module><
module>threadpool</
module><
module>worker</
module>
<
p><
directive>MaxClients</
directive> yönergesi aynı anda işleme sokulacak
bağlantı sayısını sınırlamak için kullanılır. <
directive >MaxClients</
directive> bağlantı isteğinden fazlası geldiği takdirde bu
istekler normal olarak kuyruğa alınıp bekletilir. Kuyrukta bekletilecek
isteklerin azami sayısı ise <
directive module="mpm_common" >ListenBacklog</
directive> yönergesi ile belirlenir. İstek sunmakta olan
çocuk süreçlerden biri serbest kaldığında bekletilen bağlantılardan
birine hizmet sunulmaya başlanır.</
p>
<
p>Evreli olmayan sunucularda (<
module>prefork</
module> gibi)
<
directive>MaxClients</
directive> yönergesi istekleri sunmak için
başlatılacak çocuk süreçlerin azami sayısını belirler. Öntanımlı değer
256 olup bu değeri arttırmak isterseniz <
directive module="mpm_common">ServerLimit</
directive> değerini de
<
p>Çok evreli ve melez sunucularda (<
module>beos</
module> veya
<
module>worker</
module> gibi) <
directive>MaxClients</
directive>
yönergesi istemcilere hizmet verecek evre sayısını sınırlar. Öntanımlı
değer <
module>beos</
module> için <
code>50</
code> iken melez MPM’ler için
<
directive module="mpm_common">ServerLimit</
directive> ile <
directive module="mpm_common">ThreadsPerChild</
directive> çarpımıdır (<
code>16 x
25</
code>). Bu bakımdan <
directive>MaxClients</
directive> değerini 16
süreçten fazlasına ayarlamak için <
directive module="mpm_common">ServerLimit</
directive> değerini de
<
description><
code>free()</
code> çağrılmaksızın ana bellek ayırıcının
ayırmasına izin verilen azami bellek miktarını belirler.</
description>
<
syntax>MaxMemFree <
var>kB-sayısı</
var></
syntax>
<
default>MaxMemFree 0</
default>
<
contextlist><
context>server config</
context></
contextlist>
<
modulelist><
module>beos</
module><
module>leader</
module>
<
module>mpm_netware</
module><
module>prefork</
module>
<
module>threadpool</
module><
module>worker</
module><
module>mpm_winnt</
module></
modulelist>
<
p><
directive>MaxMemFree</
directive> yönergesi, <
code>free()</
code>
çağrılmaksızın ana bellek ayırıcının ayırmasına izin verilen azami
bellek miktarını kB cinsinden belirler. Bir değerle belirtilmediğinde
veya <
code>0</
code> değeriyle belirtildiğinde eşik sınırsız
<
name>MaxRequestsPerChild</
name>
<
description>Tek bir çocuk sürecin ömrü boyunca işleme sokabileceği istek
sayısını sınırlamakta kullanılır.</
description>
<
syntax>MaxRequestsPerChild <
var>sayı</
var></
syntax>
<
default>MaxRequestsPerChild 10000</
default>
<
contextlist><
context>server config</
context></
contextlist>
<
modulelist><
module>leader</
module><
module>mpm_netware</
module>
<
module>mpm_winnt</
module><
module>mpmt_os2</
module>
<
module>perchild</
module><
module>prefork</
module>
<
module>threadpool</
module><
module>worker</
module></
modulelist>
<
p><
directive>MaxRequestsPerChild</
directive> yönergesi, tek bir çocuk
sürecin işleme sokabileceği istek sayısını sınırlamakta kullanılır.
<
directive>MaxRequestsPerChild</
directive> istekten sonra çocuk süreç
ölür. Eğer <
directive>MaxRequestsPerChild</
directive> için
<
code>0</
code> belirtilmişse sürecin ömrü sonsuz olacaktır.</
p>
<
note><
title>Sıfırdan farklı öntanımlı değerler</
title>
<
p><
module>mpm_netware</
module> ve <
module>mpm_winnt</
module> için
öntanımlı değer <
code>0</
code>’dır.</
p>
<
p><
directive>MaxRequestsPerChild</
directive> için sıfırdan farklı bir
değer belirtilmesi sürecin kullanacağı bellek miktarını sınırlamak suretiyle olası bellek sızıntılarını engeller.</
p>
<
note><
title>Ek Bilgi</
title>
<
p><
directive module="core">KeepAlive</
directive> isteklerinde sadece
ilk istek bu sınıra uygun sayılır. Etkisi ise, davranışın çocuk süreç
başına <
em>bağlantı</
em> sayısının sınırlanması şeklinde
<
name>MaxSpareThreads</
name>
<
description>Boştaki azami evre sayısını belirler</
description>
<
syntax>MaxSpareThreads <
var>number</
var></
syntax>
<
default>Ayrıntılar için aşağıdaki açıklamaya bakınız.</
default>
<
contextlist><
context>server config</
context></
contextlist>
<
modulelist><
module>beos</
module><
module>leader</
module>
<
module>mpm_netware</
module><
module>mpmt_os2</
module>
<
module>perchild</
module><
module>threadpool</
module><
module>worker</
module>
<
p>Boştaki azami evre sayısı. Her MPM bu yönerge karşısında farklı
<
p><
module>perchild</
module> için <
code>MaxSpareThreads 10</
code>
öntanımlıdır. Bu MPM, boştaki evrelerin sayısını çocuk süreç başına
boştaki evre sayısı olarak izler. Bir çocukta çok fazla boşta evre
varsa sunucu sadece o çocuğun boştaki evrelerini öldürür.</
p>
<
p><
module>worker</
module>, <
module>leader</
module> ve
<
module>threadpool</
module> için <
code>MaxSpareThreads 250</
code>
öntanımlıdır. Bu MPM’ler boştaki evreleri sunucu genelinde izler. Eğer
sunucuda çok fazla boşta evre varsa, sunucu boştaki evrelerin sayısı bu
sınırın altına inene kadar çocuk süreçleri öldürür.</
p>
<
p><
module>mpm_netware</
module> için <
code>MaxSpareThreads 100</
code>
öntanımlıdır. Bu MPM tek bir süreç olarak çalıştığından boştaki evre
sayısı aynı zamanda sunucu genelinde boştaki evre sayısıdır.</
p>
<
p><
module>beos</
module> ve <
module>mpmt_os2</
module> MPM’leri
<
module>mpm_netware</
module> gibidir. <
module>beos</
module> için
<
code>MaxSpareThreads 50</
code> öntanımlıyken <
module>mpmt_os2</
module>
için öntanımlı değer <
code>10</
code>’dur.</
p>
<
note><
title>Kısıtlamalar</
title>
<
p><
directive>MaxSpareThreads</
directive> için değer aralığı sınırlıdır.
Apache belirtilen değeri aşağıdaki kurallara uygun olarak
kendiliğinden düzeltecektir:</
p>
<
li><
module>perchild</
module> için
<
directive>MaxSpareThreads</
directive> değerinin <
directive module="mpm_common">ThreadLimit</
directive> değerinden küçük veya
eşit olması gerekir.</
li>
<
li><
module>mpm_netware</
module> modülü, değerin <
directive module="mpm_common">MinSpareThreads</
directive> değerinden küçük
olmasını gerektirir.</
li>
<
li><
module>leader</
module>, <
module>threadpool</
module> ve
<
module>worker</
module> için değer, <
directive module="mpm_common">MinSpareThreads</
directive>
ve <
directive module="mpm_common">ThreadsPerChild</
directive>
toplamına eşit veya büyük olmak zorundadır.</
li>
<
seealso><
directive module="mpm_common">MinSpareThreads</
directive></
seealso>
<
seealso><
directive module="mpm_common">StartServers</
directive></
seealso>
<
name>MinSpareThreads</
name>
<
description>İsteklerin ani artışında devreye girecek boştaki evrelerin asgari
sayısını belirler.</
description>
<
syntax>MinSpareThreads <
var>sayı</
var></
syntax>
<
default>Ayrıntılar için aşağıdaki açıklamaya bakınız.</
default>
<
contextlist><
context>server config</
context></
contextlist>
<
modulelist><
module>beos</
module><
module>leader</
module>
<
module>mpm_netware</
module><
module>mpmt_os2</
module>
<
module>perchild</
module><
module>threadpool</
module><
module>worker</
module>
<
p>İsteklerin ani artışında devreye girecek boştaki evrelerin asgari
sayısı. Her MPM bu yönerge karşısında farklı davranır.</
p>
<
p><
module>perchild</
module> için <
code>MinSpareThreads 5</
code>
öntanımlıdır ve çocuk süreç başına boştaki evre sayısını izler. Bir
çocuk için yeterince boşta evre yoksa sunucu bu çocuk için yeni evreler
oluşturmaya başlar. Nitekim, <
directive module="perchild">NumServers</
directive> için <
code>10</
code> ve
<
directive>MinSpareThreads</
directive> için <
code>5</
code> atarsanız
sisteminizdeki boştaki evre sayısı en az 50 olur.</
p>
<
p><
module>worker</
module>, <
module>leader</
module> ve
<
module>threadpool</
module> modülleri için <
code>MinSpareThreads
75</
code> öntanımlıdır ve bu modüller boştaki evreleri sunucu genelinde
izler. Eğer sunucuda boştaki evre sayısı yetersizse, sunucu boştaki
evrelerin sayısı bu sınırın üstüne çıkana kadar çocuk süreç
<
p><
module>mpm_netware</
module> için <
code>MinSpareThreads 10</
code>
öntanımlıdır ve tek süreç kendisi olduğundan izleme sunucu genelinde
<
p><
module>beos</
module> ve <
module>mpmt_os2</
module> modülleri
<
module>mpm_netware</
module> gibidir. <
module>beos</
module> için
<
code>MinSpareThreads 1</
code> öntanımlı iken <
module>mpmt_os2</
module>
için öntanımlı değer <
code>5</
code>’tir.</
p>
<
seealso><
directive module="mpm_common">MaxSpareThreads</
directive></
seealso>
<
seealso><
directive module="mpm_common">StartServers</
directive></
seealso>
<
name>ScoreBoardFile</
name>
<
description>Çocuk süreçler için eşgüdüm verisini saklamakta kullanılan
dosyanın yerini belirler.</
description>
<
syntax>ScoreBoardFile <
var>dosya-yolu</
var></
syntax>
<
contextlist><
context>server config</
context></
contextlist>
<
modulelist><
module>beos</
module><
module>leader</
module>
<
module>mpm_winnt</
module><
module>perchild</
module><
module>prefork</
module>
<
module>threadpool</
module><
module>worker</
module></
modulelist>
<
p>Apache ana ve çocuk süreçler arasında iletişim için bir çetele tutar.
Bazı mimariler bu iletişimi kolaylaştırmak için bir dosya gerektirir.
Eğer yönerge belirtilmezse Apache çeteleyi önce tamamen bellekte
oluşturmayı dener (anonim paylaşımlı bellek kullanarak); bunda başarılı
olamazsa dosyayı diskte oluşturmaya çalışacaktır (paylaşımlı belleğe
eşlemli dosya kullanarak). Bu yönergenin belirtilmesi Apache sunucusunun
dosyayı daima diskte oluşturmasına sebep olur.</
p>
<
example><
title>Örnek</
title>
<
p>Paylaşımlı belleğe eşlemli dosya, çeteleye doğrudan erişmesi gereken
üçüncü parti uygulamalar için yararlıdır.</
p>
<
p>Eğer <
directive>ScoreBoardFile</
directive> yönergesi ile bir dosya
belirtecekseniz, dosyayı bir RAM diske yerleştirerek hız artışı
sağlayabilirsiniz. Fakat, günlük dosyası yerleştirme ve <
a benzer uyarılara karşı dikkatli olunuz.</
p>
<
seealso><
a href="/stopping.html">Sunucuyu Durdurma ve Yeniden Başlatma</
a> </
seealso>
<
name>ReceiveBufferSize</
name>
<
description>TCP alım tamponu boyu</
description>
<
syntax>ReceiveBufferSize <
var>bayt-sayısı</
var></
syntax>
<
default>ReceiveBufferSize 0</
default>
<
contextlist><
context>server config</
context></
contextlist>
<
modulelist><
module>beos</
module><
module>leader</
module>
<
module>mpm_netware</
module><
module>mpm_winnt</
module>
<
module>mpmt_os2</
module><
module>perchild</
module><
module>prefork</
module>
<
module>threadpool</
module><
module>worker</
module></
modulelist>
<
p>Sunucu TCP alım tamponu boyunu <
var>bayt-sayısı</
var> ile belirtilen
bayta ayarlayacaktır.</
p>
<
p><
code>0</
code> değeri atarsanız sunucu işletim sistemi öntanımlısını
<
name>SendBufferSize</
name>
<
description>TCP tamponu boyu</
description>
<
syntax>SendBufferSize <
var>bayt-sayısı</
var></
syntax>
<
default>SendBufferSize 0</
default>
<
contextlist><
context>server config</
context></
contextlist>
<
modulelist><
module>beos</
module><
module>leader</
module>
<
module>mpm_netware</
module><
module>mpm_winnt</
module>
<
module>mpmt_os2</
module><
module>perchild</
module><
module>prefork</
module>
<
module>threadpool</
module><
module>worker</
module></
modulelist>
<
p>Sunucu TCP gönderim tamponu boyunu <
var>bayt-sayısı</
var> ile
belirtilen bayta ayarlayacaktır. Yüksek hızlı yüksek yataklık süresi
için standart işletim sistemi öntanımlılarını arttırmak çok yararlıdır
(örneğin, kıtalar arası hızlı borularda olduğu gibi 100 ms
<
p><
code>0</
code> değeri atarsanız sunucu işletim sistemi öntanımlısını
<
description>Ayarlanabilir süreç sayısının üst sınırını belirler.</
description>
<
syntax>ServerLimit <
var>sayı</
var></
syntax>
<
default>Ayrıntılar için aşağıdaki açıklamaya bakınız.</
default>
<
contextlist><
context>server config</
context></
contextlist>
<
modulelist><
module>leader</
module><
module>perchild</
module>
<
module>prefork</
module><
module>threadpool</
module><
module>worker</
module>
<
p><
module>prefork</
module> modülü söz konusu olduğunda bu yönerge, Apache
sürecinin ömrü boyunca <
directive module="mpm_common">MaxClients</
directive> yönergesine atanabilecek
azami değeri belirler. <
module>worker</
module> modülü sözkonusu
olduğunda ise, Apache sürecinin ömrü boyunca <
directive module="mpm_common">MaxClients</
directive> yönergesine atanabilecek
azami değeri <
directive module="mpm_common">ThreadLimit</
directive> ile
birlikte belirler. Bu yönergeyi bir yeniden başlatma sırasında
değiştirirseniz bu değişiklik yok sayılır fakat <
directive module="mpm_common">MaxClients</
directive> değişiklikleri dikkate
<
p>Bu yönergenin kullanılması özel bir dikkat gerektirir. Eğer
<
directive>ServerLimit</
directive> gereğinden yüksek bir değere
ayarlanırsa, gereksiz yere paylaşımlı bellek ayrılmış olur. Eğer
<
directive>ServerLimit</
directive> ve <
directive module="mpm_common">MaxClients</
directive> değerleri sistemin
işleyebileceğinden daha yüksek değerlere ayarlanırsa Apache
başlayamayacağı gibi sistemi kararsız hale de getirebilir.</
p>
<
p>Bu yönergeyi <
module>prefork</
module> modülü ile sadece <
directive module="mpm_common">MaxClients</
directive> yönergesine 256’dan
(öntanımlı) daha büyük bir değer atayacaksanız kullanınız. Bu yönergeye
<
directive module="mpm_common">MaxClients</
directive> için atamak
istediğiniz değerden fazlasını atamayınız.</
p>
<
p><
module>worker</
module>, <
module>leader</
module> ve
<
module>threadpool</
module> modülleri söz konusu olduğunda bu yönergeyi
<
directive module="mpm_common">MaxClients</
directive> ve
<
directive module="mpm_common">ThreadsPerChild</
directive> ayarları 16
sunucu sürecinden (16 öntanımlıdır) fazlasını gerektiriyorsa
ayarlayınız. Bu yönergeye <
directive module="mpm_common">MaxClients
</
directive> ve <
directive module="mpm_common">ThreadsPerChild</
directive> için gerekli gördüğünüz
sunucu süreci sayısından fazlasını atamayınız.</
p>
<
p><
module>perchild</
module> modülüyle bu yönergeyi eğer <
directive module="perchild">NumServers</
directive> yönergesine 8’den (öntanımlı)
büyük bir değer atayacaksanız kullanınız.</
p>
<
note><
title>Ek Bilgi</
title>
<
p>Sunucu içinde derlenmiş olarak <
code>ServerLimit 20000</
code>
şeklinde bir zorlayıcı sınır vardır (<
module>prefork</
module> için
200000’dir). Bu önlem, yazım hatalarının istenmeyen sonuçlara yol
açmasını engellemek için düşünülmüştür.</
p>
<
seealso><
a href="/stopping.html">Sunucuyu Durdurma ve Yeniden Başlatma</
a> </
seealso>
<
name>StartServers</
name>
<
description>Sunucunun başlatılması sırasında oluşturulan çocuk süreçlerin
sayısını belirler.</
description>
<
syntax>StartServers <
var>sayı</
var></
syntax>
<
default>Ayrıntılar için aşağıdaki açıklamaya bakınız.</
default>
<
contextlist><
context>server config</
context></
contextlist>
<
modulelist><
module>leader</
module><
module>mpmt_os2</
module>
<
module>prefork</
module><
module>threadpool</
module><
module>worker</
module>
<
p><
directive>StartServers</
directive> yönergesi, sunucunun başlatılması
sırasında oluşturulan çocuk süreçlerin sayısını belirler. Süreç sayısı
normal olarak yüke bağlı olarak değişse de bu değerin ayarlanmasını
gerektirecek küçük bir sebep vardır.</
p>
<
p>Öntanımlı değer MPM’den MPM’e fark eder. Öntanımlı değer
<
module>leader</
module>, <
module>threadpool</
module> ve
<
module>worker</
module> için <
code>3</
code> iken
<
module>prefork</
module> için <
code>5</
code> ve
<
module>mpmt_os2</
module> için <
code>2</
code>’dir.</
p>
<
name>StartThreads</
name>
<
description>Sunucunun başlatılması sırasında oluşturulan evrelerin sayısını
<
syntax>StartThreads <
var>sayı</
var></
syntax>
<
default>Ayrıntılar için aşağıdaki açıklamaya bakınız.</
default>
<
contextlist><
context>server config</
context></
contextlist>
<
modulelist><
module>beos</
module><
module>mpm_netware</
module>
<
module>perchild</
module></
modulelist>
<
p><
directive>StartThreads</
directive> yönergesi, sunucunun başlatılması
sırasında oluşturulan evrelerin sayısını belirler. Evre sayısı normal
olarak yüke bağlı olarak değişse de bu değerin ayarlanmasını
gerektirecek küçük bir sebep vardır.</
p>
<
p><
module>perchild</
module> için <
code>StartThreads 5</
code> öntanımlı
olup bu yönerge sunucunun başlatılması sırasında oluşturulan süreç
başına evre sayısıyla bağlantısını sürdürür.</
p>
<
p><
module>mpm_netware</
module> için <
code>StartThreads 50</
code>
öntanımlı olup, sadece tek bir süreç olduğundan, sunucunun başlatılması
sırasında oluşturulan evrelerin toplam sayısı <
code>50</
code>’dir.</
p>
<
p><
module>beos</
module> için <
code>StartThreads 10</
code> öntanımlı olup
sunucunun başlatılması sırasında oluşturulan evrelerin toplam sayısı
<
description>Çocuk süreç başına ayarlanabilir evre sayısının üst sınırını
<
syntax>ThreadLimit <
var>sayı</
var></
syntax>
<
default>Ayrıntılar için aşağıdaki açıklamaya bakınız.</
default>
<
contextlist><
context>server config</
context></
contextlist>
<
modulelist><
module>leader</
module><
module>mpm_winnt</
module>
<
module>perchild</
module><
module>threadpool</
module><
module>worker</
module>
<
compatibility><
module>mpm_winnt</
module> için Apache 2.0.41 ve sonrasında mevcuttur.</
compatibility>
<
p>Bu yönerge, Apache sürecinin ömrü boyunca <
directive module="mpm_common">ThreadsPerChild</
directive> yönergesine
atanabilecek azami değeri belirler. Bu yönergeyi bir yeniden başlatma
sırasında değiştirirseniz bu değişiklik yok sayılır fakat <
directive module="mpm_common">ThreadsPerChild</
directive> değişiklikleri dikkate
<
p>Bu yönergenin kullanılması özel bir dikkat gerektirir. Eğer
<
directive>ThreadLimit</
directive> değeri <
directive module="mpm_common">ThreadsPerChild</
directive> değerinden yüksek bir
değere ayarlanırsa, gereksiz yere paylaşımlı bellek ayrılmış olur. Eğer
<
directive>ThreadLimit</
directive> ve <
directive module="mpm_common">ThreadsPerChild</
directive> değerleri sistemin
işleyebileceğinden daha yüksek değerlere ayarlanırsa Apache
başlayamayacağı gibi sistemi kararsız hale de getirebilir. Bu yönergeye
Apache sunucusunun çalışması için öngörülmüş en büyük değerden daha
yükseğini atamayınız.</
p>
<
p><
directive>ThreadLimit</
directive> yönergesinin öntanımlı değeri
<
module>mpm_winnt</
module> için <
code>1920</
code>, diğerleri için
<
note><
title>Ek Bilgi</
title>
<
p>Sunucu içinde derlenmiş olarak <
code>ThreadLimit 20000</
code>
şeklinde bir zorlayıcı sınır vardır (<
module>mpm_winnt</
module> için
15000’dir). Bu önlem, yazım hatalarının istenmeyen sonuçlara yol
açmasını engellemek için düşünülmüştür.</
p>
<
name>ThreadsPerChild</
name>
<
description>Her çocuk süreç tarafından oluşturulan evrelerin sayısını
<
syntax>ThreadsPerChild <
var>sayı</
var></
syntax>
<
default>Ayrıntılar için aşağıdaki açıklamaya bakınız.</
default>
<
contextlist><
context>server config</
context></
contextlist>
<
modulelist><
module>leader</
module><
module>mpm_winnt</
module>
<
module>threadpool</
module><
module>worker</
module></
modulelist>
<
p>Bu yönerge, her çocuk süreç tarafından oluşturulan evrelerin sayısını
belirler. Çocuk süreçler bu evreleri başlatıldıklarında oluştururlar ve
bundan daha fazlasını asla oluşturmazlar. <
module>mpm_winnt</
module>
gibi sadece bir çocuk sürecin bulunduğu bir MPM kullanıyorsanız, bu
sayı sunucunun tüm yükünü kaldırabilecek kadar büyük olmalıdır.
<
module>worker</
module> gibi çok çocuk süreçli bir MPM kullanıyorsanız,
<
em>toplam</
em> evre sayısı sunucunun tüm yükünü kaldırabilecek kadar
<
p><
directive>ThreadsPerChild</
directive> için öntanımlı değer
<
module>mpm_winnt</
module> kullanıldığında <
code>64</
code> diğerleri
için <
code>25</
code>’tir.</
p>
<
name>ThreadStackSize</
name>
<
description>İstemci bağlantılarını elde eden evreler tarafından kullanılan
yığıtın bayt cinsinden uzunluğunu belirler.</
description>
<
syntax>ThreadStackSize <
var>boyut</
var></
syntax>
<
default>NetWare üzerinde 65536; diğer işletim sistemlerinde
<
contextlist><
context>server config</
context></
contextlist>
<
modulelist><
module>leader</
module><
module>mpm_netware</
module>
<
module>mpm_winnt</
module><
module>perchild</
module>
<
module>threadpool</
module><
module>worker</
module>
<
compatibility>Apache 2.1 ve sonrasında mevcuttur.</
compatibility>
<
p><
directive>ThreadStackSize</
directive> yönergesi, istemci
bağlantılarını elde eden evreler ve bu bağlantıları işlemekte yardımcı
olan modül çağrıları tarafından kullanılan yığıtın bayt cinsinden
uzunluğunu belirler. Çoğu durumda işletim sistemi yığıtı uygun bir
boyuta ayarlar, fakat yine de ayarlanmasını gerektirecek bazı durumlar
<
li>HP-UX gibi görece küçük yığıt boyuna sahip platformlarda, Apache,
görece büyük yığıt alanı kullanan bazı üçüncü parti modüller yüzünden
çökebilir. Bu modüller öntanımlı yığıt boyu daha büyük olan diğer
platformlarda sorunsuz çalışabilir. Bu tür çökmeler
<
directive>ThreadStackSize</
directive> yönergesine daha büyük yığıt
boyu atanarak çözümlenir. Böyle bir ayarlamayı sadece üçüncü parti
modülün üreticisi bunun gerekliliğini belirtmişse veya Apache’nin
evre yığıt boyutunun küçüklüğünden dolayı çöktüğü teşhis edildiği
<
li>Öntanımlı yığıt boyu Apache sunucusu için gerekenden belirgin
şekilde büyük bazı platformalarda, eğer
<
directive>ThreadStackSize</
directive> yönergesi ile bu boyuttan daha
düşük bir değer atanmışsa çocuk süreç başına evre sayısının yüksek
olduğu durumlarda bu yığıt yetmeyebilir. Böyle bir ayarlama sadece
sunucunun öldüresiye denendiği dolayısıyla yığıt boyutlarının aşırı
zorlandığı deneme ortamlarında yapılmalıdır. Sunucu yapılandırmasında
yapılan bir değişiklik mevcut <
directive>ThreadStackSize</
directive>
ayarını geçersiz hale getirebilir.</
li>
<
description>İsteklere yanıt verecek sunucunun ait olacağı kullanıcıyı
<
syntax>User <
var>unix-kullanıcısı</
var></
syntax>
<
default>User #-1</
default>
<
contextlist><
context>server config</
context></
contextlist>
<
modulelist><
module>leader</
module><
module>perchild</
module>
<
module>prefork</
module><
module>threadpool</
module><
module>worker</
module>
<
compatibility>Apache 2.0’dan itibaren sadece sunucu geneli için
geçerlidir.</
compatibility>
<
p><
directive>User</
directive> yönergesi, sunucunun hangi kullanıcı olarak
isteklere yanıt vereceğini belirler. Bu yönergenin uygulanabilmesi için
sunucunun <
code>root</
code> olarak çalıştırılmış olması gerekir.
Sunucuyu <
code>root</
code> dışında bir kullanıcı başlattığı takdirde,
sunucu belirtilen kullanıcıya geçemez ve mevcut kullanıcıyla çalışmaya
devam eder. Eğer sunucuyu <
code>root</
code> olarak başlatmışsanız ana
süreç root olarak çalışmaya devam edecektir. <
var>unix-kullanıcısı</
var>
şunlardan biri olabilir:</
p>
<
dt>Bir kullanıcı adı</
dt>
<
dd>Gruba ismiyle başvurulur.</
dd>
<
dt><
code>#</
code> ardından kullanıcı numarası</
dt>
<
dd>Kullanıcıya numarası ile başvurulur.</
dd>
<
p>Bu yönergede belirtilecek kullanıcının, başkaları tarafından üzerinde
değişiklik yapılabilecek dosyalardan başkasına erişemeyen bir kullanıcı
olmaması gerektiği gibi, HTTP isteklerini işlemek dışında işlemler de
yapabilen bir kullanıcı olmamalıdır.
Çalışan sunucu için özellikle yeni bir grup atamanız önerilir. Bazı
sistem yöneticileri <
code>nobody</
code> kullanıcısını kullanırlar fakat
<
code>nobody</
code> kullanıcısı sistemde başka amaçlarla
kullanılabildiğinden bu her zaman mümkün olmadığı gibi arzulanan da
<
note type="warning"><
title>Güvenlik</
title>
<
p>Ne yaptığınızı ve ne tehlikelere yol açacağınızı bilmiyorsanız
<
directive>User</
directive> (veya <
directive module="mpm_common">Group</
directive>) yönergesine değer olarak
<
code>root</
code> atamayınız.</
p>
<
p>Sanal konakları farklı kullanıcı kimliklerle çalıştırmak üzere
tasarlanan <
module>perchild</
module> modülü kullanıldığında <
directive type="section" module="core">VirtualHost</
directive> bölümlerinde
<
directive module="perchild">AssignUserID</
directive> yönergesi ile
farklı bir kullanıcı kimlik tanımlanmadığı takdirde
<
directive>User</
directive> yönergesi ile ana sunucu için tanımlanan
kullanıcı kimlik sanal konak için de geçerli olur.</
p>
<
p>Özel bilgi: Bu yönergenin <
directive module="core" type="section">VirtualHost</
directive> taşıyıcısı içinde kullanımı
artık desteklenmemektedir. Sunucunuzu <
program>suexec</
program> için
yapılandırırken <
directive module="mod_suexec">SuexecUserGroup</
directive> yönergesini
<
note><
title>Ek Bilgi</
title>
<
p><
directive>User</
directive>yönergesi <
module>beos</
module> ve
<
module>mpmt_os2</
module> MPM’lerinde mevcut olsa da, aslında
işlevsiz olup sadece uyumluluk adına mevcuttur.</
p>
<
description>Sunucunun başlatıldıktan sonra chroot(8) yapacağı dizini
<
syntax>ChrootDir <
var>/
dizin/
yolu</
var></
syntax>
<
contextlist><
context>server config</
context></
contextlist>
<
modulelist><
module>event</
module>
<
module>prefork</
module><
module>worker</
module></
modulelist>
<
p>Bu yönerge httpd 2.2.9(?) ve sonrasında mevcuttur ve sunucuya
başlatıldıktan sonra ağdan gelen istekleri kabul etmeden önce
belirtilen dizine <
var>chroot(8)</
var> yapmasını söyler.</
p>
<
p>Sunucuyu chroot altında çalıştırmanın basit bir işlem olmadığına ve
özellikle CGI veya PHP gibi betikler çalıştırıyorsanız ek ayarlamalar
yapmanız gerektiğine dikkat ediniz. Lütfen, bu özelliği kullanmaya
çalışmadan önce chroot işlemleri hakkında gerektiği kadar bilgi sahibi
olduğunuzdan emin olunuz.</
p>