2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
4 <!-- English Revision: 1174747:1433861 (outdated) -->
5 <!-- =====================================================
6 Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
7 Reviewed by: Orhan Berent <berent belgeler.org>
8 ========================================================== -->
11 Licensed to the Apache Software Foundation (ASF) under one or more
12 contributor license agreements. See the NOTICE file distributed with
13 this work for additional information regarding copyright ownership.
14 The ASF licenses this file to You under the Apache License, Version 2.0
15 (the "License"); you may not use this file except in compliance with
16 the License. You may obtain a copy of the License at
18 http://www.apache.org/licenses/LICENSE-2.0
20 Unless required by applicable law or agreed to in writing, software
21 distributed under the License is distributed on an "AS IS" BASIS,
22 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23 See the License for the specific language governing permissions and
24 limitations under the License.
27 <modulesynopsis metafile="mod_so.xml.meta">
30 <description>Modüllerin ve çalıştırılabilir kodun sunucunun başlatılması veya
31 yeniden başlatılması sırasında yüklenmesini sağlar.</description>
32 <status>Extension</status>
33 <sourcefile>mod_so.c</sourcefile>
34 <identifier>so_module</identifier>
35 <compatibility>Windows için bu bir temel modüldür (sunucu bunu daima içerir).</compatibility>
39 <p>Seçilen işletim sistemleri üzerinde bu modül Apache HTTP Sunucusunun
40 yeniden derlenmesini gerektirmeden modüllerin <a href="../dso.html"
41 >Devingen Paylaşımlı Nesne</a> (DSO) mekanizması üzerinden
42 kullanılabilmesini sağlar.</p>
44 <p>Unix’te yüklenen kod genellikle paylaşımlı nesne dosyalarından
45 (<code>.so</code> uzantılı dosyalar), Windows’ta ise ya <code>.so</code>
46 ya da <code>.dll</code> uzantılı dosyalardan gelir.</p>
48 <note type="warning"><title>Uyarı</title>
49 <p>Apache HTTP Sunucusunun ana sürümlerinden biri (1.3, 2.0, 2.2, 2.4 gibi)
50 için derlenmiş modüller genelde bir diğerinde çalışmaz. Genellikle
51 aralarında API değişikliği sözkonusu olduğundan çalışması için modüllerde
52 yeni sürüme göre değişiklik yapılması gerekir.</p>
56 <section id="windows">
57 <title>Yüklenebilir Modüllerin Windows için Oluşturulması</title>
59 <note><title>Bilginize</title>
60 <p>Windows üzeinde yüklenebilir dosyalar genelde <code>.dll</code> sonekini
61 alırlar. Apache httpd modülleri ise diğer platformlardaki gibi
62 <code>mod_filanca.so</code> biçeminde isimlendirilmektedir. Bununla
63 birlikte, üçüncü parti modüllerden bazılarının (PHP gibi) hala
64 <code>.dll</code> sonekini kullandığı görülmektedir.</p>
66 <p><code>mod_so</code> modülü <code>ApacheModuleFoo.dll</code> biçeminde
67 isimlendirilmiş modülleri hala yüklemekteyse de yeni adlandırma uzlaşımı
68 tercih edilmelidir. Yüklenebilir modülleri 2.0’a dönüştürüyorsanız,
69 lütfen isimlerini de 2.0 uzlaşımına uygun hale getiriniz.</p></note>
71 <p>Apache httpd modül programlama arayüzü Unix ve Windows sürümleri
72 arasında değişiklik göstermez. Unix için kullanılan çoğu modül hiç
73 değişiklik yapmadan ya da çok küçük bir değişiklikle Windows’ta da
74 çalışmaktadır. Çalışmayanlar Unix platformunun sahip olduğu ancak Windows
75 platformunun sahip olmadığı nitelikleri kullanan modüllerdir.</p>
77 <p>Bir modül Windows’ta çalıştığı zaman, sunucuya iki şekilde
78 yüklenebilir. Unix’te olduğu gibi, doğrudan sunucunun içinde
79 derlenebilir. Windows için hazırlanan Apache httpd paketi, Unix için
80 geçerli olan <code>Configure</code> betiğini içermediğinden modülün
81 kaynak dosyası ApacheCore proje dosyasına, sembolleri de
82 <code>os\win32\modules.c</code> dosyasına eklenmelidir.</p>
84 <p>İkinci yol ise modülü bir paylaşımlı kütüphane olarak çalışma anında
85 <directive module="mod_so">LoadModule</directive> yönergesi ile yüklemek
86 için bir DLL olarak derlemektir. Bu DLL modüller dağıtılabilir ve
87 sunucuyu yeniden derlemek gerekmeksizin her Windows için Apache httpd
88 kurulumunda çalışabilir.</p>
90 <p>Bir modül DLL’i oluşturmak için modülün kaynak dosyasında küçük bir
91 değişiklik yapmak gerekir: Modül kaydının daha sonra oluşturulacak olan
92 DLL’den ihraç edilebilmesi gerekir (aşağıya bakınız). Bunu yapmak için
93 modülün modül kaydı tanımına (Apache httpd başlık dosyalarında
94 tanımlanmış olan) <code>AP_MODULE_DECLARE_DATA</code> eklenmelidir.
95 Örneğin, modülünüz</p>
101 <p>diye bir satır içeriyorsa bunu,</p>
104 module AP_MODULE_DECLARE_DATA foo_module;
107 <p>olarak değiştirmelisiniz. Bunun yalnız Windows üzerinde etkili olduğunu
108 ve Unix için modül kodunda bir değişiklik gerekmediğini unutmayınız.
109 Ayrıca, <code>.DEF</code> dosyaları hakkında bilgi sahibi iseniz modül
110 kodunda değişiklik yapmak yerine modül kaydını bu yöntemle de ihraç
113 <p>Artık modülü içeren bir DLL oluşturmaya hazırsınız. Bunu, libhttpd.dll
114 paylaşımlı kütüphanesi derlenirken oluşturulan libhttpd.lib ihraç
115 kütüphanesi ile ilintilemeniz gerekecektir. Ayrıca, Apache httpd başlık
116 dosyalarının doğru konumlandığından emin olmak için derleyici
117 seçeneklerinde değişiklik yapmanız gerekebilir. Bu kütüphaneyi
118 sunucunuzun kök dizini altındaki <code>modules</code> dizininde
119 bulabilirsiniz. En iyisi derleme ortamının doğru yapılandırıldığından
120 emin olmak için ya ağaçta mevcut modüllerden birinin <code>.dsp</code>
121 dosyasını gaspedersiniz ya da kendi <code>.dsp</code> dosyanızın
122 ilintileme seçenekleriyle derleyicininkileri karşılaştırırsınız.</p>
124 <p>Artık modülünüzün DLL sürümünü oluşturmalısınız. DLL’i sunucunuzun kök
125 dizininin altında bulunan <code>modules</code> dizinine yerleştirdikten
126 sonra <directive>LoadModule</directive> yönergesi ile sunucunuza
127 yükleyebilirsiniz.</p>
132 <name>LoadFile</name>
133 <description>Belirtilen nesne dosyasını veya kütüphaneyi sunucu ile ilintiler.
135 <syntax>LoadFile <em>dosya-ismi</em> [<em>dosya-ismi</em>] ...</syntax>
137 <context>server config</context>
142 <p><directive>LoadFile</directive> yönergesi ismi belirtilen kütüphaneleri
143 veya nesne dosyalarını sunucu başlatılırken veya yeniden başlatılırken
144 sunucu ile ilintiler. Yönerge, bazı modüllerin çalışması sırasında
145 gereken ek kodların yüklenmesi için kullanılır.
146 <code><em>dosya-ismi</em></code> olarak mutlak bir dosya yolu
147 belirtilebileceği gibi <directive module="core">ServerRoot</directive>’a
148 göreli bir dosya yolu da belirtilebilir.</p>
152 <example>LoadFile libexec/libxmlparse.so</example>
158 <name>LoadModule</name>
159 <description>Belirtilen nesne dosyasını veya kütüphaneyi sunucu ile ilintiler
160 ve etkin modül listesine ekler.</description>
161 <syntax>LoadModule <em>modül dosya-ismi</em></syntax>
163 <context>server config</context>
167 <p><directive>LoadModule</directive> yönergesi
168 <code><em>dosya-ismi</em></code> ile belirtilen nesne dosyasını veya
169 kütüphaneyi sunucu ile ilintiler ve etkin modül listesine belirtilen
170 <code><em>modül</em></code> ismiyle ekler. <code><em>modül</em></code>,
171 modülün kaynak dosyasında <code>module</code> türündeki tek harici
172 değişkenin ismi olup modül belgelerinde <a
173 href="module-dict.html#ModuleIdentifier" >Modül Betimleyici</a> olarak
177 LoadModule status_module modules/mod_status.so
180 <p>satırı ile ismi belirtilen dosya <directive
181 module="core">ServerRoot</directive> dizini altındaki
182 <code>modules</code> alt dizininden yüklenir.</p>