summaryrefslogtreecommitdiff
path: root/docs/manual/programs/apxs.xml.tr
blob: 352f95329edeb02886f57eeaca6ad22494f4b569 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
<!-- English Revision: 1174747:1494952 (outdated) -->
<!-- =====================================================
 Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
   Reviewed by: Orhan Berent <berent belgeler.org>
========================================================== -->

<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->

<manualpage metafile="apxs.xml.meta">
<parentdocument href="./">Programlar</parentdocument>

<title>apxs - Apache Eklenti Aracı</title>

<summary>
    <p><code><strong>apxs</strong></code>, Apache Hiper Metin Aktarım
     Protokolü (HTTP) sunucusu için ek modül derleme ve kurulum aracıdır. Bu
     araç sayesinde, bir veya daha fazla kaynak veya nesne
     <var>dosya</var>sından bir devingen paylaşımlı nesne (DSO - "Dynamic
     Shared Object" kısaltması) derlemek ve bu nesneyi (modülü) Apache
     sunucusuna çalışma anında <strong><module>mod_so</module></strong>
     modülünün <strong><directive module="mod_so"
     >LoadModule</directive></strong> yönergesi üzerinden yüklemek mümkün
     olmaktadır.</p>

    <p>Bu eklenti mekanizmasını platformunuzda kullanmak için DSO desteğinin
     olması ve <strong><program>httpd</program></strong> programının
     <strong><module>mod_so</module></strong> modülünü içerecek şekilde
     derlenmiş olması gerekir. Eğer bunlar mevcut değilse
     <strong><code>apxs</code></strong> aracı durumu size bildirecektir. Bunu
     aşağıdaki komutla kendiniz de sınayabilirsiniz:</p>

    <example>
      $ httpd -l
    </example>

    <p><strong><module>mod_so</module></strong> modülü gösterilen listede yer
     almalıdır. Bu gereksinimler sağlandığı takdirde
     <strong><code>apxs</code></strong> aracı sayesinde DSO mekanizması
     üzerinden kendi modüllerinizi kurmak suretiyle Apache sunucunuzun
     işlevselliğini kolayca arttırabilirsiniz. Örnek bir uygulama:</p>

    <example>
      $ apxs -i -a -c mod_foo.c<br />
      gcc -fpic -DSHARED_MODULE -I/dosya/yolu/apache/include -c mod_foo.c<br />
      ld -Bshareable -o mod_foo.so mod_foo.o<br />
      cp mod_foo.so /dosya/yolu/apache/modules/mod_foo.so<br />
      chmod 755 /dosya/yolu/apache/modules/mod_foo.so<br />
      [`foo' modülü /dosya/yolu/apache/etc/httpd.conf'ta etkinleştiriliyor]<br />
      $ apachectl restart<br />
      /dosya/yolu/apache/sbin/apachectl restart: httpd not running, trying to start<br />
      [Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): loaded module foo_module<br />
      /dosya/yolu/apache/sbin/apachectl restart: httpd started<br />
      $ _
    </example>

    <p><var>dosya</var> olarak bir C kaynak dosyası (.c), bir nesne dosyası
     (.o) ve hatta bir kütüphane arşivi archive (.a) belirtebilirsiniz.
     <strong><code>apxs</code></strong> aracı bu dosya uzantılarını
     tanıdığından C dosyalarını derleme işleminden, arşiv ve nesne
     dosyalarını ise doğrudan ilintileme işleminden geçirir. Fakat böyle
     önceden derlenmiş nesne dosyalarını kullanırken, devingen paylaşımlı
     nesne olarak kullanılmalarını sağlamak üzere konumdan bağımsız kod (PIC)
     üretecek şekilde derlenmiş olduklarından emin olmalısınız. Örneğin
     GCC'yi bunun için daima <strong><code>-fpic</code></strong> seçeneği ile
     kullanmalısınız. Diğer C derleyiciler için,
     <strong><code>apxs</code></strong>'in nesne dosyalarını derlerken
     kullanacağı seçenekleri öğrenmek için o derleyicilerin kılavuz
     sayfalarına bakınız.</p>

    <p>Apache'deki DSO desteği ile ilgili daha ayrıntılı bilgi edinmek için
     <strong><module>mod_so</module></strong> belgesini okumakla yetinmeyip
     <code>src/modules/standard/mod_so.c</code> kaynak dosyasını da
     okuyunuz.</p>
</summary>
<seealso><program>apachectl</program></seealso>
<seealso><program>httpd</program></seealso>

<section id="synopsis"><title>Kullanım</title>
    <p><code><strong>apxs</strong> -<strong>g</strong>
    [ -<strong>S</strong> <var>isim=değer</var> ]
    -<strong>n</strong> <var>modüladı</var></code></p>

    <p><code><strong>apxs</strong> -<strong>q</strong>
    [ -<strong>v</strong> ]
    [ -<strong>S</strong> <var>isim=değer</var> ]
    <var>sorgu</var> ...</code></p>

    <p><code><strong>apxs</strong> -<strong>c</strong>
    [ -<strong>S</strong> <var>isim=değer</var> ]
    [ -<strong>o</strong> <var>dso-dosyası</var> ]
    [ -<strong>I</strong> <var>include-dizini</var> ]
    [ -<strong>D</strong> <var>isim=değer</var> ]
    [ -<strong>L</strong> <var>lib-dizini</var> ]
    [ -<strong>l</strong> <var>kütüphane-adı</var> ]
    [ -<strong>Wc,</strong><var>derleyici-seçenekleri</var> ]
    [ -<strong>Wl,</strong><var>ilintileyici-seçenekleri</var> ]
    <var>dosya</var> ...</code></p>

    <p><code><strong>apxs</strong> -<strong>i</strong>
    [ -<strong>S</strong> <var>isim=değer</var> ]
    [ -<strong>n</strong> <var>modüladı</var> ]
    [ -<strong>a</strong> ]
    [ -<strong>A</strong> ]
    <var>dso-dosyası</var> ...</code></p>

    <p><code><strong>apxs</strong> -<strong>e</strong>
    [ -<strong>S</strong> <var>isim=değer</var> ]
    [ -<strong>n</strong> <var>modüladı</var> ]
    [ -<strong>a</strong> ]
    [ -<strong>A</strong> ]
    <var>dso-dosyası</var> ...</code></p>
</section>

<section id="options"><title>Seçenekler</title>
    <section id="options.common"><title>Ortak Seçenekler</title>
      <dl>
        <dt><code><strong>-n</strong> <var>modüladı</var></code></dt>
        <dd><code><strong>-i</strong></code> (kurulum) ve
         <code><strong>-g</strong></code> (şablon üretimi)
         seçenekleri için modül ismi belirtmek amacıyla kullanılır. Bir modül
         ismi belirtmek için bu seçeneği kullanın.
         <code><strong>-g</strong></code> seçeneği için bu gereklidir.
         <code><strong>-i</strong></code> seçeneği için ise araç, modül
         ismini kaynağın ismine bakarak veya (son çare olarak) dosya isminden
         tahmin etmeye çalışarak saptamaya çalışır.</dd>
      </dl>
    </section>

    <section id="options.query"><title>Sorgu Seçenekleri</title>
      <dl>
        <dt><code><strong>-q</strong> <var>sorgu</var></code></dt>
        <dd><code>httpd</code>'yi derlemekte kullanılacak değişkenler ve
         ortam ayarları için bir sorgu gerçekleştirir.  When invoked without
         <code><var>sorgu</var></code> belirtilmeksizin çağrıldığında, bilinen
         değişkenleri değerleriyle birlikte basar. İsteğe bağlı
         <code><strong>-v</strong></code> seçeneği liste çıktısını biçemler.

         <p>Modülünüzü yükleyecek <code><strong>httpd</strong></code>'yi
          derlemek için kullanılacak ayarları elle belirtmek için kullanılır.
          Örneğin, Apache'nin C başlık dosyalarının yerini kendi Makefile
          dosyalarınızın içinde şöyle belirtebilirsiniz:</p>
        <example>
          INC=-I`apxs -q INCLUDEDIR`
        </example></dd>
      </dl>
    </section>

    <section id="options.conf"><title>Yapılandırma Seçenekleri</title>
      <dl>
      <dt><code><strong>-S</strong> <var>isim=değer</var></code></dt>
      <dd>Bu seçenek yukarıda açıklanan <code><strong>apxs</strong></code>
        ayarlarını değiştirir.</dd>
      </dl>
    </section>

    <section id="options.template"><title>Şablon Üretme Seçenekleri</title>
      <dl>
      <dt><code><strong>-g</strong></code></dt>
      <dd><code><var>modüladı</var></code> (<strong><code>-n</code></strong>
       seçeneğine bakınız) adında bir alt dizin oluşturur ve içine iki dosya
       yerleştirir: Kendi modülünüzü oluşturabilmeniz için veya
       <code><strong>apxs</strong></code> mekanizmaları ile hemen oynamaya
       başlayabilmeniz için <code>mod_<var>modüladı</var>.c</code> adında bir
       modül kaynak dosyası örneği ve bu modülü derleyip kurmayı
       kolaylaştırmak için bir <code>Makefile</code> dosyası.</dd>
      </dl>
    </section>

    <section id="options.dso"><title>DSO Derleme Seçenekleri</title>
      <dl>
      <dt><code><strong>-c</strong></code></dt>
      <dd>Bu seçenek derleme yapılacağını belirtir. Önce belirtilen C kaynak
       <var>dosyalar</var>ını (.c), nesne dosyalarını (.o) elde etmek için
       derler. Sonra bunları kalan nesne dosyaları (.o ve .a) ile
       ilintileyerek <var>dso-dosyası</var> adında bir devingen paylaşımlı
       nesne oluşturur. Eğer <strong><code>-o</code></strong> seçeneği ile
       modül ismi belirtilmemişse <var>dosyalar</var> arasındaki ilk dosyanın
       ismine bakarak dosya ismi tahmin edilmeye çalışılır ve
       <code>mod_<var>isim</var>.so</code> dosya adı bu isimden elde
       edilir.</dd>

      <dt><code><strong>-o</strong> <var>dso-dosyası</var></code></dt>
      <dd>Oluşturulacak devingen paylaşımlı nesnenin ismini belirtmek için
       kullanılır. Modül ismi bu seçenekle belirtilmez ve <var>dosya</var>
       listesinden bir isim tahmini de yapılamazsa son çare olarak
       <code>mod_unknown.so</code> ismi kullanılır.</dd>

      <dt><code><strong>-D</strong> <var>isim=değer</var></code></dt>
      <dd>Bu seçenek doğrudan derleme komutlarına aktarılır. Bu seçeneği
       derleme işlemine kendi tanımlarınızı belirtmek için kullanın.</dd>

      <dt><code><strong>-I</strong> <var>include-dizini</var></code></dt>
      <dd>Bu seçenek doğrudan derleme komutlarına aktarılır. Bu seçeneği
       derleme işleminde kullanılmak üzere kendi başlık dosyalarınızı içeren
       dizinleri arama yollarına eklemek için kullanın.</dd>

      <dt><code><strong>-L</strong> <var>lib-dizini</var></code></dt>
      <dd>Bu seçenek doğrudan derleme komutlarına aktarılır. Bu seçeneği
       derleme işleminde kullanılmak üzere kendi kütüphane dizinlerinizi
       arama yollarına eklemek için kullanın.</dd>

      <dt><code><strong>-l</strong> <var>kütüphane-adı</var></code></dt>
      <dd>Bu seçenek doğrudan derleme komutlarına aktarılır. Bu seçeneği
       derleme işleminde kullanılmak üzere kendi kütüphanelerinizi arama
       yollarına eklemek için kullanın.</dd>

      <dt><code><strong>-Wc</strong>,<var>derleyici-seçenekleri</var></code></dt>
      <dd>Bu seçenek <code>libtool --mode=compile</code> komutuna doğrudan
       seçenek aktarmak için kullanılır. Bu seçeneği yerel derleyiciniz için
       gereken ek seçenekleri belirtmek için kullanın.</dd>

      <dt><code><strong>-Wl</strong>,<var>ilintileyici-seçenekleri</var></code></dt>
      <dd>Bu seçenek <code>libtool --mode=link</code> komutuna doğrudan
       seçenek aktarmak için kullanılır. Bu seçeneği yerel ilintileyiciniz
       için gereken ek seçenekleri belirtmek için kullanın.</dd>
      </dl>
    </section>

    <section id="options.dsoinstall">
    <title>DSO Kurulum ve Yapılandırma Seçenekleri</title>
      <dl>
      <dt><code><strong>-i</strong></code></dt>
      <dd>Kurulum işlemini belirtir ve devingen olarak paylaşımlı nesneleri
       sunucunun <var>modules</var> dizinine kurar.</dd>

      <dt><code><strong>-a</strong></code></dt>
      <dd>İlgili <directive module="mod_so">LoadModule</directive> satırını
       Apache'nin <code>httpd.conf</code> yapılandırma dosyasına özdevinimli
       olarak ekleyerek veya böyle bir satır varsa bunu etkin kılarak modülü
       etkinleştirir.</dd>

      <dt><code><strong>-A</strong></code></dt>
      <dd><strong><directive module="mod_so">LoadModule</directive></strong>
       yönergesini daha sonra etkinleştirmek üzere satırın başına bir diyez
       imi (<code>#</code>) yerleştirmesi dışında
       <strong><code>-a</code></strong> seçeneği ile aynıdır.</dd>

      <dt><code><strong>-e</strong></code></dt>
      <dd>Modülü kurmaya çalışmaksızın Apache'nin <code>httpd.conf</code>
       yapılandırma dosyasını <strong><code>-i</code></strong> işlemine
       benzer şekilde <strong><code>-a</code></strong> ve
       <strong><code>-A</code></strong> seçenekleri ile düzenleme işlemini
       belirtir.</dd>
      </dl>
    </section>
</section>

<section id="examples"><title>Örnekler</title>
    <p>Apache'nin sunucu işlevselliğini genişletmek amacıyla kullanacağınız
     <code>mod_foo.c</code> adında bir Apache modülünüz olduğunu varsayalım.
     Öncelikle, C kaynak dosyasını, Apache sunucusuna çalışma anında
     yüklenmeye uygun bir paylaşımlı nesne olarak derlemeniz gerekir. Bunu
     sağlamak için şu komutları vermelisiniz:</p>

    <example>
      $ apxs -c mod_foo.c<br />
      /dosya/yolu/libtool --mode=compile gcc ... -c mod_foo.c<br />
      /dosya/yolu/libtool --mode=link gcc ... -o mod_foo.la mod_foo.slo<br />
      $ _
    </example>

    <p>Bundan sonra, Apache yapılandırmanızın bu paylaşımlı nesneyi yüklemek
     için bir <strong><directive
     module="mod_so">LoadModule</directive></strong> yönergesi içermesini
     sağlamalısınız. <strong><code>apxs</code></strong> bu adımı
     basitleştirmek amacıyla, paylaşımlı nesneyi sunucunun <var>modules</var>
     dizinine özdevinimli olarak kurmak ve <code>httpd.conf</code> dosyasını
     buna uygun olarak güncellemek için bir yol sağlar. Bu sonuç şöyle elde
     edilebilir:</p>

    <example>
      $ apxs -i -a mod_foo.la<br />
      /dosya/yolu/instdso.sh mod_foo.la /path/to/apache/modules<br />
      /dosya/yolu/libtool --mode=install cp mod_foo.la /dosya/yolu/apache/modules
      ...
      chmod 755 /dosya/yolu/apache/modules/mod_foo.so<br />
      [`foo' modülü /dosya/yolu/apache/conf/httpd.conf'da etkinleştiriliyor] <br />
      $ _
    </example>

    <p>Yapılandıma dosyasına (eğer yoksa) şu satır eklenir:</p>

    <example>
      LoadModule foo_module modules/mod_foo.so
    </example>

    <p>Bunu öntanımlı olarak iptal etmek isterseniz
     <strong><code>-A</code></strong> seçeneğini kullanmanız gerekir:</p>

    <example>
      $ apxs -i -A mod_foo.c
    </example>

    <p><strong><code>apxs</code></strong> mekanizmalarını hızlıca denemek
     için örnek bir Apache modül şablonunu ve bir Makefile dosyasını şöyle
     oluşturabilirsiniz:</p>

    <example>
      $ apxs -g -n foo<br />
      Creating [DIR]  foo<br />
      Creating [FILE] foo/Makefile<br />
      Creating [FILE] foo/modules.mk<br />
      Creating [FILE] foo/mod_foo.c<br />
      Creating [FILE] foo/.deps<br />
      $ _
    </example>

    <p>Ardından bu örnek modülü bir paylaşımlı nesne olarak derleyip Apache
     sunucusuna yükleyebilirsiniz:</p>

    <example>
      $ cd foo<br />
      $ make all reload<br />
      apxs -c mod_foo.c<br />
      /dosya/yolu/libtool --mode=compile gcc ... -c mod_foo.c<br />
      /dosya/yolu/libtool --mode=link gcc ... -o mod_foo.la mod_foo.slo<br />
      apxs -i -a -n "foo" mod_foo.la<br />
      /dosya/yolu/instdso.sh mod_foo.la /dosya/yolu/apache/modules<br />
      /dosya/yolu/libtool --mode=install cp mod_foo.la /dosya/yolu/apache/modules
      ...
       chmod 755 /dosya/yolu/apache/modules/mod_foo.so<br />
      [`foo' modülü /dosya/yolu/apache/conf/httpd.conf'ta etkinleştiriliyor]<br />
       apachectl restart<br />
       /dosya/yolu/apache/sbin/apachectl restart: httpd not running, trying to start<br />
      chmod 755 /dosya/yolu/apache/modules/mod_foo.so<br />
      [`foo' modülü /dosya/yolu/apache/etc/httpd.conf'ta etkinleştiriliyor]<br />
      apachectl restart<br />
      /dosya/yolu/apache/sbin/apachectl restart: httpd not running, trying to start<br />
      [Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): loaded module foo_module<br />
      /dosya/yolu/apache/sbin/apachectl restart: httpd started<br />
      $ _
    </example>

</section>
</manualpage>