github.com/krum110487/go-htaccess@v0.0.0-20240316004156-60641c8e7598/tests/data/apache_2_2_34/manual/dso.html.tr.utf8 (about) 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 3 <html xmlns="http://www.w3.org/1999/xhtml" lang="tr" xml:lang="tr"><head> 4 <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> 5 <!-- 6 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 7 This file is generated from xml source: DO NOT EDIT 8 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 9 --> 10 <title>Devingen Paylaşımlı Nesne Desteği - Apache HTTP Sunucusu Sürüm 2.2</title> 11 <link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" /> 12 <link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" /> 13 <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" /> 14 <script src="./style/scripts/prettify.min.js" type="text/javascript"> 15 </script> 16 17 <link href="./images/favicon.ico" rel="shortcut icon" /><link href="http://httpd.apache.org/docs/current/dso.html" rel="canonical" /></head> 18 <body id="manual-page"><div id="page-header"> 19 <p class="menu"><a href="./mod/">Modüller</a> | <a href="./mod/directives.html">Yönergeler</a> | <a href="http://wiki.apache.org/httpd/FAQ">SSS</a> | <a href="./glossary.html">Terimler</a> | <a href="./sitemap.html">Site Haritası</a></p> 20 <p class="apache">Apache HTTP Sunucusu Sürüm 2.2</p> 21 <img alt="" src="./images/feather.gif" /></div> 22 <div class="up"><a href="./"><img title="<-" alt="<-" src="./images/left.gif" /></a></div> 23 <div id="path"> 24 <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.2</a></div><div id="page-content"><div class="retired"><h4>Please note</h4> 25 <p> This document refers to a legacy release (<strong>2.2</strong>) of Apache httpd. The active release (<strong>2.4</strong>) is documented <a href="http://httpd.apache.org/docs/current">here</a>. If you have not already upgraded, please follow <a href="http://httpd.apache.org/docs/current/upgrading.html">this link</a> for more information.</p> 26 <p>You may follow <a href="http://httpd.apache.org/docs/current/dso.html">this link</a> to go to the current version of this document.</p></div><div id="preamble"><h1>Devingen Paylaşımlı Nesne Desteği</h1> 27 <div class="toplang"> 28 <p><span>Mevcut Diller: </span><a href="./en/dso.html" hreflang="en" rel="alternate" title="English"> en </a> | 29 <a href="./ja/dso.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | 30 <a href="./ko/dso.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | 31 <a href="./tr/dso.html" title="Türkçe"> tr </a></p> 32 </div> 33 34 <p>Apache HTTP Sunucusu modüler bir program olup, yönetici sadece bir 35 grup modül seçerek sunucuya işlevsellik ekleyebilir. Modüller sunucunun 36 derlenmesi sırasında doğrudan <code class="program"><a href="./programs/httpd.html">httpd</a></code> programının 37 içinde derlenebileceği gibi Devingen Paylaşımlı Nesneler (DSO - Dynamic 38 Shared Object) halinde <code class="program"><a href="./programs/httpd.html">httpd</a></code> programından ayrı 39 olarak da derlenebilir. DSO modülleri sunucunun derlenmesi sırasında 40 derlenebileceği gibi ayrı olarak derlenip daha sonra Apache Eklenti 41 Aracı (Apache Extension Tool) <code class="program"><a href="./programs/apxs.html">apxs</a></code> programı 42 kullanılarak sunucuya eklenebilir.</p> 43 44 <p>Bu belgede DSO modüllerinin kullanımının yanında teorisine de 45 değinilecektir.</p> 46 </div> 47 <div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#implementation">Gerçeklenim</a></li> 48 <li><img alt="" src="./images/down.gif" /> <a href="#usage">Kullanıcı Özeti</a></li> 49 <li><img alt="" src="./images/down.gif" /> <a href="#background">Artalan Bilgisi</a></li> 50 <li><img alt="" src="./images/down.gif" /> <a href="#advantages">Getiriler ve Götürüler</a></li> 51 </ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div> 52 <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div> 53 <div class="section"> 54 <h2><a name="implementation" id="implementation">Gerçeklenim</a></h2> 55 56 <table class="related"><tr><th>İlgili Modüller</th><th>İlgili Yönergeler</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_so.html">mod_so</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_so.html#loadmodule">LoadModule</a></code></li></ul></td></tr></table> 57 58 <p>Apache modüllerini yüklemek için DSO desteği, Apache çekirdeğine 59 durağan olarak ilintilenerek derlenmiş olan <code class="module"><a href="./mod/mod_so.html">mod_so</a></code> 60 adında bir modül tarafından sağlanır. <code class="module"><a href="./mod/core.html">core</a></code> modülünden 61 başka, bir DSO modülü olamayan tek modül <code class="module"><a href="./mod/mod_so.html">mod_so</a></code> 62 modülüdür. Hemen hemen tüm diğer Apache modülleri <a href="install.html">kurulum belgesinde</a> de açıklandığı gibi 63 <code class="program"><a href="./programs/configure.html">configure</a></code> betiğinin 64 <code>--enable-<em>modül</em>=shared</code> seçeneği her modül için ayrı 65 ayrı belirtilerek birer DSO modülü olarak derlenebilir. Derlenmiş 66 modüller <code>mod_filanca.so</code> biçeminde birer DSO ismi alırlar ve 67 her biri istenirse <code>httpd.conf</code> dosyasında 68 <code class="module"><a href="./mod/mod_so.html">mod_so</a></code> modülünün <code class="directive"><a href="./mod/mod_so.html#loadmodule">LoadModule</a></code> yönergesiyle belirtilerek sunucu başlatılırken 69 veya yeniden başlatılırken sunucuya yüklenebilir.</p> 70 71 <p>Apache modülleri için (özellikle üçüncü parti modüller için) DSO 72 dosyası üretimini kolaylaştırmak amacıyla <code class="program"><a href="./programs/apxs.html">apxs</a></code> 73 (<dfn>APache eXtenSion</dfn>) adında yeni bir destek programı 74 kullanılmaktadır. Bu program Apache modüllerini Apache kaynak ağacından 75 ayrı olarak derlemek için kullanılabilir. Fikir basittir: Apache 76 derlenirken DSO dosyalarını derlemek için platforma bağımlı 77 derleyici ve ilintileyici seçenekleri <code class="program"><a href="./programs/apxs.html">apxs</a></code> 78 programının içine konur ve Apache’nin <code>make install</code> ile 79 kurulumu sırasında Apache C başlık dosyaları da kurulur. Böylece 80 kullanıcı Apache dağıtımının kaynak ağacına ihtiyaç duymadan ve 81 platforma bağımlı derleyici ve ilintileyici seçeneklerini bilmek zorunda 82 kalmadan istediği Apache modülünü <code class="program"><a href="./programs/apxs.html">apxs</a></code> programını 83 kullanarak derleyebilir.</p> 84 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div> 85 <div class="section"> 86 <h2><a name="usage" id="usage">Kullanıcı Özeti</a></h2> 87 88 <p>Apache 2.x’in DSO özelliklerine bir giriş olarak burada kısaca bir 89 bilgi vermekle yetinilecektir:</p> 90 91 <ol> 92 <li>Kaynak dosyası <code>mod_filanca.c</code> dosyasında dağıtılan bir 93 <em>özgün</em> Apache modülünü <code>mod_filanca.so</code> isminde bir 94 DSO modülü olarak derlemek ve kurmak için şöyle yapılır: 95 96 <div class="example"><p><code> 97 $ ./configure --prefix=/kurulum/yeri --enable-filanca=shared<br /> 98 $ make install 99 </code></p></div> 100 </li> 101 102 <li>Kaynak dosyası <code>mod_filanca.c</code> dosyasında dağıtılan bir 103 <em>üçüncü parti</em> Apache modülünü <code>mod_filanca.so</code> 104 isminde bir DSO modülü olarak derlemek ve kurmak için şöyle yapılır: 105 106 <div class="example"><p><code> 107 $ ./configure --add-module=<var>modül-türü</var>:/bir/kurulum/yeri/mod_filanca.c \<br /> 108 <span class="indent"> 109 --enable-filanca=shared<br /> 110 </span> 111 $ make install 112 </code></p></div> 113 </li> 114 115 <li>Paylaşımlı modülleri <em>sonradan kurmak için</em> Apache şöyle 116 yapılandırılır: 117 118 <div class="example"><p><code> 119 $ ./configure --enable-so<br /> 120 $ make install 121 </code></p></div> 122 </li> 123 124 <li>Kaynak dosyası <code>mod_filanca.c</code> dosyasında dağıtılan bir 125 <em>üçüncü parti</em> Apache modülü <code>mod_filanca.so</code> 126 isminde bir DSO modülü olarak Apache kaynak ağacının dışında 127 <code class="program"><a href="./programs/apxs.html">apxs</a></code> kullanarak derlemek ve kurmak için şöyle 128 yapılır: 129 130 <div class="example"><p><code> 131 $ cd /bir/kurulum/yeri<br /> 132 $ apxs -c mod_filanca.c<br /> 133 $ apxs -i -a -n filanca mod_filanca.la 134 </code></p></div> 135 </li> 136 </ol> 137 138 <p>Tüm durumlarda derlenen paylaşımlı modülü Apache’nin etkin kılabilmesi 139 için <code>httpd.conf</code> dosyasında o modül için bir <code class="directive"><a href="./mod/mod_so.html#loadmodule">LoadModule</a></code> yönergesi bulunmalıdır.</p> 140 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div> 141 <div class="section"> 142 <h2><a name="background" id="background">Artalan Bilgisi</a></h2> 143 144 <p>Günümüzün Unix türevlerinde var olan şık bir mekanizma sayesinde 145 çalıştırılabilir bir programın adres uzayına çalışma anında yüklenmek 146 veya ilintilenmek üzere <em>Devingen Paylaşımlı Nesneler</em> (DSO - 147 Dynamic Shared Object) adı verilen, özel bir biçem kullanarak kodlanmış 148 program parçaları oluşturulabilir.</p> 149 150 <p>Bu yükleme normalde iki yolla yapılabilir: Ya çalıştırılabilir 151 programın başlatılması sırasında yüklenen <code>ld.so</code> adlı bir 152 sistem programınının devingen olarak yüklenmesi ile ya da 153 çalıştırılabilir programın içinden Unix yükleyicisine programsal sistem 154 arayüzü sağlayan <code>dlopen()/dlsym()</code> sistem çağrılarının elle 155 yapılması suretiyle.</p> 156 157 <p>İlk yöntemde kullanılan DSO’lara genelde <em>paylaşımlı 158 kütüphaneler</em> veya <em>DSO kütüphaneleri</em> adı verilir ve 159 bunların dosyaları <code>libfilanca.so</code> veya 160 <code>libfilanca.so.1.2</code> biçiminde isimlendirilir. Belli bir 161 sistem dizininde (normalde <code>/usr/lib</code>) bulunurlar ve derleme 162 sırasında ilintileyici komutuna <code>-lfilanca</code> şeklinde 163 belirtilerek çalıştırılabilir programla ilintilenirler. Doğrudan 164 çalıştırılabilir koda eklenen bu kodlar Unix yükleyicisinin programın 165 başlatılması sırasında kütüphaneyi <code>/usr/lib</code> altında 166 <code>libfilanca.so</code> adıyla bulabilmesini sağlar. Kütüphanelerin 167 aranacağı yerler ya <code>-R</code> gibi bir ilintileyici seçeneği ile 168 koda eklenir ya da arama yolları <code>LD_LIBRARY_PATH</code> ortam 169 değişkeni aracılığıyla yapılandırılır. Böylece çalıştırılabilir 170 programda henüz çözümlenmemiş simgeler DSO içinde bulunarak 171 çözümlenebilir.</p> 172 173 <p>Çalıştırılabilir program içindeki simgelere normalde DSO içinden 174 atıfta bulunulmaz (genel kod kütüphanesinin başka programlarca da 175 kullanılması nedeniyle). Bu bakımdan DSO tarafında böyle bir çözümleme 176 yapılmaz. Çalıştırılabilir program da DSO’daki simgeleri kendisi 177 çözümlemeye uğraşmaz, bu işlemlerden tamamen Unix yükleyicisi 178 (<code>ld.so</code>) sorumludur. (Aslında, <code>ld.so</code>’yu 179 çağıracak kod, her çalıştırılabilir programın içine ilintilenmiş 180 (durağan değil) başlatma kodunun bir parçasıdır.) Programlar tarafından 181 ortaklaşa kullanılan kütüphanelerin devingen olarak yüklenmesinin sebebi 182 basittir: Kütüphane kodu <code>libc.so</code> gibi bir sistem 183 kütüphanesine bir kere kaydedilip disk alanından yer kazanılmış 184 olur.</p> 185 186 <p>İkinci yöntemde kullanılan DSO’lara yine <em>paylaşımlı 187 kütüphaneler</em> veya <em>DSO kütüphaneleri</em> adı verilir fakat 188 bunların dosyaları geçerli kabule göre <code>filanca.so</code> gibi 189 isimlendirilse de genelde keyfi olarak seçilen bir dosya uzantısı 190 kullanılarak isimlendirilirler. Bu dosyalar genellikle programa özel bir 191 dizinde dururlar ve bu dosyaları kullanacak olan çalıştırılabilir 192 programla aralarında özdevimli olarak bağ kurulmamıştır. Bunun yerine, 193 çalıştırılabilir program DSO’yu çalışma anında <code>dlopen()</code> 194 sayesinde kendi adres uzayına ekler. Çalıştırılabilir program için 195 DSO’daki simgeler bu sırada çözümlenmez. Özdevimli olarak devreye 196 giren Unix yükleyicisi, (varsa) artakalan simgeleri, çalıştırılabilir 197 ihraç edilen simge kümelerini (ve özellikle her yerde hazır ve nazır 198 <code>libc.so</code> içindeki tüm simgeleri) kullanarak çözümler. Bu 199 yolla DSO, çalıştırılabilir programın simge kümesi bilgilerini sanki 200 kendisine baştan durağan olarak ilintilenmiş gibi ulaşabilir.</p> 201 202 <p>Son olarak, DSO’nun programlama arayüzünün getirilerinden yararlanmak 203 amacıyla çalıştırılabilir program, daha sonra dağıtım tabloları vb. 204 yerlerde kullanmak üzere <code>dlsym()</code> üzerinden DSO’daki belli 205 simgeleri çözümlemek zorundadır. Başka bir deyişle: Çalıştırılabilir 206 program ihtiyaç duyduğu her simgeyi kullanmak için kendisi çözümleme 207 yapmak zorundadır. Böyle bir mekanizmanın getirisi, programın isteğe 208 bağlı parçalarının gerekli olana kadar yüklenmemesidir (böylece daha az 209 bellek alanı kullanılır). Gerektiği zaman programın işlevselliğini 210 arttırmak amacıyla bu parçalar devingen olarak programa 211 yüklenebilir.</p> 212 213 <p>DSO mekanizmasının bu basit gibi görünen işleyişinde zorluk içeren bir 214 adım şudur (başkaları da olabilir): Bir programın işlevselliğini 215 genişletmek için DSO kullanılırken (ikinci yöntem) çalıştırılabilir 216 programdan DSO için simgelerin çözümlenmesi. Zorluğun sebebi, 217 "tersine çözümleme" yapılmasıdır; çalıştırılabilir programın simge 218 kümesindeki DSO simgeleri kütüphane tasarımına aykırı bir şekilde 219 çözümlenir ve bu uygulama tüm platformlarda hazır olarak 220 desteklenmediği gibi standartlaşmış da değildir. Geçer uygulamada 221 çalıştırılabilir programın evrensel simgeleri çoğunlukla yeniden dışa 222 verilmez ve bu bakımdan bir DSO içinde kullanılmaları uygun değildir. 223 Esas sorun, çalıştırılabilir bir programın işlevselliğini çalışma 224 anında genişletmek için DSO kullanımı sırasında ilintileyicinin tüm 225 evrensel simgeleri dışa vermesini zorlamanın bir yolunu bulmaktır.</p> 226 227 <p>Paylaşımlı kütüphane yaklaşımı bu bakımdan türünün tek örneğidir, 228 çünkü DSO mekanizması özellikle bunun için tasarlanmıştır, dolayısıyla 229 işletim sisteminin sağladığı hemen hemen tüm kütüphaneler için 230 kullanılabilir. Diğer taraftan, bir programın işlevselliğini 231 genişletmek için paylaşımlı nesne kullanımı çoğu program tarafından 232 kullanılan bir şey değildir.</p> 233 234 <p>1998 itibariyle, DSO nesneleriyle çalışma anında çalıştırılabilir 235 program işlevselliğini genişleten başlıca birkaç yazılım paketi vardır: 236 Perl 5 (XS mekanizması ve DynaLoader modülü üzerinden), Netscape 237 Sunucusu, vd. 1.3 sürümünden itibaren Apache de bu gruba katıldı. Çünkü 238 Apache, modül kavramını zaten program işlevselliğini genişletmek için 239 kullanıyordu ve temel işlevselliğine dış modülleri ilintilemek için 240 dahili olarak dağıtım listesine dayalı bir yaklaşım kullanmaktaydı. 241 Dolayısıyla Apache, modüllerini çalışma anında yüklemek için DSO 242 kullanmaya baştan yazgılıydı.</p> 243 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div> 244 <div class="section"> 245 <h2><a name="advantages" id="advantages">Getiriler ve Götürüler</a></h2> 246 247 <p>Yukarıda bahsedilen DSO’ya dayalı özelliklerin getirileri 248 şunlardır:</p> 249 250 <ul> 251 <li>Sunucu paketi çalışma anında daha esnektir çünkü, asıl sunucuyu 252 oluşturan parçalar derleme sırasında <code class="program"><a href="./programs/configure.html">configure</a></code> 253 seçenekleriyle birleştirilmek yerine <code>httpd.conf</code> içinde 254 <code class="directive"><a href="./mod/mod_so.html#loadmodule">LoadModule</a></code> yönergeleri 255 sayesinde çalışma anında birleştirilebilmektedir. Bu yolla, örneğin 256 tek bir Apache kurulumuyla birbirinden farklı yapılandırmalara sahip 257 çok sayıda sunucu çalıştırmak mümkündür. (standart veya SSL sürümü; 258 basitleştirilmiş veya güçlendirilmiş sürümü [mod_perl, PHP3], 259 vs.)</li> 260 261 <li>Sunucu paketi kurulumdan sonra bile üçüncü parti modüllerle kolayca 262 genişletilebilir. Bu özellikle, bir Apache temel paketinin yanında 263 PHP3, mod_perl, mod_fastcgi gibi ek paketler oluşturan paket 264 dağıtıcılarına büyük yarar sağlar.</li> 265 266 <li>Yeni Apache modülleri için daha kolay prototip geliştirilebilir: 267 Modül kaynak kodunu DSO/<code class="program"><a href="./programs/apxs.html">apxs</a></code> çifti sayesinde 268 Apache kaynak ağacının dışında derleyip modülün yeni bir sürümünü bir 269 <code>apxs -i</code> komutunun ardından <code>apachectl 270 restart</code> yaparak çalışan bir Apache sunucusunda denemek daha 271 kolay hale getirilmiştir.</li> 272 </ul> 273 274 <p>DSO kullanımının götürüleri ise şunlardır:</p> 275 276 <ul> 277 <li>Her platformda hazır olarak desteklenmeme: Tüm işletim sistemleri 278 bir programa devingen olarak kod yükleme becerisine sahip 279 olmadığından DSO mekanizması her platformda kullanılamaz.</li> 280 281 <li>İlk yüklemede %20 yavaşlama: Unix yükleyicisi simgeleri çözümlemek 282 zorunda olduğundan sunucu ilk başlatılırken yaklaşık %20 daha yavaş 283 faaliyete geçer.</li> 284 285 <li>Çalışma sırasında % 5 yavaşlama: Konumdan bağımsız kodun (PIC - 286 Position Independent Code) göreli adresleme için karmaşık oyunlara 287 girmesi ve bunun mutlak adresleme kadar hızlı olmaması nedeniyle 288 sunucu bazı platformlarda çalışma anında yaklaşık %5 daha yavaş 289 çalışabilir.</li> 290 291 <li>DSO'nun tüm modüller için uygun olmaması: DSO modülleri bazı 292 platformlarda diğer DSO temelli kütüphanelerle ilintilenemediğinden 293 (<code>ld -lfilanca</code>) DSO mekanizmasını tüm modül türleri için 294 kullanamazsınız (örneğin a.out temelli platformlar bu işlevselliği 295 ELF temelli platformlar kadar iyi sağlamaz). Başka bir deyişle, DSO 296 dosyaları olarak derlenmiş modüllerin kullanabileceği simgeler ya 297 Apache temel kodunda vardır ya Apache temel kodunun kullandığı C 298 kütüphanesinde (<code>libc</code>) ve diğer durağan ve devingen 299 kütüphanelerde vardır ya da konumdan bağımsız kodu içeren 300 durağan kütüphane arşivlerinde (<code>libfilanca.a</code>) 301 vardır. Diğer modülleri kullanmak için tek şansınız ya Apache 302 çekirdeğinin modüle bir atıf içermesini sağlamak ya da modül kodunu 303 <code>dlopen()</code> vasıtasıyla yüklemektir.</li> 304 </ul> 305 306 </div></div> 307 <div class="bottomlang"> 308 <p><span>Mevcut Diller: </span><a href="./en/dso.html" hreflang="en" rel="alternate" title="English"> en </a> | 309 <a href="./ja/dso.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | 310 <a href="./ko/dso.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | 311 <a href="./tr/dso.html" title="Türkçe"> tr </a></p> 312 </div><div class="top"><a href="#page-header"><img src="./images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Yorum</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div> 313 <script type="text/javascript"><!--//--><![CDATA[//><!-- 314 var comments_shortname = 'httpd'; 315 var comments_identifier = 'http://httpd.apache.org/docs/2.2/dso.html'; 316 (function(w, d) { 317 if (w.location.hostname.toLowerCase() == "httpd.apache.org") { 318 d.write('<div id="comments_thread"><\/div>'); 319 var s = d.createElement('script'); 320 s.type = 'text/javascript'; 321 s.async = true; 322 s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; 323 (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); 324 } 325 else { 326 d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); 327 } 328 })(window, document); 329 //--><!]]></script></div><div id="footer"> 330 <p class="apache">Copyright 2017 The Apache Software Foundation.<br /><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> altında lisanslıdır.</p> 331 <p class="menu"><a href="./mod/">Modüller</a> | <a href="./mod/directives.html">Yönergeler</a> | <a href="http://wiki.apache.org/httpd/FAQ">SSS</a> | <a href="./glossary.html">Terimler</a> | <a href="./sitemap.html">Site Haritası</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!-- 332 if (typeof(prettyPrint) !== 'undefined') { 333 prettyPrint(); 334 } 335 //--><!]]></script> 336 </body></html>