blob: 1fb34c69cf1d4587e1f771d3e53cf6f01a25841e [file] [log] [blame]
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
<!-- English Revision: 692459:696758 (outdated) -->
<!-- =====================================================
Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
Reviewed by: Orhan Berent <berent belgeler.org>
========================================================== -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<modulesynopsis metafile="mpm_common.xml.meta">
<name>mpm_common</name>
<description>Birden fazla Çok Süreçlilik Modülü (MPM) tarafından gerçeklenmiş
yönergeler bütünü.</description>
<status>MPM</status>
<directivesynopsis>
<name>AcceptMutex</name>
<description>Apache HTTPd Sunucusunun ağ soketlerinden istekleri kabul eden
çok sayıda çocuk süreci sıraya sokmak için kullandığı yöntemi
belirler.</description>
<syntax>AcceptMutex Default|<var>yöntem</var></syntax>
<default>AcceptMutex Default</default>
<contextlist><context>server config</context></contextlist>
<modulelist>
<module>prefork</module><module>worker</module>
</modulelist>
<usage>
<p><directive>AcceptMutex</directive> yönergesi Apache HTTPd Sunucusunun
ağ soketlerinden istekleri kabul eden çok sayıda çocuk süreci sıraya
sokmak için kullandığı yöntemi
belirler. Apache 2.0’dan önce, yöntem sadece derleme sırasında
seçilebiliyordu. Kullanılacak en uygun yöntem mimariye ve platforma aşırı
derecede bağımlıdır. Bu konuda daha ayrıntılı bilgi edinmek için <a
href="../misc/perf-tuning.html">Başarım Arttırma İpuçları</a> belgesine
bakabilirsiniz.</p>
<p>Bu yönergeye değer olarak <code>Default</code> belirtilmişse derleme
sırasında seçilen öntanımlı yöntem kullanılacaktır. Diğer olası yöntemler
aşağıda listelenmiştir. Tüm yöntemlerin tüm platformlarda mevcut
olmadığına dikkat ediniz. Eğer belirtilen yöntem mevcut değilse hata
günlüğüne mevcut yöntemlerin listesini içeren bir ileti yazılacaktır.</p>
<dl>
<dt><code>flock</code></dt>
<dd><directive module="mpm_common">LockFile</directive> yönergesi ile
belirtilen dosyayı kilitlemek için <code>flock(2)</code> sistem
çağrısı kullanılır.</dd>
<dt><code>fcntl</code></dt>
<dd><directive module="mpm_common">LockFile</directive> yönergesi ile
belirtilen dosyayı kilitlemek için <code>fcntl(2)</code> sistem
çağrısı kullanılır.</dd>
<dt><code>posixsem</code></dt>
<dd>Muteksleri gerçeklemek için POSIX uyumlu semaforlar kullanılır.</dd>
<dt><code>pthread</code></dt>
<dd>POSIX Evreleri (PThreads) belirtimi tarafından gerçeklenen muteksler
kullanılır.</dd>
<dt><code>sysvsem</code></dt>
<dd>Muteksleri gerçeklemek için SysV tarzı semaforlar kullanılır.</dd>
</dl>
<p>Sisteminiz için derleme sırasında seçilmiş öntanımlı yöntemi öğrenmek
isterseniz <directive module="core">LogLevel</directive> yönergesine
<code>debug</code> değerini atayabilirsiniz. Öntanımlı <directive
>AcceptMutex</directive>, <directive module="core">ErrorLog</directive>
ile belirtilen günlük dosyasına yazılacaktır.</p>
<note type="warning"><title>Uyarı</title>
<p>Çoğu sistemde, <code>pthread</code> seçeneği seçildiği takdirde,
<code>AcceptCntl</code> muteksi tutulurken bir çocuk süreç anormal
şekilde sonlanırsa, muteksi kurtarmak için sunucunun elle yeniden
başlatılması gerekecektir.</p>
<p>Solaris, bir muteks tutulurken, bir çocuk süreç anormal şekilde
sonlandıktan sonra muteksin Apache tarafından kurtarılmasına imkan veren
bir mekanizma sağlaması sebebiyle diğerlerinden ayrılır.</p>
<p>Sisteminiz <code>pthread_mutexattr_setrobust_np()</code> işlevini
gerçekliyorsa <code>pthread</code> seçeneğini gönül rahatlığıyla
kullanabilirsiniz.</p>
</note>
</usage>
</directivesynopsis>
<directivesynopsis>
<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>mpm_winnt</module>
<module>prefork</module><module>worker</module></modulelist>
<usage>
<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
etkinleştirecektir.</p>
</note>
</usage>
</directivesynopsis>
<directivesynopsis>
<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>prefork</module>
<module>worker</module></modulelist>
<compatibility>Sürüm 2.0.49 ve sonrasında mevcuttur</compatibility>
<usage>
<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
kılar.</p>
<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
href="http://www.apache.org/~trawick/exception_hook.html"
>EnableExceptionHook site</a>sine bakabilirsiniz.</p>
</usage>
</directivesynopsis>
<directivesynopsis>
<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>
<usage>
<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>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>Group</name>
<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>mpmt_os2</module><module>prefork</module>
<module>worker</module></modulelist>
<compatibility>Apache 2.0’dan itibaren sadece sunucu geneli için geçerlidir.</compatibility>
<usage>
<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>
<dl>
<dt>Bir grup adı</dt>
<dd>Gruba ismiyle başvurulur.</dd>
<dt><code>#</code> ardından grup numarası</dt>
<dd>Gruba numarası ile başvurulur.</dd>
</dl>
<example><title>Örnek</title>
Group www-group
</example>
<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>
</note>
<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
kullanınız.</p>
<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>
</note>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>PidFile</name>
<description>Ana sürecin süreç kimliğinin (PID) kaydedileceği dosyayı belirler.</description>
<syntax>PidFile <var>dosya</var></syntax>
<default>PidFile logs/httpd.pid</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>beos</module>
<module>mpm_winnt</module><module>mpmt_os2</module>
<module>prefork</module><module>worker</module></modulelist>
<usage>
<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
edilir.</p>
<example><title>Örnek</title>
PidFile /var/run/apache.pid
</example>
<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
href="../misc/security_tips.html#serverroot">güvenlik</a> ile ilgili
uyarılar <directive>PidFile</directive> dosyası içinde sözkonusu
olabilir.</p>
<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>
</note>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>Listen</name>
<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>mpm_netware</module><module>mpm_winnt</module>
<module>mpmt_os2</module>
<module>prefork</module><module>worker</module>
<module>event</module>
</modulelist>
<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>
<usage>
<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>
<example>
Listen 80<br />
Listen 8000
</example>
<p>Sunucunun belirtilen iki ağ arabiriminden ve port numarasından gelen
bağlantıları kabul etmesi için şu yapılandırmayı kullanabilirsiniz:</p>
<example>
Listen 192.170.2.1:80<br />
Listen 192.170.2.5:8000
</example>
<p>IPv6 adresleri belirtilirken örnekteki gibi köşeli ayraçlar arasına
alınmalıdır:</p>
<example>
Listen [2001:db8::a00:20ff:fea7:ccea]:80
</example>
<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
belirtebilirsiniz:</p>
<example>
Listen 192.170.2.1:8443 https
</example>
<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.
</note>
</usage>
<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>
</directivesynopsis>
<directivesynopsis>
<name>ListenBackLog</name>
<description>Bekleyen bağlantılar kuyruğunun azami uzunluğunu
belirler</description>
<syntax>ListenBacklog <var>kuyruk-uzunluğu</var></syntax>
<default>ListenBacklog 511</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>beos</module>
<module>mpm_netware</module><module>mpm_winnt</module>
<module>mpmt_os2</module><module>prefork</module>
<module>worker</module></modulelist>
<usage>
<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>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>LockFile</name>
<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.</description>
<syntax>LockFile <var>dosya</var></syntax>
<default>LockFile logs/accept.lock</default>
<contextlist><context>server config</context></contextlist>
<modulelist>
<module>prefork</module><module>worker</module>
</modulelist>
<usage>
<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>
</usage>
<seealso><directive module="mpm_common">AcceptMutex</directive></seealso>
</directivesynopsis>
<directivesynopsis>
<name>MaxClients</name>
<description>Aynı anda sunulacak azami istek 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>prefork</module><module>worker</module>
</modulelist>
<usage>
<p><directive>MaxClients</directive> yönergesi aynı anda sunulacak istek
sayısını sınırlamak için kullanılır. <directive>MaxClients</directive>
istekten 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
arttırmalısınız.</p>
<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
arttırmalısınız.</p>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>MaxMemFree</name>
<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>mpm_netware</module><module>prefork</module>
<module>worker</module><module>mpm_winnt</module></modulelist>
<usage>
<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
olacaktır.</p>
</usage>
</directivesynopsis>
<directivesynopsis>
<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>mpm_netware</module>
<module>mpm_winnt</module><module>mpmt_os2</module>
<module>prefork</module>
<module>worker</module></modulelist>
<usage>
<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>
</note>
<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
değişmesidir.</p>
</note>
</usage>
</directivesynopsis>
<directivesynopsis>
<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>mpm_netware</module><module>mpmt_os2</module>
<module>worker</module>
</modulelist>
<usage>
<p>Boştaki azami evre sayısı. Her MPM bu yönerge karşısında farklı
davranır.</p>
<p><module>worker</module> için <code>MaxSpareThreads 250</code>
öntanımlıdır. Bu MPM 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>
<ul>
<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>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>
</ul>
</note>
</usage>
<seealso><directive module="mpm_common">MinSpareThreads</directive></seealso>
<seealso><directive module="mpm_common">StartServers</directive></seealso>
</directivesynopsis>
<directivesynopsis>
<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>mpm_netware</module><module>mpmt_os2</module>
<module>worker</module>
</modulelist>
<usage>
<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>worker</module> 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ç
oluşturur.</p>
<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
yapılır.</p>
<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>
</usage>
<seealso><directive module="mpm_common">MaxSpareThreads</directive></seealso>
<seealso><directive module="mpm_common">StartServers</directive></seealso>
</directivesynopsis>
<directivesynopsis>
<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>
<default>ScoreBoardFile logs/apache_status</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>beos</module>
<module>mpm_winnt</module><module>prefork</module>
<module>worker</module></modulelist>
<usage>
<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>
ScoreBoardFile /var/run/apache_status
</example>
<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
href="../misc/security_tips.html">güvenlik</a> ile ilgili uyarılara
benzer uyarılara karşı dikkatli olunuz.</p>
</usage>
<seealso><a href="../stopping.html">Sunucuyu Durdurma ve Yeniden Başlatma</a> </seealso>
</directivesynopsis>
<directivesynopsis>
<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>mpm_netware</module><module>mpm_winnt</module>
<module>mpmt_os2</module><module>prefork</module>
<module>worker</module></modulelist>
<usage>
<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ı
kullanacaktır.</p>
</usage>
</directivesynopsis>
<directivesynopsis>
<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>mpm_netware</module><module>mpm_winnt</module>
<module>mpmt_os2</module><module>prefork</module>
<module>worker</module></modulelist>
<usage>
<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
civarında).</p>
<p><code>0</code> değeri atarsanız sunucu işletim sistemi öntanımlısını
kullanacaktır.</p>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>ServerLimit</name>
<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>prefork</module><module>worker</module>
</modulelist>
<usage>
<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
alınır.</p>
<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> modülü 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>
<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>
</note>
</usage>
<seealso><a href="../stopping.html">Sunucuyu Durdurma ve Yeniden Başlatma</a> </seealso>
</directivesynopsis>
<directivesynopsis>
<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>mpmt_os2</module>
<module>prefork</module><module>worker</module>
</modulelist>
<usage>
<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>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>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>StartThreads</name>
<description>Sunucunun başlatılması sırasında oluşturulan evrelerin sayısını
belirler.</description>
<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>
</modulelist>
<usage>
<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>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ı
<code>10</code>’dur.</p>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>ThreadLimit</name>
<description>Çocuk süreç başına ayarlanabilir evre sayısının üst sınırını
belirler.</description>
<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>mpm_winnt</module>
<module>worker</module>
</modulelist>
<compatibility><module>mpm_winnt</module> için Apache 2.0.41 ve sonrasında mevcuttur.</compatibility>
<usage>
<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
alınır.</p>
<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
<code>64</code>’tür.</p>
<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>
</note>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>ThreadsPerChild</name>
<description>Her çocuk süreç tarafından oluşturulan evrelerin sayısını
belirler.</description>
<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>mpm_winnt</module>
<module>worker</module></modulelist>
<usage>
<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
büyük olmalıdır.</p>
<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>
</usage>
</directivesynopsis>
<directivesynopsis>
<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
değişir.</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>mpm_netware</module>
<module>mpm_winnt</module>
<module>worker</module>
</modulelist>
<compatibility>Apache 2.1 ve sonrasında mevcuttur.</compatibility>
<usage>
<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
olabilir:</p>
<ul>
<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
takdirde yapınız.</li>
<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>
</ul>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>User</name>
<description>İsteklere yanıt verecek sunucunun ait olacağı kullanıcıyı
belirler.</description>
<syntax>User <var>unix-kullanıcısı</var></syntax>
<default>User #-1</default>
<contextlist><context>server config</context></contextlist>
<modulelist>
<module>prefork</module><module>worker</module>
</modulelist>
<compatibility>Apache 2.0’dan itibaren sadece sunucu geneli için
geçerlidir.</compatibility>
<usage>
<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>
<dl>
<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>
</dl>
<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
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>User</directive> (veya <directive
module="mpm_common">Group</directive>) yönergesine değer olarak
<code>root</code> atamayınız.</p>
</note>
<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
kullanınız.</p>
<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>
</note>
</usage>
</directivesynopsis>
</modulesynopsis>