This file is generated from xml source: DO NOT EDIT
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-->
-<title>Kimlik Doğrulama, Yetkilendirme ve Erişim Denetimi - Apache HTTP Sunucusu</title>
+<title>Kimlik Doğrulama ve Yetkilendirme - Apache HTTP Sunucusu</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
<img alt="" src="../images/feather.gif" /></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
<div id="path">
-<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Sunucusu</a> > <a href="http://httpd.apache.org/docs/">Belgeleme</a> > <a href="../">Sürüm 2.4</a> > <a href="./">Nasıllar ve Öğreticiler</a></div><div id="page-content"><div id="preamble"><h1>Kimlik Doğrulama, Yetkilendirme ve Erişim Denetimi</h1>
+<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Sunucusu</a> > <a href="http://httpd.apache.org/docs/">Belgeleme</a> > <a href="../">Sürüm 2.4</a> > <a href="./">Nasıllar ve Öğreticiler</a></div><div id="page-content"><div id="preamble"><h1>Kimlik Doğrulama ve Yetkilendirme</h1>
<div class="toplang">
<p><span>Mevcut Diller: </span><a href="../en/howto/auth.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="../fr/howto/auth.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
<a href="../ko/howto/auth.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
<a href="../tr/howto/auth.html" title="Türkçe"> tr </a></p>
</div>
-<div class="outofdate">Bu çeviri güncel olmayabilir. Son değişiklikler için İngilizce sürüm geçerlidir.</div>
<p>Kimlik Doğrulama istediğiniz kişileri teyid etme işlemidir.
Yetkilendirme ise kişilerin nereye gireceklerine ve hangi bilgiye
<p>Kimlik doğrulamadan sözettiğimize göre, aşağıda gösterilen
şekilde bir <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code> yönergesine ihtiyacınız olacaktır:</p>
- <div class="example"><p><code>
- AllowOverride AuthConfig
- </code></p></div>
+ <pre class="prettyprint lang-config">AllowOverride AuthConfig</pre>
+
<p>Yönergeleri doğrudan ana sunucunun yapılandırma dosyasına
koyacaksanız bu dosyaya yazma izniniz olmalıdır.</p>
veya <code>httpd.conf</code> içindeki <Directory
/usr/local/apache/htdocs/secret> bölümüne koyabilirsiniz.</p>
- <div class="example"><p><code>
- AuthType Basic<br />
- AuthName "Gizli Dosyalar"<br />
- # (Aşağıdaki satırın kullanımı isteğe bağlıdır)<br />
- AuthBasicProvider file<br />
- AuthUserFile /usr/local/apache/passwd/passwords<br />
- Require user umut
- </code></p></div>
+ <pre class="prettyprint lang-config">
+AuthType Basic
+AuthName "Gizli Dosyalar"
+# (Aşağıdaki satırın kullanımı isteğe bağlıdır)
+AuthBasicProvider file
+AuthUserFile /usr/local/apache/passwd/passwords
+Require user umut
+ </pre>
+
<p>Bu yönergeleri tek tek inceleyelim.
<code class="directive"><a href="../mod/mod_authn_core.html#authtype">AuthType</a></code> yönergesi
dosyasında depolama özelliğine de sahiptir. Bu amaçla,
<code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code> modülünün
<code class="directive"><a href="../mod/mod_authn_dbm.html#authdbmuserfile">AuthDBMUserFile</a></code>
- yönergesi kullanılabilir. Bu dosyalar <code class="program"><a href="../programs/dbmmanage.html">dbmmanage</a></code>
- programı ile oluşturulabilir ve değiştirilebilir. <a href="http://modules.apache.org/">Apache modülleri
+ yönergesi kullanılabilir. Bu dosyalar <code class="program"><a href="../programs/dbmmanage.html">dbmmanage</a></code> ve
+ <code class="program"><a href="../programs/htdbm.html">htdbm</a></code> programı ile oluşturulabilir ve değiştirilebilir.
+ <a href="http://modules.apache.org/">Apache modülleri
Veritabanı</a> içindeki üçüncü parti modüllerinde çok sayıda
başka kimlik doğrulama türü de vardır.</p>
(Yeni bir parola dosyası oluşturmak için <code>-c</code> seçeneği
kullanılır).</p>
- <p>Şimdi, <code>.htaccess</code> dosyanızı aşağıda görüldüğü şekilde
- değiştirebilirsiniz:</p>
+ <p>Şimdi, <code>.htaccess</code> dosyanızı veya
+ <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code> bölümünüzü
+ aşağıda görüldüğü şekilde değiştirebilirsiniz:</p>
+
+ <pre class="prettyprint lang-config">
+AuthType Basic
+AuthName "Davete Binaen"
+# Satır isteğe bağlıdır:
+AuthBasicProvider file
+AuthUserFile /usr/local/apache/passwd/passwords
+AuthGroupFile /usr/local/apache/passwd/groups
+Require group Grupismi
+ </pre>
- <div class="example"><p><code>
- AuthType Basic<br />
- AuthName "Davete Binaen"<br />
- # Satır isteğe bağlıdır:<br />
- AuthBasicProvider file<br />
- AuthUserFile /usr/local/apache/passwd/passwords<br />
- AuthGroupFile /usr/local/apache/passwd/groups<br />
- Require group Grupismi
- </code></p></div>
<p>Artık, <code>Grupismi</code> gurubunda listelenmiş ve
<code>password</code> dosyasında kaydı olan kişiye, parolayı doğru
yol daha mevcuttur. Bir gurup dosyası oluşturmaktansa, şu yönergeyi
kullanabilirsiniz:</p>
- <div class="example"><p><code>
- Require valid-user
- </code></p></div>
+ <pre class="prettyprint lang-config">Require valid-user</pre>
+
<p><code>Require user umut</code> satırı ile parola dosyasında
listelenmiş ve parolayı doğru olarak giren herhangi bir kişiye izin
vermektense, her grup için ayrı bir parola dosyası tutarak grup
- davranışını taklit edebilirsiniz. Bu yaklaşımın getirisi:
- Apache iki dosya yerine sadece bir dosyaya bakar.
- Götürüsü ise parola dosyalarından oluşan bir dosya demeti sağlamak
- ve <code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code>
- yönergesinde doğru dosyayı belirtmeyi unutmamak zorunda
- kalmanızdır.</p>
+ davranışını taklit edebilirsiniz.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<code><code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> file</code> yerine, <code>dbm</code>
veya <code>dbd</code> kullanabilirsiniz.</p>
- <p>Bir metin dosyası yerine bir dbd dosyası kullanım örneği:</p>
+ <p>Bir metin dosyası yerine bir dbm dosyası kullanım örneği:</p>
+
+ <pre class="prettyprint lang-config">
+<Directory /www/docs/private>
+ AuthName "Private"
+ AuthType Basic
+ AuthBasicProvider dbm
+ AuthDBMUserFile /www/passwords/passwd.dbm
+ Require valid-user
+</Directory>
+ </pre>
- <div class="example"><p><code>
- <Directory /www/docs/private><br />
- <span class="indent">
- AuthName "Private"<br />
- AuthType Basic<br />
- AuthBasicProvider dbm<br />
- AuthDBMUserFile /www/passwords/passwd.dbm<br />
- Require valid-user<br />
- </span>
- </Directory>
- </code></p></div>
<p>Başka seçenekler de mümkündür. Ayrınılar için
<code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code> belgesine başvurun.</p>
örnekte dosya ve LDAP tabanlı kimlik doğrulama tedarikçileri bir
arada kullanılmıştır.</p>
- <div class="example"><p><code>
- <Directory /www/docs/private><br />
- <span class="indent">
- AuthName "Private"<br />
- AuthType Basic<br />
- AuthBasicProvider file ldap<br />
- AuthUserFile /usr/local/apache/passwd/passwords<br />
- AuthLDAPURL ldap://ldaphost/o=yourorg<br />
- Require valid-user<br />
- </span>
- </Directory>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<Directory /www/docs/private>
+ AuthName "Private"
+ AuthType Basic
+ AuthBasicProvider file ldap
+ AuthUserFile /usr/local/apache/passwd/passwords
+ AuthLDAPURL ldap://ldaphost/o=yourorg
+ Require valid-user
+</Directory>
+ </pre>
+
<p>Bu örnekte dosya tedarikçisi, ilk olarak kullanıcının kimliğini
doğrulamaya teşebbüs edecektir. Kullanıcının kimliği
dosya için hem dosyalı hem de LDAP grup kimlik doğrulaması
kullanılmıştır.</p>
- <div class="example"><p><code>
- <Directory /www/docs/private><br />
- <span class="indent">
- AuthName "Private"<br />
- AuthType Basic<br />
- AuthBasicProvider file<br />
- AuthUserFile /usr/local/apache/passwd/passwords<br />
+ <pre class="prettyprint lang-config">
+<Directory /www/docs/private>
+ AuthName "Private"
+ AuthType Basic
+ AuthBasicProvider file
+ AuthUserFile /usr/local/apache/passwd/passwords
AuthLDAPURL ldap://ldaphost/o=yourorg
- AuthGroupFile /usr/local/apache/passwd/groups<br />
- Require group GroupName<br />
- Require ldap-group cn=mygroup,o=yourorg<br />
- </span>
- </Directory>
- </code></p></div>
+ AuthGroupFile /usr/local/apache/passwd/groups
+ Require group GroupName
+ Require ldap-group cn=mygroup,o=yourorg
+</Directory>
+ </pre>
+
<p>Kimlik doğrulama konusunu biraz daha genişletirsek, <code class="directive"><a href="../mod/mod_authz_core.html#requireall"><RequireAll></a></code> ve
<code class="directive"><a href="../mod/mod_authz_core.html#requireany"><RequireAny></a></code> gibi yetkilendirme taşıyıcısı
çağırılacak yetkilendirme tedarikçilerini kayda geçirir. Örneğin:
</p>
- <div class="example"><p><code>
- Require ip <var>adres</var>
- </code></p></div>
+ <pre class="prettyprint lang-config">Require ip <var>adres</var></pre>
+
<p>Burada, <var>adres</var> bir IP adresidir (veya kısmi bir IP
addresidir)</p>
- <div class="example"><p><code>
- Require host <var>alan_adı</var>
- </code></p></div>
+ <pre class="prettyprint lang-config">Require host <var>alan_adı</var></pre>
+
<p>Burada, <var>alan_adı</var> bir tam nitelikli alan adıdır
(ya da kısmi alan adıdır); gerekirse çok sayıda alan adı veya IP
tutmak istediğinizi varsayalım. Bu kişiyi uzak tutmak için şunları
yapabilirsiniz:</p>
- <div class="example"><p><code>
- <RequireAll>
- <span class="indent">
- Require all granted<br />
- Require not ip 10.252.46.165
- </span>
- </RequireAll>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<RequireAll>
+ Require all granted
+ Require not ip 10.252.46.165
+</RequireAll>
+ </pre>
+
<p>Bu adresden gelen ziyaretçiler bu yönergedeki içeriği
göremeyeceklerdir. Bunun yerine, elinizde IP adresi değil de
makine adı varsa şunu kullanabilirsiniz:</p>
- <div class="example"><p><code>
- <RequireAll>
- <span class="indent">
- Require all granted<br />
- Require not host <var>host.example.com</var>
- </span>
- </RequireAll>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<RequireAll>
+ Require all granted
+ Require not host host.example.com
+</RequireAll>
+ </pre>
+
<p>Eğer alan adının tamanıdan gelecek olan bütün erişimleri
engellemek isterseniz adresin ya da alan adının bir parçasını
belirtin:</p>
- <div class="example"><p><code>
- <RequireAll>
- <span class="indent">
- Require all granted<br />
- <RequireNone>
- <span class="indent">
- Require ip 192.168.205<br />
- Require host phishers.example.com moreidiots.example<br />
- Require host ke
- </span>
- </RequireNone>
- </span>
- </RequireAll>
- </code></p></div>
-
- <p>Yukarıdaki örnekte, <code class="directive"><a href="../mod/mod_authz_core.html#requirenone"><RequireNone></a></code> yönergesi içindeki
- <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>
- yönergelerinin değiştirgeleriyle hiçbir bir eşleşme olmaması
- durumunda erişime izin verilir.</p>
+ <pre class="prettyprint lang-config">
+<RequireAll>
+ Require all granted
+ Require not ip 192.168.205
+ Require not host phishers.example.com moreidiots.example
+ Require not host ke
+</RequireAll>
+ </pre>
+
+
+ <p><code class="directive"><a href="../mod/mod_authz_core.html#requireall"><RequireAll></a></code> yönergesini çok sayıda
+ <code class="directive"><a href="../mod/mod_authz_core.html#require"><Require></a></code> yönergesi ile birlikte kullanarak,
+ sadece <code>not</code> ile olumsuzlanan tüm koşulları gerçekleyen
+ bağlantılara erişim verilir. Başka bir deyişle, olumsuzlanan koşulları
+ gerçeklemeyen bağlantıların erişimi engellenir.</p>
<a href="../ko/misc/perf-tuning.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
<a href="../tr/misc/perf-tuning.html" title="Türkçe"> tr </a></p>
</div>
-<div class="outofdate">Bu çeviri güncel olmayabilir. Son değişiklikler için İngilizce sürüm geçerlidir.</div>
<p>Apache 2.x, esneklik, taşınabilirlik ve başarım arasında bir denge
<code>.cgi</code> dosyalarına yapılan istekler hariç DNS sorguları
iptal edilmektedir:</p>
- <div class="example"><p><code>
- HostnameLookups off<br />
- <Files ~ "\.(html|cgi)$"><br />
- <span class="indent">
- HostnameLookups on<br />
- </span>
- </Files>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+HostnameLookups off
+<Files ~ "\.(html|cgi)$">
+ HostnameLookups on
+</Files>
+ </pre>
+
<p>Yine de bazı CGI’lerin DNS isimlerine ihtiyacı olursa bu CGI’lerin
bu ihtiyaçlarına yönelik olarak <code>gethostbyname</code> çağrıları
bağın üzerinde bazı sınamalar yapmak için ek bir sistem çağrısından
başka istenen her dosya için de ayrı bir çağrı yapacaktır.</p>
- <div class="example"><h3>Örnek:</h3><p><code>
- DocumentRoot /siteler/htdocs<br />
- <Directory /><br />
- <span class="indent">
- Options SymLinksIfOwnerMatch<br />
- </span>
- </Directory>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+DocumentRoot /siteler/htdocs
+<Directory />
+ Options SymLinksIfOwnerMatch
+</Directory>
+ </pre>
+
<p>Bu durumda <code>/index.html</code> için bir istek yapıldığında
Apache, <code>/siteler</code>, <code>/siteler/htdocs</code> ve<br />
yinelenecektir. Amacınız gerçekten sembolik bağları güvenlik
açısından sınamaksa bunu şöyle yapabilirsiniz:</p>
- <div class="example"><p><code>
- DocumentRoot /siteler/htdocs<br />
- <Directory /><br />
- <span class="indent">
- Options FollowSymLinks<br />
- </span>
- </Directory><br />
- <br />
- <Directory /sitem/htdocs><br />
- <span class="indent">
- Options -FollowSymLinks +SymLinksIfOwnerMatch<br />
- </span>
- </Directory>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+DocumentRoot /siteler/htdocs
+<Directory />
+ Options FollowSymLinks
+</Directory>
+
+<Directory /siteler/htdocs>
+ Options -FollowSymLinks +SymLinksIfOwnerMatch
+</Directory>
+ </pre>
+
<p>Böylece <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> altındaki
dosyalar için fazladan bir çağrı yapılmasını engellemiş olursunuz.
her dosya bileşeni için bu <code>.htaccess</code> dosyalarını açmaya
çalışacaktır.</p>
- <div class="example"><h3>Örnek:</h3><p><code>
- DocumentRoot /siteler/htdocs<br />
- <Directory /><br />
- <span class="indent">
- AllowOverride all<br />
- </span>
- </Directory>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+DocumentRoot /siteler/htdocs
+<Directory />
+ AllowOverride all
+</Directory>
+ </pre>
+
<p>Bu durumda <code>/index.html</code> sayfasına yapılan bir istek için
Apache, <code>/.htaccess</code>, <code>/siteler/.htaccess</code> ve
isterken büyük başarım kayıplarına uğrayabilirsiniz. Böyle bir
durumda sunucunun başarımını arttırmanın tek bir yolu vardır. </p>
- <div class="example"><p><code>
- DirectoryIndex index
- </code></p></div>
+ <pre class="prettyprint lang-config">DirectoryIndex index</pre>
+
<p>Yukarıdaki gibi bir dosya ismi kalıbı kullanmak yerine, aşağıdaki
gibi seçenekleri tam bir liste halinde belirtin:</p>
- <div class="example"><p><code>
- DirectoryIndex index.cgi index.pl index.shtml index.html
- </code></p></div>
+ <pre class="prettyprint lang-config">
+DirectoryIndex index.cgi index.pl index.shtml index.html
+ </pre>
+
<p>Buradaki sıralama öncelik sırasını belirler; yani,
öncelikli olmasını istediğiniz seçeneği listenin başına
vermesi nedeniyle yüksek trafiğe sahip sunucularda
<code class="module"><a href="../mod/prefork.html">prefork</a></code> modülüne göre daha iyi bir seçimdir.</li>
+ <li><code class="module"><a href="../mod/event.html">event</a></code> modülü <code class="module"><a href="../mod/worker.html">worker</a></code> modülü gibi
+ çok evreli bir modüldür, fakat aunı anda dahafazla isteğe yanıt
+ verecek şekilde tasarlanmıştır. Bunu, evreleri destekleyen bazı
+ işlemleri yapmamak suretiyle yeni isteklerle çalışacak ana evreleri
+ serbestleştirerek sağlar.</li>
+
<li><code class="module"><a href="../mod/prefork.html">prefork</a></code> modülü her biri tek bir evreye sahip
çok sayıda çocuk süreç kullanımını destekler. Her süreç aynı anda
tek bir bağlantıya hizmet sunar. Çoğu sistemde daha hızlı olması
bağlantılar denenebilir. Gerçekte çalışan kod bu olmasa da meramımızı
anlatmak için kodun şöyle bir şey olduğunu varsayabiliriz:</p>
- <div class="example"><p><code>
- for (;;) {<br />
- <span class="indent">
- for (;;) {<br />
- <span class="indent">
- fd_set accept_fds;<br />
- <br />
- FD_ZERO (&accept_fds);<br />
- for (i = first_socket; i <= last_socket; ++i) {<br />
- <span class="indent">
- FD_SET (i, &accept_fds);<br />
- </span>
- }<br />
- rc = select (last_socket+1, &accept_fds, NULL, NULL, NULL);<br />
- if (rc < 1) continue;<br />
- new_connection = -1;<br />
- for (i = first_socket; i <= last_socket; ++i) {<br />
- <span class="indent">
- if (FD_ISSET (i, &accept_fds)) {<br />
- <span class="indent">
- new_connection = accept (i, NULL, NULL);<br />
- if (new_connection != -1) break;<br />
- </span>
- }<br />
- </span>
- }<br />
- if (new_connection != -1) break;<br />
- </span>
- }<br />
- process the new_connection;<br />
- </span>
+ <pre class="prettyprint lang-c">
+ for (;;) {
+ for (;;) {
+ fd_set accept_fds;
+
+ FD_ZERO (&accept_fds);
+ for (i = first_socket; i <= last_socket; ++i) {
+ FD_SET (i, &accept_fds);
+ }
+ rc = select (last_socket+1, &accept_fds, NULL, NULL, NULL);
+ if (rc < 1) continue;
+ new_connection = -1;
+ for (i = first_socket; i <= last_socket; ++i) {
+ if (FD_ISSET (i, &accept_fds)) {
+ new_connection = accept (i, NULL, NULL);
+ if (new_connection != -1) break;
+ }
+ }
+ if (new_connection != -1) break;
+ }
+ process_the(new_connection);
}
- </code></p></div>
+ </pre>
+
<p>Bu özet gerçeklenim bir takım açlık sorunlarına sebep olur. Bu
döngünün çalışması sırasında aynı anda çok sayıda çocuk süreç yeniden
bir iç döngüde sıraya sokmaktır. Döngü aşağıda örneklenmiştir (farklar
vurgulanmıştır):</p>
- <div class="example"><p><code>
- for (;;) {<br />
- <span class="indent">
- <strong>accept_mutex_on ();</strong><br />
- for (;;) {<br />
- <span class="indent">
- fd_set accept_fds;<br />
- <br />
- FD_ZERO (&accept_fds);<br />
- for (i = first_socket; i <= last_socket; ++i) {<br />
- <span class="indent">
- FD_SET (i, &accept_fds);<br />
- </span>
- }<br />
- rc = select (last_socket+1, &accept_fds, NULL, NULL, NULL);<br />
- if (rc < 1) continue;<br />
- new_connection = -1;<br />
- for (i = first_socket; i <= last_socket; ++i) {<br />
- <span class="indent">
- if (FD_ISSET (i, &accept_fds)) {<br />
- <span class="indent">
- new_connection = accept (i, NULL, NULL);<br />
- if (new_connection != -1) break;<br />
- </span>
- }<br />
- </span>
- }<br />
- if (new_connection != -1) break;<br />
- </span>
- }<br />
- <strong>accept_mutex_off ();</strong><br />
- process the new_connection;<br />
- </span>
+ <pre class="prettyprint lang-c">
+ for (;;) {
+ <strong>accept_mutex_on ();</strong>
+ for (;;) {
+ fd_set accept_fds;
+
+ FD_ZERO (&accept_fds);
+ for (i = first_socket; i <= last_socket; ++i) {
+ FD_SET (i, &accept_fds);
+ }
+ rc = select (last_socket+1, &accept_fds, NULL, NULL, NULL);
+ if (rc < 1) continue;
+ new_connection = -1;
+ for (i = first_socket; i <= last_socket; ++i) {
+ if (FD_ISSET (i, &accept_fds)) {
+ new_connection = accept (i, NULL, NULL);
+ if (new_connection != -1) break;
+ }
+ }
+ if (new_connection != -1) break;
+ }
+ <strong>accept_mutex_off ();</strong>
+ process the new_connection;
}
- </code></p></div>
+ </pre>
+
<p><code>accept_mutex_on</code> ve <code>accept_mutex_off</code> <a id="serialize" name="serialize">işlevleri</a> bir karşılıklı red
semoforu oluştururlar. Mutekse aynı anda sadece bir çocuk sahip
<code>lingering_close</code> adında bir işlevle gerçekler. Bu işlev
kabaca şöyle görünür:</p>
- <div class="example"><p><code>
- void lingering_close (int s)<br />
- {<br />
- <span class="indent">
- char junk_buffer[2048];<br />
- <br />
- /* gönderen tarafı kapat */<br />
- shutdown (s, 1);<br />
- <br />
- signal (SIGALRM, lingering_death);<br />
- alarm (30);<br />
- <br />
- for (;;) {<br />
- <span class="indent">
- /* s'i okumak için, 2 saniyelik zaman aşımı ile seç */<br />
- select (s for reading, 2 second timeout);<br />
- /* Hata oluşmuşsa döngüden çık */<br />
- if (error) break;<br />
- /* s okumak için hazırsa */<br />
- if (s is ready for reading) {<br />
- <span class="indent">
- if (read (s, junk_buffer, sizeof (junk_buffer)) <= 0) {<br />
- <span class="indent">
- break;<br />
- </span>
- }<br />
- /* geri kalan herşey burada */<br />
- </span>
- }<br />
- </span>
- }<br />
- <br />
- close (s);<br />
- </span>
+ <pre class="prettyprint lang-c">
+ void lingering_close (int s)
+ {
+ char junk_buffer[2048];
+
+ /* shutdown the sending side */
+ shutdown (s, 1);
+
+ signal (SIGALRM, lingering_death);
+ alarm (30);
+
+ for (;;) {
+ select (s for reading, 2 second timeout);
+ if (error) break;
+ if (s is ready for reading) {
+ if (read (s, junk_buffer, sizeof (junk_buffer)) <= 0) {
+ break;
+ }
+ /* just toss away whatever is here */
+ }
+ }
+
+ close (s);
}
- </code></p></div>
+ </pre>
+
<p>Bağlantı sonunda bu doğal olarak biraz daha masrafa yol açar, fakat
güvenilir bir gerçeklenim için bu gereklidir. HTTP/1.1'in daha yaygın
<a href="../ja/mod/core.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
<a href="../tr/mod/core.html" title="Türkçe"> tr </a></p>
</div>
-<div class="outofdate">Bu çeviri güncel olmayabilir. Son değişiklikler için İngilizce sürüm geçerlidir.</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Açıklama:</a></th><td>Apache HTTP Sunucusunda daima mevcut olan çekirdek
özellikler</td></tr>
<tr><th><a href="module-dict.html#Status">Durum:</a></th><td>Çekirdek</td></tr></table>
<tr><th><a href="directive-dict.html#Compatibility">Uyumluluk:</a></th><td>Windows'ta Apache httpd 2.3.3 ve sonrasında diğerlerinde Apache
httpd 2.1.5 ve sonrasında mevcuttur.</td></tr>
</table>
- <p>Bu yönerge <code class="directive">Protocol</code> yönergesinde belirtilen
+ <p>Bu yönerge <code class="directive"><a href="#protocol">Protocol</a></code> yönergesinde belirtilen
protokol türüne göre bir dinleme soketinin işletim
sistemine özgü en iyilemelerini etkin kılar. İşletim sistemi çekirdeği
için temel önerme veri alınıncaya kadar veya HTTP isteğinin tamamı
gibi sunucunun baştan bir veri göndermesinin gerekli olduğu
protokoller için kullanışlıdır. Örnek:</p>
- <div class="example"><p><code>AcceptFilter nntp none</code></p></div>
+ <pre class="prettyprint lang-config">
+ AcceptFilter nntp none
+ </pre>
+
<p>Öntanımlı protokol isimleri port 443 için <code>https</code> ve tüm
diğer portlar için <code>http</code>'dir. Dinlenmesi için başka bir port
argümanını ekleyin.</p>
<p>FreeBSD için öntanımlı değerler:</p>
- <div class="example"><p><code>
- AcceptFilter http httpready <br />
- AcceptFilter https dataready
- </code></p></div>
+ <pre class="prettyprint lang-config">
+AcceptFilter http httpready
+AcceptFilter https dataready
+ </pre>
+
<p><code>httpready</code> kabul süzgeci HTTP isteklerinin tamamını
işletim sistemi çekirdeği seviyesinde tamponlar. Çekirdek isteğin
şifrelenmiş olduğundan sadece <a href="http://www.freebsd.org/cgi/man.cgi?query=accf_data&sektion=9">accf_data(9)</a> süzgeci kullanılır.</p>
<p>Linux’taki öntanımlı değerler:</p>
- <div class="example"><p><code>
- AcceptFilter http data <br />
- AcceptFilter https data
- </code></p></div>
+ <pre class="prettyprint lang-config">
+AcceptFilter http data
+AcceptFilter https data
+ </pre>
+
<p>Linux’un <code>TCP_DEFER_ACCEPT</code> soket seçeneği HTTP isteklerinin
tamponlanmasını desteklemez. <code>none</code> dahil her değer
<p>Windows’taki öntanımlı değerler::</p>
- <div class="example"><p><code>
- AcceptFilter http data <br />
- AcceptFilter https data
- </code></p></div>
+ <pre class="prettyprint lang-config">
+AcceptFilter http data
+AcceptFilter https data
+ </pre>
+
<p>Windows'un <code>mpm_winnt</code> modülü <code>AcceptEx()</code>
arayüzünü açıp kapamak için <code>AcceptFilter</code>'i yorumlar ve
<h3>Ayrıca bakınız:</h3>
<ul>
-<li><code class="directive">Protocol</code></li>
+<li><code class="directive"><a href="#protocol">Protocol</a></code></li>
</ul>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<tr><th><a href="directive-dict.html#Override">Geçersizleştirme:</a></th><td>FileInfo</td></tr>
<tr><th><a href="directive-dict.html#Status">Durum:</a></th><td>Çekirdek</td></tr>
<tr><th><a href="directive-dict.html#Module">Modül:</a></th><td>core</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Uyumluluk:</a></th><td>Apache httpd 2.0.30 ve sonrasında mevcuttur.</td></tr>
</table>
<p>Bu yönerge, istekte dosya isminden sonra (dizinde belirtilen dosya
bulunmayabilir) belirtilen yol verisinin kabul edilip edilmeyeceğini
normal olarak isteği reddederdi, böyle bir durumda bir betiği etkin
kılmak için aşağıdaki gibi bir yapılandırma kullanabilirsiniz:</p>
- <div class="example"><p><code>
- <Files "mypaths.shtml"><br />
- <span class="indent">
- Options +Includes<br />
- SetOutputFilter INCLUDES<br />
- AcceptPathInfo On<br />
- </span>
- </Files>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<Files "mypaths.shtml">
+ Options +Includes
+ SetOutputFilter INCLUDES
+ AcceptPathInfo On
+</Files>
+ </pre>
+
</div>
işlerken önce bu dizinlerde bu yönergede belirtilmiş yapılandırma
dosyasını arar. Örnek:</p>
- <div class="example"><p><code>
- AccessFileName .acl
- </code></p></div>
+ <pre class="prettyprint lang-config">AccessFileName .acl</pre>
+
<p>Sunucu, <code>/usr/local/web/index.html</code> belgesini döndürmeden
önce,</p>
- <div class="example"><p><code>
- <Directory /><br />
- <span class="indent">
- AllowOverride None<br />
- </span>
- </Directory>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<Directory />
+ AllowOverride None
+</Directory>
+ </pre>
+
<p>şeklinde bir yapılandırma ile iptal edilmiş olmadıkça yönergeler için
<code>/.acl</code>, <code>/usr/.acl</code>,
Genel Ağ ortam türlerinde (MIME türlerinde) kullanmak üzere <a href="http://www.iana.org/assignments/character-sets">IANA’da kayıtlı
karakter kümesi değerleri</a>nden biri olmalıdır. Örnek:</p>
- <div class="example"><p><code>
- AddDefaultCharset utf-8
- </code></p></div>
+ <pre class="prettyprint lang-config">AddDefaultCharset utf-8</pre>
+
<p><code class="directive">AddDefaultCharset</code> yönergesi sadece, metin
kaynaklarının hepsinin aynı karakter kümesine sahip olduğu bilindiği
<tr><th><a href="directive-dict.html#Context">Bağlam:</a></th><td>sunucu geneli, sanal konak</td></tr>
<tr><th><a href="directive-dict.html#Status">Durum:</a></th><td>Çekirdek</td></tr>
<tr><th><a href="directive-dict.html#Module">Modül:</a></th><td>core</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Uyumluluk:</a></th><td>Apache httpd 2.0.46 ve sonrasında mevcuttur. NoDecode seçeneği
- Apache httpd 2.3.12 ve sonrasında mevcuttur.</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Uyumluluk:</a></th><td>NoDecode seçeneği Apache httpd 2.3.12 ve sonrasında
+ mevcuttur.</td></tr>
</table>
<p><code class="directive">AllowEncodedSlashes</code> yönergesi kodlanmış dosya
yolu ayracı içeren URL’lere izin verir (<code>/</code> yerine
<code class="directive"><a href="../mod/mod_rewrite.html#rewritebase">RewriteBase</a></code>,
<code class="directive"><a href="../mod/mod_rewrite.html#rewritecond">RewriteCond</a></code>,
<code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code>
+ yönergelerinin, <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code> modülündeki
+ <code class="directive"><a href="../mod/mod_alias.html#redirect">Redirect</a></code>,
+ <code class="directive"><a href="../mod/mod_alias.html#redirecttemp">RedirectTemp</a></code>,
+ <code class="directive"><a href="../mod/mod_alias.html#redirectpermanent">RedirectPermanent</a></code>,
+ <code class="directive"><a href="../mod/mod_alias.html#redirectmatch">RedirectMatch</a></code>)
yönergelerinin ve <code class="module"><a href="../mod/mod_actions.html">mod_actions</a></code> modülündeki
<code class="directive"><a href="../mod/mod_actions.html#action">Action</a></code>
yönergesinin kullanımına izin verilir.
mekanizma diğerlerinin değerlerini korumasına izin verirken belli bir
seçeneği değerini korumaya zorlayamaz.
</p></div>
+
+ <div class="example"><p><code>
+ AllowOverride Options=Indexes,MultiViews
+ </code></p></div>
</dd>
</dl>
<p>Örnek:</p>
- <div class="example"><p><code>
- AllowOverride AuthConfig Indexes
- </code></p></div>
+ <pre class="prettyprint lang-config">AllowOverride AuthConfig Indexes</pre>
+
<p>Bu örnekte <code>AuthConfig</code> ve <code>Indexes</code> grubundaki
yönergeler bir dahili sunucu hatasına yol açmayacaktır.</p>
<p>Örnek:</p>
- <div class="example"><p><code>
- AllowOverride None<br />
- AllowOverrideList Redirect RedirectMatch
- </code></p></div>
+ <pre class="prettyprint lang-config">
+AllowOverride None
+AllowOverrideList Redirect RedirectMatch
+ </pre>
+
<p>Yukarıdaki örnekte sadece <code>Redirect</code> ve
<code>RedirectMatch</code> yönergelerine izin verilmektedir. Tüm
<p>Örnek:</p>
- <div class="example"><p><code>
- AllowOverride AuthConfig<br />
- AllowOverrideList CookieTracking CookieName
- </code></p></div>
+ <pre class="prettyprint lang-config">
+AllowOverride AuthConfig
+AllowOverrideList CookieTracking CookieName
+ </pre>
+
<p>Yukarıdaki örnekte <code class="directive"><a href="#allowoverride ">AllowOverride
</a></code> yönergesi <code>AuthConfig</code> yönerge grubuna izin
tam yol <code class="directive">ServerRoot</code> yönergesinde belirtilene
göreli olacaktır.</p>
- <div class="example"><h3>Example</h3><p><code>
- DefaultRuntimeDir scratch/
- </code></p></div>
+ <p><strong>Örnek</strong></p>
+ <pre class="prettyprint lang-config">
+DefaultRuntimeDir scratch/
+ </pre>
+
<p><code class="directive">DefaultRuntimeDir</code> için öntanımlı yer derleme
sırasında <code>DEFAULT_REL_RUNTIMEDIR</code> #define satırı ile
uyumluluğunu sağlamak için, öntanımlı bir ortam türünün olmadığını
belirten <code>none</code> değeriyle belirtilebilir. Örnek:</p>
- <div class="example"><p><code>
- DefaultType none
- </code></p></div>
+ <pre class="prettyprint lang-config">DefaultType None</pre>
+
<p><code>DefaultType None</code> sadece httpd-2.2.7 ve sonrasında
mevcuttur.</p>
ile kullanılabilir. Değişken daima küresel olarak tanımlı olup
yapılandırma bölümünü sarmalayan etki alanı ile sınırlanmaz.</p>
- <div class="example"><p><code>
- <IfDefine TEST><br />
- Define servername test.example.com<br />
- </IfDefine><br />
- <IfDefine !TEST><br />
- Define servername www.example.com<br />
- Define SSL<br />
- </IfDefine><br />
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<IfDefine TEST>
+ Define servername test.example.com
+</IfDefine>
+<IfDefine !TEST>
+ Define servername www.example.com
+ Define SSL
+</IfDefine>
+DocumentRoot /var/www/${servername}/htdocs
+ </pre>
+
<p><code class="directive"><a href="../mod/mod_rewrite.html#rewritemap">RewriteMap</a></code> sözdizimi ile
karışmalardan kaçınmak için değişken isimleri ikinokta ":" karakterleri
değil, ama <code><Directory /home/*/public_html></code>
eşleşecektir. Örnek:</p>
- <div class="example"><p><code>
- <Directory /usr/local/httpd/htdocs><br />
- <span class="indent">
- Options Indexes FollowSymLinks<br />
- </span>
- </Directory>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<Directory "/usr/local/httpd/htdocs">
+ Options Indexes FollowSymLinks
+</Directory>
+ </pre>
+
<div class="note">
<p><var>dizin-yolu</var> argümanlarını belirtirken dikkatli
<p><code>~</code> karakterine ek olarak <a class="glossarylink" href="../glossary.html#regex" title="sözlüğe bakınız">düzenli
ifadeler</a> de kullanılabilir. Örnek:</p>
- <div class="example"><p><code>
- <Directory ~ "^/www/.*/[0-9]{3}">
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<Directory ~ "^/www/[0-9]{3}">
+
+</Directory>
+</pre>
+
<p>yönergesi <code>/www/</code> içindeki üç rakamdan oluşan dizinlerle
eşleşecektir.</p>
eşleşmedeki yönergelerden başlayarak <a href="#accessfilename">.htaccess</a> dosyalarındaki yönergelere kadar
genişletilir. Örneğin,</p>
- <div class="example"><p><code>
- <Directory /><br />
- <span class="indent">
- AllowOverride None<br />
- </span>
- </Directory><br />
- <br />
- <Directory /home><br />
- <span class="indent">
- AllowOverride FileInfo<br />
- </span>
- </Directory>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<Directory />
+ AllowOverride None
+</Directory>
+
+<Directory "/home">
+ AllowOverride FileInfo
+</Directory>
+ </pre>
+
<p>bölümleri ile <code>/home/web/dir/doc.html</code> belgesine erişirken
şu aşamalardan geçilir:</p>
değerlendirilmez. Düzenli ifadelerin tamamı yapılandırma dosyasında
görüldükleri sıraya göre sınanırlar. Örneğin,</p>
- <div class="example"><p><code>
- <Directory ~ abc$><br />
- <span class="indent">
- # ... yönergeler burada ...<br />
- </span>
- </Directory>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<Directory ~ "abc$">
+ # ... yönergeler burada ...
+</Directory>
+ </pre>
+
<p>düzenli ifadeli bölümü, tüm normal <code class="directive"><Directory></code> bölümleri ve
<code>.htaccess</code> dosyaları uygulanıncaya kadar
erişime izin vermek oluşuna dikkat ediniz. Bunu şöyle bir blokla
değiştirmeniz,</strong></p>
- <div class="example"><p><code>
- <Directory /><br />
- <span class="indent">
- Order Deny,Allow<br />
- Deny from All<br />
- </span>
- </Directory>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<Directory />
+ Require all denied
+</Directory>
+ </pre>
+
<p><strong>ve erişilebilir olmasını istediğiniz dizinleri ayrıca
belirtmeniz önerilir. Daha ayrıntılı bilgi edinmek için <a href="../misc/security_tips.html">Güvenlik İpuçları</a> belgesine
bir yönerge grubunu sarmalamakta kullanılır. Tek farkla argüman olarak
bir <a class="glossarylink" href="../glossary.html#regex" title="sözlüğe bakınız">düzenli ifade</a> alır. Örnek:</p>
- <div class="example"><p><code>
- <DirectoryMatch "^/www/(.+/)?[0-9]{3}">
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<DirectoryMatch "^/www/(.+/)?[0-9]{3}">
+ # ...
+</DirectoryMatch>
+</pre>
+
<p>yönergesi <code>/www/</code> içindeki üç rakamdan oluşan dizinlerle
eşleşecektir.</p>
benzeri bir yönerge ile eşleşmedikçe, sunucu istenen URL’deki yolu,
belge yolu haline getirmek için belge kök dizinine ekler. Örnek:</p>
- <div class="example"><p><code>
- DocumentRoot /usr/web
- </code></p></div>
+ <pre class="prettyprint lang-config">DocumentRoot "/usr/web"</pre>
+
<p>yapılandırması ile <code>http://my.example.com/index.html</code>
isteği <code>/usr/web/index.html</code> ile eşleştirilir.
<code class="directive"><ElseIf></code> bölümü uygulanmamışsa
kapsadığı yönergeleri uygular. Örneğin:</p>
- <div class="example"><p><code>
- <If "-z req('Host')"><br />
- ...<br />
- </If><br />
- <Else><br />
- ...<br />
- </Else><br />
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<If "-z req('Host')">
+ # ...
+</If>
+<Else>
+ # ...
+</Else>
+ </pre>
+
<p>Burada, <code class="directive"><If></code> yönergesi
<var>Host:</var> başlıksız HTTP/1.0 istekleriyle eşleşirken <code class="directive"><Else></code> <var>Host:</var> başlıklılarla
<code class="directive"><ElseIf></code> yönergesinin uygulanmadığı
takdirde uygular. Örnek:</p>
- <div class="example"><p><code>
- <If "-R '10.1.0.0/16'"><br />
- ...<br />
- </If><br />
- <ElseIf "-R '10.0.0.0/8'"><br />
- ...<br />
- </ElseIf><br />
- <Else><br />
- ...<br />
- </Else><br />
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<If "-R '10.1.0.0/16'">
+ #...
+</If>
+<ElseIf "-R '10.0.0.0/8'">
+ #...
+</ElseIf>
+<Else>
+ #...
+</Else>
+ </pre>
+
<p><code class="directive"><ElseIf></code> bir isteğin uzak adresi
10.0.0.0/8 ağına aitse ama 10.1.0.0/16 ağına ait değilse içerdiği
yapılandırmalarında dosya teslimatında bellek eşlemlerinin kullanımını
şu şekilde iptal etmeniz gerekir:</p>
- <div class="example"><p><code>
- EnableMMAP Off
- </code></p></div>
+ <pre class="prettyprint lang-config">EnableMMAP Off</pre>
+
<p>Bu özellik, sadece NFS dosya sistemi üzerinde sunulan dosyaları
kapsamak üzere şu şekilde kolayca kapatılabilir:</p>
- <div class="example"><p><code>
- <Directory "/nfs-dosya-yolu">
- <span class="indent">
- EnableMMAP Off
- </span>
- </Directory>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<Directory "/nfs-dosyaları-yolu">
+ EnableMMAP Off
+</Directory>
+ </pre>
+
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<tr><th><a href="directive-dict.html#Override">Geçersizleştirme:</a></th><td>FileInfo</td></tr>
<tr><th><a href="directive-dict.html#Status">Durum:</a></th><td>Çekirdek</td></tr>
<tr><th><a href="directive-dict.html#Module">Modül:</a></th><td>core</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Uyumluluk:</a></th><td>2.0.44 ve sonrasında mevcuttur. Öntanımlı değer 2.3.9 sürümünde Off olarak değişti.</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Uyumluluk:</a></th><td>Öntanımlı değer 2.3.9 sürümünde Off olarak değişti.</td></tr>
</table>
<p>Bu yönerge, dosya içeriğinin istemciye teslimi için
<code class="program"><a href="../programs/httpd.html">httpd</a></code>’nin çekirdeğin dosya gönderme desteğini
<p>Bu sorunlardan muzdarip sunucu yapılandırmaları için bu özelliği şöyle
etkin kılabilirsiniz:</p>
- <div class="example"><p><code>
- EnableSendfile On
- </code></p></div>
+ <pre class="prettyprint lang-config">EnableSendfile On</pre>
+
<p>Bu özellik, sadece bir ağ dosya sistemi üzerinde sunulan
dosyaları kapsamak üzere şu şekilde kolayca kapatılabilir:</p>
- <div class="example"><p><code>
- <Directory "/path-to-nfs-files">
- <span class="indent">
- EnableSendfile Off
- </span>
- </Directory>
- </code></p></div>
- <p><code class="directive">EnableSendfile</code> yönergesinin .htaccess ve
+ <pre class="prettyprint lang-config">
+<Directory "/nfs-dosyaları-yolu">
+ EnableSendfile Off
+</Directory>
+ </pre>
+
+
+<p><code class="directive">EnableSendfile</code> yönergesinin .htaccess ve
diziniçi yapılandırmalarının <code class="module"><a href="../mod/mod_cache_disk.html">mod_cache_disk</a></code> tarafından
desteklenmediğini lütfen aklınızdan çıkarmayın.
<code class="directive">EnableSendfile</code> yönergesinin sadece küresel
üretilmesi için kullanılabilir. Genelde kullanıldığı durum, gerekli
modüllerin yapılandırmada bulunmadığının raporlanmasıdır.</p>
- <div class="example"><h3>Örnek</h3><p><code>
- # mod_include yüklü değilse bilelim<br />
- <IfModule !include_module><br />
- Hata: mod_include mod_foo için gerekiyor. LoadModule ile yükleyin.<br />
- </IfModule><br />
- <br />
- # SSL veya NOSSL tanımlı mı bilelim<br />
- <IfDefine SSL><br />
- <IfDefine NOSSL><br />
- Hata: Ne SSL ne de NOSSL tanımlı. Sadece biri tanımlı olsa yeter.<br />
- </IfDefine><br />
- </IfDefine><br />
- <IfDefine !SSL><br />
- <IfDefine !NOSSL><br />
- Hata: Ya SSL ya da NOSSL tanımlı olmalı.<br />
- </IfDefine><br />
- </IfDefine><br />
- </code></p></div>
+ <pre class="prettyprint lang-config">
+# Örnek
+# mod_include yüklü değilse bilelim
+<IfModule !include_module>
+ Error "Hata: mod_include mod_foo için gerekiyor. LoadModule ile yükleyin."
+</IfModule>
+
+# SSL veya NOSSL tanımlı mı bilelim
+<IfDefine SSL>
+<IfDefine NOSSL>
+ Error "Ne SSL ne de NOSSL tanımlı. Sadece biri tanımlı olsa yeter."
+</IfDefine>
+</IfDefine>
+<IfDefine !SSL>
+<IfDefine !NOSSL>
+ Error "Ya SSL ya da NOSSL tanımlı olmalı."
+</IfDefine>
+</IfDefine>
+ </pre>
+
</div>
<li>Özel bir ileti çıktılanır.</li>
- <li>Sorunu/hatayı işleyecek yerel bir <var>URL-yoluna</var> yönlendirme
- yapılır.</li>
+ <li>Sorunu/hatayı işleyecek yerel bir <var>URL-yoluna</var> dahili bir
+ yönlendirme yapılır.</li>
<li>Sorunu/hatayı işleyecek harici bir <var>URL-yoluna</var>
yönlendirme yapılır.</li>
şeklinde de belirtilebilir. Bunlar yerine, tarayıcıda gösterilmek üzere
bir ileti de belirtilebilir. Örnekler:</p>
- <div class="example"><p><code>
- ErrorDocument 500 http://hata.example.com/cgi-bin/dnmci<br />
- ErrorDocument 404 /cgi-bin/bad_urls.pl<br />
- ErrorDocument 401 /subscription_info.html<br />
- ErrorDocument 403 "Kusura bakmayın, bugün hizmet veremiyoruz."
- ErrorDocument 403 Yasak!
- </code></p></div>
+ <pre class="prettyprint lang-config">
+ErrorDocument 500 http://foo.example.com/cgi-bin/tester
+ErrorDocument 404 /cgi-bin/bad_urls.pl
+ErrorDocument 401 /subscription_info.html
+ErrorDocument 403 "Kusura bakmayın, bugün hizmet veremiyoruz."
+ </pre>
+
<p>Bunlardan başka, Apache httpd’nin kendi hata iletilerinin kullanılacağı
özel <code>default</code> değeri ile belirtilebilir. Normal şartlar
<code>default</code> değeri açıkça belirtilerek örnekteki gibi
zorlanabilir:</p>
- <div class="example"><p><code>
- ErrorDocument 404 /cgi-bin/bad_urls.pl<br /><br />
- <Directory /web/docs><br />
- <span class="indent">
- ErrorDocument 404 default<br />
- </span>
- </Directory>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+ErrorDocument 404 /cgi-bin/bad_urls.pl
+
+<Directory /web/docs>
+ ErrorDocument 404 default
+</Directory>
+ </pre>
+
<p><code class="directive">ErrorDocument</code> yönergesinde bir uzak URL (önünde
<code>http</code> bulunan bir yol) belirtildiğinde, belge aynı sunucuda
dizininin <code class="directive"><a href="#serverroot">ServerRoot</a></code> ile
belirtilen sunucu kök dizinine göre belirtildiği varsayılır.</p>
- <div class="example"><h3>Örnek</h3><p><code>
- ErrorLog /var/log/httpd/error_log
- </code></p></div>
+ <pre class="prettyprint lang-config">ErrorLog "/var/log/httpd/error_log"</pre>
+
<p><var>dosya-yolu</var> bir boru imi "<code>|</code>" ile başlatıldığı
takdirde hata iletilerinin hata günlüğünü işleme sokacak komuta
borulanacağı varsayılır.</p>
- <div class="example"><h3>Örnek</h3><p><code>
- ErrorLog "|/usr/local/bin/httpd_errors"
- </code></p></div>
+ <pre class="prettyprint lang-config">ErrorLog "|/usr/local/bin/httpd_errors"</pre>
+
<p>Daha fazla bilgi için <a href="../logs.html#piped">borulu
günlüklere</a> bakınız.</p>
değiştirilmişse, belirtilen en son oluşum tüm sunucuyu
etkileyecektir.</p>
- <div class="example"><h3>Örnek</h3><p><code>
- ErrorLog syslog:user
- </code></p></div>
+ <pre class="prettyprint lang-config">ErrorLog syslog:user</pre>
+
<p>GÜVENLİK: Günlük dosyalarının saklandığı dizin, sunucuyu başlatan
kullanıcı dışındakiler tarafından yazılabilir olduğu takdirde
hata iletisine ek olarak günlüklenecek ek bilgiyi belirtmek için
kullanılabilir.</p>
- <div class="example"><h3>Basit örnek</h3><p><code>
- ErrorLogFormat "[%t] [%l] [pid %P] %F: %E: [client %a] %M"
- </code></p></div>
+ <pre class="prettyprint lang-config">
+#Basit örnek
+ErrorLogFormat "[%t] [%l] [pid %P] %F: %E: [client %a] %M"
+ </pre>
+
<p>İlk değiştirge olarak <code>connection</code> veya <code>request</code>
belirtilmesi ek biçemlerin belirtilebilmesini sağlar. Böylece, belli bir
durumunda günlük satırlarının ait olduğu bağlantı veya isteği
bağdaştırmak için kullanılabilir. <code>%L</code> biçem dizgesi ayrıca
<code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code> modülünde erişim günlüğü iletilerini
- hata günlüğü iletileriyle ilşklendirmek için de kullanılabilmektedir.
+ hata günlüğü iletileriyle ilişklendirmek için de kullanılabilmektedir.
<code class="module"><a href="../mod/mod_unique_id.html">mod_unique_id</a></code> modülü yüklüyse onun eşsiz kimliği
istekler için günlük kimliği olarak kullanılacaktır.</p>
- <div class="example"><h3>Example (default format)</h3><p><code>
- ErrorLogFormat "[%{u}t] [%-m:%l] [pid %P:tid %T] %7F: %E: [client\ %a]
- %M% ,\ referer\ %{Referer}i"
- </code></p></div>
+ <pre class="prettyprint lang-config">
+#Örnek (Evreli MPM'ler için öntanımlı biçim)
+ErrorLogFormat "[%{u}t] [%-m:%l] [pid %P:tid %T] %7F: %E: [client\ %a] %M% ,\ referer\ %{Referer}i"
+ </pre>
+
<p>Bunun hata iletilerindeki sonuçları şöyle olabilir:</p>
<p>Dikkat edin, yukarıda açıklandığı gibi, bazı alanlar
tanımlanmadıklarından tamamen yoksayılır.</p>
- <div class="example"><h3>Örnek (2.2.x biçemine benzer)</h3><p><code>
- ErrorLogFormat "[%t] [%l] %7F: %E: [client\ %a]
- %M% ,\ referer\ %{Referer}i"
- </code></p></div>
+ <pre class="prettyprint lang-config">
+#Örnek (2.2.x biçimine benzer)
+ErrorLogFormat "[%t] [%l] %7F: %E: [client\ %a] %M% ,\ referer\ %{Referer}i"
+ </pre>
+
+
+ <pre class="prettyprint lang-config">
+#İstek/bağlantı günlük kimlikli gelişkin bir örnek
+ErrorLogFormat "[%{uc}t] [%-m:%-l] [R:%L] [C:%{C}L] %7F: %E: %M"
+ErrorLogFormat request "[%{uc}t] [R:%L] Request %k on C:%{c}L pid:%P tid:%T"
+ErrorLogFormat request "[%{uc}t] [R:%L] UA:'%+{User-Agent}i'"
+ErrorLogFormat request "[%{uc}t] [R:%L] Referer:'%+{Referer}i'"
+ErrorLogFormat connection "[%{uc}t] [C:%{c}L] local\ %a remote\ %A"
+ </pre>
- <div class="example"><h3>İstek/bağlantı günlük kimlikli gelişkin bir örnek</h3><p><code>
- ErrorLogFormat "[%{uc}t] [%-m:%-l] [R:%L] [C:%{C}L] %7F: %E: %M"<br />
- ErrorLogFormat request "[%{uc}t] [R:%L] Request %k on C:%{c}L pid:%P tid:%T"<br />
- ErrorLogFormat request "[%{uc}t] [R:%L] UA:'%+{User-Agent}i'"<br />
- ErrorLogFormat request "[%{uc}t] [R:%L] Referer:'%+{Referer}i'"<br />
- ErrorLogFormat connection "[%{uc}t] [C:%{c}L] local\ %a remote\ %A"<br />
- </code></p></div>
<h3>Ayrıca bakınız:</h3>
<dd>Dosyanın bayt cinsinden uzunluğu dahil edilir.</dd>
<dt><strong>All</strong></dt>
<dd>Olası tüm alanlar kullanılır. Bu şuna eşdeğerdir:
- <div class="example"><p><code>FileETag INode MTime Size</code></p></div></dd>
+ <pre class="prettyprint lang-config">FileETag INode MTime Size</pre>
+</dd>
<dt><strong>None</strong></dt>
<dd>Bir belge dosyasıyla sunulsa bile yanıta hiçbir <code>ETag</code>
alanı dahil edilmez.</dd>
<p><var>dosya-adı</var> argümanının bir dosya ismi veya bir dosya ismi
kalıbı içermesi gerekir. Bir dosya ismi kalıbındaki her <code>?</code>
imi bir karakterle eşleştirilirken <code>*</code> imi karakter dizileri
- ile eşleştirilir. <code>~</code> imine ek olarak <a class="glossarylink" href="../glossary.html#regex" title="sözlüğe bakınız">düzenli ifadeler</a> de kullanılabilir. Örneğin</p>
+ ile eşleştirilir.</p>
+
+ <pre class="prettyprint lang-config">
+<Files "zat.html">
+ # zat.html dosyasına uygulanacakları buraya koy
+</Files>
+
+<Files "?at.*">
+ # Buradakiler hat.html, kat.html, tat.html ve benzerlerine uygulanır.
+</Files>
+</pre>
+
+
+ <p><code>~</code> imine ek olarak <a class="glossarylink" href="../glossary.html#regex" title="sözlüğe bakınız">düzenli ifadeler</a> de kullanılabilir. Örneğin</p>
+
+ <pre class="prettyprint lang-config">
+<Files ~ "\.(gif|jpe?g|png)$">
+ #...
+</Files>
+</pre>
- <div class="example"><p><code>
- <Files ~ "\.(gif|jpe?g|png)$">
- </code></p></div>
<p>satırı en bilinen resim dosyası biçimleriyle eşleşecektir. Bunun
yerine <code class="directive"><a href="#filesmatch"><FilesMatch></a></code>
yönergelerin etki alanını <code class="directive"><a href="#files"><Files></a></code> yönergesinin yaptığı gibi dosya
isimlerine göre sınırlandırır. Ancak, argüman olarak bir <a class="glossarylink" href="../glossary.html#regex" title="sözlüğe bakınız">düzenli ifade</a> kabul eder. Örneğin</p>
- <div class="example"><p><code>
- <FilesMatch "\.(gif|jpe?g|png)$">
- </code></p></div>
+<pre class="prettyprint lang-config">
+<FilesMatch "\.(gif|jpe?g|png)$">
+ # ...
+</FilesMatch>
+</pre>
+
<p>satırı en bilinen resim dosyası biçimleriyle eşleşecektir.</p>
<code>.gif</code> uzantısı belirtmek istemiyorsanız şu yapılandırmayı
kullanabilirsiniz:</p>
- <div class="example"><p><code>
- ForceType image/gif
- </code></p></div>
+ <pre class="prettyprint lang-config">ForceType image/gif</pre>
+
<p>Bu yönerge, <code class="directive"><a href="../mod/mod_mime.html#addtype">AddType</a></code> yönergesi
üzerinden ve <code>mime.types</code> dosyasında örtük olarak
<p>Ayrıca, daha genel <code class="directive">ForceType</code> ayarlarını da
<code>None</code> değeriyle geçersiz kılabilirsiniz:</p>
- <div class="example"><p><code>
- # tüm dosyaların image/gif olarak sunulması için:<br />
- <Location /images><br />
- <span class="indent">
- ForceType image/gif<br />
- </span>
- </Location><br />
- <br />
- # normal MIME-türüne geri dönmek için:<br />
- <Location /images/mixed><br />
- <span class="indent">
- ForceType None<br />
- </span>
- </Location>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+# tüm dosyaların image/gif olarak sunulması için:
+<Location /images>
+ ForceType image/gif
+</Location>
+
+# normal MIME-türüne geri dönmek için:
+<Location /images/mixed>
+ ForceType None
+</Location>
+ </pre>
+
+
<p>Bu yönerge, öncelikle dosya sisteminden sunulan duruk dosyalar için
üretilen içerik türlerini geçersiz kılar. Duruk dosyaların haricindeki
özkaynaklar için yanıt üretecinin genelde bir <code>Content-Type</code>
anında değerlendirir ve ifadenin sonucu doğru olduğu takdirde içerdiği
yönergeleri uygular. Örnek:</p>
- <div class="example"><p><code>
- <If "-z req('Host')">
- </code></p></div>
+ <pre class="prettyprint lang-config"><If "-z req('Host')"></pre>
+
<p>Bir <var>Host:</var> başlığı içermeyen HTTP/1.0 istekleriyle
eşleşir. İfadeler, dizge karşılaştırması (<code>=</code>,
<code>-z</code>, <code>-f</code>, ...) için kabuktakilere benzer çeşitli
işleçler içerebilir. Ayrıca, düzenli ifadeleri,</p>
- <div class="example"><p><code>
- <If "%{QUERY_STRING} =~ /(delete|commit)=.*?elem/">
- </code></p></div>
+ <pre class="prettyprint lang-config"><If "%{QUERY_STRING} =~ /(delete|commit)=.*?elem/"></pre>
+
<p>kabuk tarzı kalıp eşleştirme ve birçok başka işlemi kullanmak da
mümkündür. Bu işlemler istek başlıklarında (<code>req</code>), ortam
olabilir, dolayısıyla çok parametreli basit sınamalar gerçeklenebilir.
Örnek:</p>
- <div class="example"><p><code>
- httpd -DReverseProxy -DUseCache -DMemCache ...<br />
- <br />
- # httpd.conf<br />
- <IfDefine ReverseProxy><br />
- <span class="indent">
- LoadModule proxy_module modules/mod_proxy.so<br />
- LoadModule proxy_http_module modules/mod_proxy_http.so<br />
- <IfDefine UseCache><br />
- <span class="indent">
- LoadModule cache_module modules/mod_cache.so<br />
- <IfDefine MemCache><br />
- <span class="indent">
- LoadModule mem_cache_module modules/mod_mem_cache.so<br />
- </span>
- </IfDefine><br />
- <IfDefine !MemCache><br />
- <span class="indent">
- LoadModule cache_disk_module modules/mod_cache_disk.so<br />
- </span>
- </IfDefine>
- </span>
- </IfDefine>
- </span>
- </IfDefine>
- </code></p></div>
+ <div class="example"><p><code>httpd -DReverseProxy -DUseCache -DMemCache ...</code></p></div>
+ <pre class="prettyprint lang-config">
+<IfDefine ReverseProxy>
+ LoadModule proxy_module modules/mod_proxy.so
+ LoadModule proxy_http_module modules/mod_proxy_http.so
+ <IfDefine UseCache>
+ LoadModule cache_module modules/mod_cache.so
+ <IfDefine MemCache>
+ LoadModule mem_cache_module modules/mod_mem_cache.so
+ </IfDefine>
+ <IfDefine !MemCache>
+ LoadModule cache_disk_module modules/mod_cache_disk.so
+ </IfDefine>
+ </IfDefine>
+</IfDefine>
+ </pre>
+
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<tr><th><a href="directive-dict.html#Context">Bağlam:</a></th><td>sunucu geneli, sanal konak, dizin</td></tr>
<tr><th><a href="directive-dict.html#Status">Durum:</a></th><td>Çekirdek</td></tr>
<tr><th><a href="directive-dict.html#Module">Modül:</a></th><td>core</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Uyumluluk:</a></th><td>Dosya kalıbıyla eşleşme 2.0.41 ve sonrasında, dizin kalıbıyla
- eşleşme ise 2.3.6 ve sonrasında mevcuttur.</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Uyumluluk:</a></th><td>Dizin kalıbıyla eşleşme ise 2.3.6 ve sonrasında mevcuttur.</td></tr>
</table>
<p>Bu yönerge sunucu yapılandırma dosyalarının başka dosyaları içermesini
mümkün kılar.</p>
<p>Örnekler:</p>
- <div class="example"><p><code>
- Include /usr/local/apache2/conf/ssl.conf<br />
- Include /usr/local/apache2/conf/vhosts/*.conf
- </code></p></div>
+ <pre class="prettyprint lang-config">
+Include /usr/local/apache2/conf/ssl.conf
+Include /usr/local/apache2/conf/vhosts/*.conf
+ </pre>
+
<p>Veya dizinler <code class="directive"><a href="#serverroot">ServerRoot</a></code> dizinine
göre belirtilebilir:</p>
- <div class="example"><p><code>
- Include conf/ssl.conf<br />
- Include conf/vhosts/*.conf
- </code></p></div>
+ <pre class="prettyprint lang-config">
+Include conf/ssl.conf
+Include conf/vhosts/*.conf
+ </pre>
+
<p>Dosya kalıbı karakterleri yolun dizin ve dosya parçalarına
yerleştirilebilir. <code>conf/vhosts</code> altında en azından bir
<code>*.conf</code> içeren hiçbir alt dizin yoksa bu örnek başarısız
olacaktır:</p>
- <div class="example"><p><code>
- Include conf/vhosts/*/*.conf
- </code></p></div>
+ <pre class="prettyprint lang-config">Include conf/vhosts/*/*.conf</pre>
+
<p>Bunun yerine, dizin ve dosyaların eksikliği durumunda aşağıdaki komut
sadece yoksayılır:</p>
- <div class="example"><p><code>
- IncludeOptional conf/vhosts/*/*.conf
- </code></p></div>
+ <pre class="prettyprint lang-config">IncludeOptional conf/vhosts/*/*.conf</pre>
+
<h3>Ayrıca bakınız:</h3>
<code>POST</code>, <code>PUT</code> ve <code>DELETE</code> yöntemleri
için uygulanmakta, diğer tüm yöntemler korumasız bırakılmaktadır:</p>
- <div class="example"><p><code>
- <Limit POST PUT DELETE><br />
- <span class="indent">
- Require valid-user<br />
- </span>
- </Limit>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<Limit POST PUT DELETE>
+ Require valid-user
+</Limit>
+ </pre>
+
<p>Birden fazla bölümde kullanılabilecek yöntem isimleri: <code>GET</code>,
<code>POST</code>, <code>PUT</code>, <code>DELETE</code>,
<code>POST</code> istekleri için yetkilendirilecek ve tüm durumlarda
<code>Require group editors</code> yönergesi yoksayılacaktır:</p>
- <div class="example"><p><code>
- <LimitExcept GET>
- <span class="indent">
- Require valid-user
- </span>
- </LimitExcept><br />
- <Limit POST>
- <span class="indent">
- Require group editors
- </span>
- </Limit>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<LimitExcept GET>
+ Require valid-user
+</LimitExcept>
+<Limit POST>
+ Require group editors
+</Limit>
+ </pre>
+
</div>
<p>Örnek:</p>
- <div class="example"><p><code>
- <LimitExcept POST GET><br />
- <span class="indent">
- Require valid-user<br />
- </span>
- </LimitExcept>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<LimitExcept POST GET>
+ Require valid-user
+</LimitExcept>
+ </pre>
+
</div>
<tr><th><a href="directive-dict.html#Context">Bağlam:</a></th><td>sunucu geneli, sanal konak</td></tr>
<tr><th><a href="directive-dict.html#Status">Durum:</a></th><td>Çekirdek</td></tr>
<tr><th><a href="directive-dict.html#Module">Modül:</a></th><td>core</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Uyumluluk:</a></th><td>Apache httpd 2.0.47 ve sonrasında mevcuttur.</td></tr>
</table>
<p>Örneğin, özgün istekleri dahili olarak bir CGI betiğine yönlendiren
<code class="directive"><a href="../mod/mod_actions.html#action">Action</a></code> yönergesi
<var>sayı</var> belirtilirse iki sınırlama için de aynı değer
kullanılır.</p>
- <div class="example"><h3>Örnek</h3><p><code>
- LimitInternalRecursion 5
- </code></p></div>
+ <pre class="prettyprint lang-config">LimitInternalRecursion 5</pre>
+
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
yüklenebilecek dosya boyutunu 100 kB ile sınırlamak isterseniz yönergeyi
şöyle kullanabilirsiniz:</p>
- <div class="example"><p><code>
- LimitRequestBody 102400
- </code></p></div>
+ <pre class="prettyprint lang-config">LimitRequestBody 102400</pre>
+
<div class="note"><p>Bu yönergenin vekil istekleri tarafından nasıl yorumlandığı
<code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> belgesinde ayrıntılı olarak
<p>Örnek:</p>
- <div class="example"><p><code>
- LimitRequestFields 50
- </code></p></div>
+ <pre class="prettyprint lang-config">LimitRequestFields 50</pre>
+
<div class="warning"><h3>Uyarı</h3>
<p>İsme dayalı sanal konaklar kullanıldığında, bu yönergenin değeri,
<p>Örnek:</p>
- <div class="example"><p><code>
- LimitRequestFieldSize 4094
- </code></p></div>
+ <pre class="prettyprint lang-config">LimitRequestFieldSize 4094</pre>
+
<div class="note">Normal şartlar altında öntanımlı değer değiştirilmemelidir. Ayrıca,
kaynak kodu değiştirip yeniden derlemeden bu değeri 8190'dan büyük
<p>Örnek:</p>
- <div class="example"><p><code>
- LimitRequestLine 4094
- </code></p></div>
+ <pre class="prettyprint lang-config">LimitRequestLine 4094</pre>
+
<div class="note">Normal şartlar altında öntanımlı değer değiştirilmemelidir. Ayrıca,
kaynak kodu değiştirip yeniden derlemeden bu değeri 8190'dan büyük
<p>Örnek:</p>
- <div class="example"><p><code>
- LimitXMLRequestBody 0
- </code></p></div>
+ <pre class="prettyprint lang-config">LimitXMLRequestBody 0</pre>
+
</div>
<code>/private1/file.txt</code> istekleri için sarmalanan yönergeler
uygulanacaktır, fakat <code>/private1other</code> isteğine
uygulanmayacaktır.</p>
- <div class="example"><p><code>
- <Location /private1>
- ...
- </code></p></div>
+
+ <pre class="prettyprint lang-config">
+<Location /private1>
+ # ...
+</Location>
+ </pre>
+
+
<p>Aşağıdaki örnekte yer belirtimi bir bölü çizgisi ile bitirilmiştir.
<code>/private2/</code> ve <code>/private2/file.txt</code> istekleri
için sarmalanan yönergeler uygulanacaktır, fakat <code>/private2</code>
ve <code>/private2other</code> isteklerine uygulanmayacaktır.</p>
- <div class="example"><p><code>
- <Location /private2<em>/</em>>
- ...
- </code></p></div>
+
+ <pre class="prettyprint lang-config">
+<Location /private2<em>/</em>>
+ # ...
+</Location>
+ </pre>
+
<div class="note"><h3><code class="directive"><Location></code> ne zaman
kullanılmalı</h3>
<a class="glossarylink" href="../glossary.html#regex" title="sözlüğe bakınız">düzenli ifadeler</a> de kullanılabilir.
Örneğin,</p>
- <div class="example"><p><code>
- <Location ~ "/(ek|hususi)/veri">
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<Location ~ "/(ek|hususi)/veri">
+ #...
+</Location>
+</pre>
+
<p>yönergesi <code>/ek/veri</code> ve <code>/hususi/veri</code> alt
dizgeleriyle eşleşecektir. <code class="directive"><a href="#locationmatch"><LocationMatch></a></code> yönergesi <code class="directive"><Location></code> yönergesinin düzenli ifade sürümüne
<code>example.com</code>’dan gelen isteklere izin vermek için şöyle bir
uygulama yapabilirsiniz:</p>
- <div class="example"><p><code>
- <Location /status><br />
- <span class="indent">
- SetHandler server-status<br />
- Require host example.com<br />
- </span>
- </Location>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<Location /status>
+ SetHandler server-status
+ Require host example.com
+</Location>
+ </pre>
+
<div class="note"><h3>/ (bölü çizgisi) hakkında</h3>
<p>Bölü çizgisinin URL içinde bulunduğu yere bağlı olarak özel anlamları
yönergelerin etki alanını <code class="directive"><a href="#location"><Location></a></code> yönergesinin yaptığı gibi belirtilen URL’lerle
sınırlar. Ancak argüman olarak basit bir dizge değil bir <a class="glossarylink" href="../glossary.html#regex" title="sözlüğe bakınız">düzenli ifade</a> alır. Örneğin,</p>
- <div class="example"><p><code>
- <LocationMatch "/(ek|hususi)/veri">
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<LocationMatch "/(ek|hususi)/veri">
+ # ...
+</LocationMatch>
+</pre>
+
<p>yönergesi <code>/ek/veri</code> ve <code>/hususi/veri</code> alt
dizgeleriyle eşleşecektir.</p>
<p>Örnek:</p>
- <div class="example"><p><code>
- LogLevel notice
- </code></p></div>
+ <pre class="prettyprint lang-config">LogLevel notice</pre>
+
+
<div class="note"><h3>Ek Bilgi</h3>
<p>Günlük iletileri normal bir dosyaya yazılırken <code>notice</code>
<code>_module</code> sonekli modül ismi belirtmek mümkündür.
Yani, aşağıdaki üç belirtim eşdeğerdedir:</p>
- <div class="example"><p><code>
- LogLevel info ssl:warn<br />
- LogLevel info mod_ssl.c:warn<br />
- LogLevel info ssl_module:warn<br />
- </code></p></div>
+ <pre class="prettyprint lang-config">
+LogLevel info ssl:warn
+LogLevel info mod_ssl.c:warn
+LogLevel info ssl_module:warn
+ </pre>
+
<p>Ayrıca seviyeyi dizin bağlamında değiştirmek de mümkündür:</p>
- <div class="example"><p><code>
- LogLevel info<br />
- <Directory /usr/local/apache/htdocs/app><br />
- LogLevel debug<br />
- </Files>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+LogLevel info
+<Directory "/usr/local/apache/htdocs/app">
+ LogLevel debug
+</Directory>
+ </pre>
+
<div class="note">Dizin bağlamında günük seviyesi yapılandırması sadece istek
çözümlendikten ve istek dizinle ilişkilendirildikten sonra günlüklenen
- iletileri etkiler. Bağlantı veya sunucu ile ilişklendirilmemiş günlük
+ iletileri etkiler. Bağlantı veya sunucu ile ilişkilendirilmemiş günlük
iletileri etkilenmez.</div>
+<h3>Ayrıca bakınız:</h3>
+<ul>
+<li><code class="directive"><a href="#errorlog">ErrorLog</a></code></li>
+<li><code class="directive"><a href="#errorlogformat">ErrorLogFormat</a></code></li>
+<li><a href="../logs.html">Apache HTTP Server Log Files</a></li>
+</ul>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="MaxKeepAliveRequests" id="MaxKeepAliveRequests">MaxKeepAliveRequests</a> <a name="maxkeepaliverequests" id="maxkeepaliverequests">Yönergesi</a></h2>
<p>Örnek:</p>
- <div class="example"><p><code>
- MaxKeepAliveRequests 500
- </code></p></div>
+ <pre class="prettyprint lang-config">MaxKeepAliveRequests 500</pre>
+
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
öntanımlı mekanizması ise <code>sysvsem</code> ile
değiştirilmektedir.</p>
- <div class="example"><p><code>
- Mutex sysvsem default<br />
- Mutex fcntl:/var/httpd/locks mpm-accept
- </code></p></div>
+ <pre class="prettyprint lang-config">
+Mutex sysvsem default
+Mutex fcntl:/var/httpd/locks mpm-accept
+ </pre>
+
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="note">
<p>Sembolik bağlar izlense bile <code class="directive"><a href="#directory"><Directory></a></code> bölümleriyle eşleşen dosya yolları
değiştirilmez.</p>
- <p>Ayrıca, bu seçenek bir <code class="directive"><a href="#location"><Location></a></code> bölümü içinde belirtildiği takdirde <strong>yok
- sayılır</strong>.</p>
+ <p><code>FollowSymLinks</code> ve
+ <code>SymLinksIfOwnerMatch</code> <code class="directive"><a href="#options">Options</a></code> sadece <code class="directive"><a href="#directory"><Directory></a></code> bölümlerinde veya
+ <code>.htaccess</code> dosyaları içinde çalışır.</p>
<p>Sembolik bağ sınamaları, atlatılabilir yarış koşullarına konu
olduğundan bu seçeneğin yokluğu bir güvenlik sınırlaması olarak
değerlendirilmemelidir.</p>
<dd>Sunucu sembolik bağları sadece sembolik bağın hedefi ile bulunduğu
dizinin sahibinin aynı kullanıcı olması halinde izleyecektir.
- <div class="note"><h3>Ek Bilgi</h3> <p>Bu seçenek bir <code class="directive"><a href="#location"><Location></a></code> bölümü içinde belirtildiğinde yok
- sayılır.</p>
+ <p><code>FollowSymLinks</code> ve
+ <code>SymLinksIfOwnerMatch</code> <code class="directive"><a href="#options">Options</a></code> sadece <code class="directive"><a href="#directory"><Directory></a></code> bölümlerinde veya
+ <code>.htaccess</code> dosyaları içinde çalışır.</p>
+
<p>Sembolik bağ sınamaları, atlatılabilir yarış koşullarına konu
olduğundan bu seçenek bir güvenlik sınırlaması olarak
- değerlendirilmemelidir.</p></div>
+ değerlendirilmemelidir.</p>
</dd>
</dl>
<p>Örneğin, <code>+</code> ve <code>-</code> imleri olmaksızın,</p>
- <div class="example"><p><code>
- <Directory /web/docs><br />
- <span class="indent">
- Options Indexes FollowSymLinks<br />
- </span>
- </Directory><br />
- <br />
- <Directory /web/docs/spec><br />
- <span class="indent">
- Options Includes<br />
- </span>
- </Directory>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<Directory "/web/docs">
+ Options Indexes FollowSymLinks
+</Directory>
+
+<Directory "/web/docs/spec">
+ Options Includes
+</Directory>
+ </pre>
+
<p>yapılandırmasıyla <code>/web/docs/spec</code> dizininde sadece
<code>Includes</code> seçeneği etkin olacaktır. Bununla birlikte, ikinci
<code class="directive">Options</code> yönergesinde <code>+</code> ve
<code>-</code> imleri kullanılırsa,</p>
- <div class="example"><p><code>
- <Directory /web/docs><br />
- <span class="indent">
- Options Indexes FollowSymLinks<br />
- </span>
- </Directory><br />
- <br />
- <Directory /web/docs/spec><br />
- <span class="indent">
- Options +Includes -Indexes<br />
- </span>
- </Directory>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<Directory "/web/docs">
+ Options Indexes FollowSymLinks
+</Directory>
+
+<Directory "/web/docs/spec">
+ Options +Includes -Indexes
+</Directory>
+ </pre>
+
<p>yapılandırmasıyla <code>/web/docs/spec</code> dizininde
<code>FollowSymLinks</code> ve <code>Includes</code> seçenekleri etkin
<p>Örneğin, <code>https</code>'i standartdışı bir portta çalıştırmak
isterseniz protokolü şöyle belirtebilirsiniz:</p>
- <div class="example"><p><code>
- Protocol https
- </code></p></div>
+ <pre class="prettyprint lang-config">Protocol https</pre>
+
<p>Protokolü <code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code> yönergesini
kullanarak da belirtebilirsiniz.</p>
<h3>Ayrıca bakınız:</h3>
<ul>
<li><code class="directive">AcceptFilter</code></li>
+<li><code class="directive"><a href="#acceptfilter">AcceptFilter</a></code></li>
<li><code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code></li>
</ul>
</div>
<tr><th><a href="directive-dict.html#Override">Geçersizleştirme:</a></th><td>FileInfo</td></tr>
<tr><th><a href="directive-dict.html#Status">Durum:</a></th><td>Çekirdek</td></tr>
<tr><th><a href="directive-dict.html#Module">Modül:</a></th><td>core</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Uyumluluk:</a></th><td>Sadece Win32 için; <code>Registry-Strict</code> seçeneği Apache
-HTTP Sunucusunun 2.0 ve sonraki sürümleri için geçerlidir.</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Uyumluluk:</a></th><td>Sadece Win32 için.</td></tr>
</table>
<p>Bu yönerge Apache httpd’nin CGI betiklerini çalıştıracak yorumlayıcıyı
nasıl tespit edeceğini belirler. <code>Script</code> öntanımlı olup
kullanacağını belirtir. Win32 sistemlerinde bu satır genellikle
şöyledir:</p>
- <div class="example"><p><code>
- #!C:/Perl/bin/perl.exe
- </code></p></div>
+ <pre class="prettyprint lang-perl">#!C:/Perl/bin/perl.exe</pre>
+
<p><code>perl</code> yorumlayıcının yeri <code>PATH</code> değişkeninde
kayıtlı ise şöyle de olabilir:</p>
- <div class="example"><p><code>
- #!perl
- </code></p></div>
+ <pre class="prettyprint lang-perl">#!perl</pre>
+
<p><code>ScriptInterpreterSource Registry</code> değeri ise betik dosyası
uzantısının (<code>.pl</code> gibi) Windows Sicili içindeki
burada belirtilecek adresin sırf bu işe adanmış bir adres olması daha
iyidir. Örnek:</p>
- <div class="example"><p><code>
- ServerAdmin www-admin@example.com
- </code></p></div>
+ <pre class="prettyprint lang-config">ServerAdmin www-admin@foo.example.com</pre>
+
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
belirtebilmeyi sağlar. <code class="directive">ServerAlias</code> dosya adı kalıp
karakterleri içerebilir.</p>
- <div class="example"><p><code>
- <VirtualHost *:80><br />
- <span class="indent">
- ServerName server.example.com<br />
- ServerAlias server server2.example.com server2<br />
- ServerAlias *.example.com<br />
- UseCanonicalName Off<br />
- # ...<br />
- </span>
- </VirtualHost>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<VirtualHost *:80>
+ ServerName server.example.com
+ ServerAlias server server2.example.com server2
+ ServerAlias *.example.com
+ UseCanonicalName Off
+ # ...
+</VirtualHost>
+ </pre>
+
<p>İsme dayalı sanal konaklardan en iyi eşleşme kümesinde olanlar
yapılandırmada göründükleri sıraya göre işleme sokulur. Joker
kullanımları arasında fark gözetilmeksizin <code class="directive"><a href="#servername">ServerName</a></code> veya <code class="directive"><a href="#serveralias">ServerAlias</a></code> yönergesi eşleşen ilk sanal konak
kullanılır.</p>
+ <p><code class="directive">VirtualHost</code> bölümü içindeki isimlerin sırası
+ (jokersiz) <code class="directive">ServerAlias</code> yönergesindeki gibi ele
+ alınır.</p>
+
<h3>Ayrıca bakınız:</h3>
<ul>
DNS rumuzu varsa ve HTTP sunucunuzun bu rumuzla kendini
özdeşleştirmesini isterseniz bunu şöyle belirtebilirsiniz:</p>
- <div class="example"><p><code>
- ServerName www.example.com
- </code></p></div>
+ <pre class="prettyprint lang-config">ServerName www.example.com</pre>
+
<p><code class="directive">ServerName</code> yönergesi sunucu tanımının içinde
herhangi bir yerde görünebilirse de her göründüğü yerde bir öncekini
<code>logs/</code> gibi alt dizinler içerir. <code class="directive"><a href="#include">Include</a></code>, <code class="directive"><a href="../mod/mod_so.html#loadmodule">LoadModule</a></code> gibi diğer yapılandırma
yönergelerindeki göreli yollar bu dizine göre ele alınır.</p>
- <div class="example"><h3>Örnek</h3><p><code>
- ServerRoot /home/httpd
- </code></p></div>
+ <pre class="prettyprint lang-config">ServerRoot "/home/httpd"</pre>
+
<p><code class="directive">ServerRoot</code> için öntanımlı yer <a href="../programs/configure.html"><code>configure</code></a> betiğinin
<code>--prefix</code> seçeneği ile değiştirilebilir ve sunucunun çoğu
<dl>
<dt><code>ServerTokens Full</code> (veya belirtilmezse)</dt>
- <dd>Sunucu şunu gönderir (<em>örnek</em>): <code>Server: Apache/2.4.1
+ <dd>Sunucu şunu gönderir (<em>örnek</em>): <code>Server: Apache/2.4.2
(Unix) PHP/4.2.2 MyMod/1.2</code></dd>
<dt><code>ServerTokens Prod[uctOnly]</code></dt>
<dt><code>ServerTokens Min[imal]</code></dt>
<dd>Sunucu şunu gönderir (<em>örnek</em>): <code>Server:
- Apache/2.4.1</code></dd>
+ Apache/2.4.2</code></dd>
<dt><code>ServerTokens OS</code></dt>
- <dd>Sunucu şunu gönderir (<em>örnek</em>): <code>Server: Apache/2.4.1
+ <dd>Sunucu şunu gönderir (<em>örnek</em>): <code>Server: Apache/2.4.2
(Unix)</code></dd>
</dl>
içindeki bir <code>.htaccess</code> dosyasına şöyle bir satır
koyabilirsiniz:</p>
- <div class="example"><p><code>
- SetHandler imap-file
- </code></p></div>
+ <pre class="prettyprint lang-config">SetHandler imap-file</pre>
+
<p>Başka bir örnek: <code>http://localhost/status</code> gibi bir istek
yapıldığında sunucunun bir durum bilgisi göstermesi için
<code>httpd.conf</code> dosyasına şöyle bir satır koyabilirsiniz:</p>
- <div class="example"><p><code>
- <Location /status><br />
- <span class="indent">
- SetHandler server-status<br />
- </span>
- </Location>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<Location "/status">
+ SetHandler server-status
+</Location>
+ </pre>
+
+
+ <p>Bu yönergeyi ayrıca, belli bir dosya uzantısına sahip dosyalara uygun
+ bir eylemci atamak için de kullanabilirsiniz. örnek:</p>
+
+ <pre class="prettyprint lang-config">
+<FilesMatch \.php$>
+ SetHandler application/x-httpd-php
+</FilesMatch>
+ </pre>
+
- <p>Evvelce tanımlanmış bir <code class="directive">SetHandler</code> yönergesini
+ <p>Evvelce tanımlanmış bir <code class="directive">SetHandler</code> yönergesini
<code>None</code> değeriyle geçersiz hale getirebilirsiniz.</p>
<div class="note"><h3>Bilgi</h3>
<p>Örneğin, aşağıdaki yapılandırma ile <code>/www/data/</code> dizinindeki
bütün dosyalar sunucu taraflı içerik kapsamında ele alınacaktır.</p>
- <div class="example"><p><code>
- <Directory /www/data/><br />
- <span class="indent">
- SetOutputFilter INCLUDES<br />
- </span>
- </Directory>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<Directory "/www/data/">
+ SetOutputFilter INCLUDES
+</Directory>
+ </pre>
+
<p>Birden fazla süzgeç belirtilmek istenirse birbirlerinden noktalı
virgüllerle ayrılmalı ve çıktıyı işleyecekleri sıraya uygun olarak
<tr><th><a href="directive-dict.html#Context">Bağlam:</a></th><td>sunucu geneli, sanal konak</td></tr>
<tr><th><a href="directive-dict.html#Status">Durum:</a></th><td>Çekirdek</td></tr>
<tr><th><a href="directive-dict.html#Module">Modül:</a></th><td>core</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Uyumluluk:</a></th><td>Apache HTTP Sunucusunun 1.3.34, 2.0.55 ve sonraki sürümlerinde
- kuallanılabilir.</td></tr>
</table>
<p>Bu yönerge çekirdek ve vekil (<code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code>) sunucuların
her ikisi için öntanımlı <code>TRACE</code> davranışını değiştirir.
<code>http://www.example.com/splat/</code> adresine yönlendirecektir.
Eğer kimlik doğrulama da etkinse bu kullanıcının iki defa kimlik
doğrulamasına sokulmasına sebep olacaktır (bir kere <code>www</code>
- için bir kere de <code>www.example.com</code> için; daha fazla bilgi için
- <a href="http://httpd.apache.org/docs/misc/FAQ.html#prompted-twice">SSS</a>’ye bakınız). Fakat <code class="directive">UseCanonicalName Off</code>
+ için bir kere de <code>www.example.com</code> için; daha fazla bilgi için <a href="http://wiki.apache.org/httpd/FAQ#Why_does_Apache_ask_for_my_password_twice_before_serving_a_file.3F">SSS</a>’ye bakınız). Fakat <code class="directive">UseCanonicalName Off</code>
olsaydı Apache httpd isteği <code>http://www/splat/</code> adresine
yönlendirecekti.</p>
dizgesi.</li>
</ul>
- <div class="example"><h3>Örnek</h3><p><code>
- <VirtualHost 10.1.2.3:80><br />
- <span class="indent">
- ServerAdmin webmaster@host.example.com<br />
- DocumentRoot /www/docs/host.example.com<br />
- ServerName host.example.com<br />
- ErrorLog logs/host.example.com-error_log<br />
- TransferLog logs/host.example.com-access_log<br />
- </span>
- </VirtualHost>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<VirtualHost 10.1.2.3:80>
+ ServerAdmin webmaster@host.example.com
+ DocumentRoot /www/docs/host.example.com
+ ServerName host.example.com
+ ErrorLog logs/host.example.com-error_log
+ TransferLog logs/host.example.com-access_log
+</VirtualHost>
+ </pre>
+
<p>İsteğe bağlı port numarasını belirtmeyi mümkün kılmak için IPv6
adresleri köşeli ayraç içine alınır. IPv6 adresi kullanılan bir
örnek:</p>
- <div class="example"><p><code>
- <VirtualHost [2001:db8::a00:20ff:fea7:ccea]><br />
- <span class="indent">
- ServerAdmin webmaster@host.example.com<br />
- DocumentRoot /www/docs/host.example.com<br />
- ServerName host.example.com<br />
- ErrorLog logs/host.example.com-error_log<br />
- TransferLog logs/host.example.com-access_log<br />
- </span>
- </VirtualHost>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<VirtualHost [2001:db8::a00:20ff:fea7:ccea]:80>
+ ServerAdmin webmaster@host.example.com
+ DocumentRoot /www/docs/host.example.com
+ ServerName host.example.com
+ ErrorLog logs/host.example.com-error_log
+ TransferLog logs/host.example.com-access_log
+</VirtualHost>
+ </pre>
+
<p>Her sanal konağın ya farklı bir IP adresi ve port ile ya da farklı bir
konak ismiyle eşleşmesi gerekir. Birinci durumda sunucu makinesinin çok