Apache HTTP Sunucusu Sürüm 2.4

apxs, 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
     dosyasından bir devingen paylaşımlı nesne (DSO - "Dynamic
     Shared Object" kısaltması) derlemek ve bu nesneyi (modülü) Apache
     sunucusuna çalışma anında mod_so
     modülünün LoadModule yönergesi üzerinden yüklemek mümkün
     olmaktadır.
Bu eklenti mekanizmasını platformunuzda kullanmak için DSO desteğinin
     olması ve httpd programının
     mod_so modülünü içerecek şekilde
     derlenmiş olması gerekir. Eğer bunlar mevcut değilse
     apxs aracı durumu size bildirecektir. Bunu
     aşağıdaki komutla kendiniz de sınayabilirsiniz:
      $ httpd -l
    
mod_so modülü gösterilen listede yer
     almalıdır. Bu gereksinimler sağlandığı takdirde
     apxs aracı sayesinde DSO mekanizması
     üzerinden kendi modüllerinizi kurmak suretiyle Apache sunucunuzun
     işlevselliğini kolayca arttırabilirsiniz. Örnek bir uygulama:
      $ apxs -i -a -c mod_foo.c
      gcc -fpic -DSHARED_MODULE -I/dosya/yolu/apache/include -c mod_foo.c
      ld -Bshareable -o mod_foo.so mod_foo.o
      cp mod_foo.so /dosya/yolu/apache/modules/mod_foo.so
      chmod 755 /dosya/yolu/apache/modules/mod_foo.so
      [`foo' modülü /dosya/yolu/apache/etc/apache2.conf'ta etkinleştiriliyor]
      $ apache2ctl restart
      /dosya/yolu/apache/sbin/apache2ctl restart: httpd not running, trying to start
      [Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): loaded module foo_module
      /dosya/yolu/apache/sbin/apache2ctl restart: httpd started
      $ _
    
dosya olarak bir C kaynak dosyası (.c), bir nesne dosyası
     (.o) ve hatta bir kütüphane arşivi archive (.a) belirtebilirsiniz.
     apxs 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 -fpic seçeneği ile
     kullanmalısınız. Diğer C derleyiciler için,
     apxs'in nesne dosyalarını derlerken
     kullanacağı seçenekleri öğrenmek için o derleyicilerin kılavuz
     sayfalarına bakınız.
Apache'deki DSO desteği ile ilgili daha ayrıntılı bilgi edinmek için
     mod_so belgesini okumakla yetinmeyip
     src/modules/standard/mod_so.c kaynak dosyasını da
     okuyunuz.
apxs -g
    [ -S isim=değer ]
    -n modüladı
apxs -q
    [ -v ]
    [ -S isim=değer ]
    sorgu ...
apxs -c
    [ -S isim=değer ]
    [ -o dso-dosyası ]
    [ -I include-dizini ]
    [ -D isim=değer ]
    [ -L lib-dizini ]
    [ -l kütüphane-adı ]
    [ -Wc,derleyici-seçenekleri ]
    [ -Wl,ilintileyici-seçenekleri ]
    [ -p ]
    dosya ...
apxs -i
    [ -S isim=değer ]
    [ -n modüladı ]
    [ -a ]
    [ -A ]
    dso-dosyası ...
apxs -e
    [ -S isim=değer ]
    [ -n modüladı ]
    [ -a ]
    [ -A ]
    dso-dosyası ...
-n modüladı-i (kurulum) ve
         -g (ş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.
         -g seçeneği için bu gereklidir.
         -i 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.-q sorguhttpd'yi derlemekte kullanılacak değişkenler ve
         ortam ayarları için bir sorgu gerçekleştirir.  When invoked without
         sorgu belirtilmeksizin çağrıldığında, bilinen
         değişkenleri değerleriyle birlikte basar. İsteğe bağlı
         -v seçeneği liste çıktısını biçemler.
         Modülünüzü yükleyecek httpd'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:
          INC=-I`apxs -q INCLUDEDIR`
        
-S isim=değerapxs
        ayarlarını değiştirir.-gmodüladı (-n
       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
       apxs mekanizmaları ile hemen oynamaya
       başlayabilmeniz için mod_modüladı.c adında bir
       modül kaynak dosyası örneği ve bu modülü derleyip kurmayı
       kolaylaştırmak için bir Makefile dosyası.-c-o seçeneği ile
       modül ismi belirtilmemişse dosyalar arasındaki ilk dosyanın
       ismine bakarak dosya ismi tahmin edilmeye çalışılır ve
       mod_isim.so dosya adı bu isimden elde
       edilir.-o dso-dosyasımod_unknown.so ismi kullanılır.-D isim=değer-I include-dizini-L lib-dizini-l kütüphane-adı-Wc,derleyici-seçeneklerilibtool --mode=compile 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.-Wl,ilintileyici-seçeneklerilibtool --mode=link 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.-p-i-aLoadModule satırını
       Apache'nin apache2.conf yapılandırma dosyasına özdevinimli
       olarak ekleyerek veya böyle bir satır varsa bunu etkin kılarak modülü
       etkinleştirir.-ALoadModule
       yönergesini daha sonra etkinleştirmek üzere satırın başına bir diyez
       imi (#) yerleştirmesi dışında
       -a seçeneği ile aynıdır.-eapache2.conf
       yapılandırma dosyasını -i işlemine
       benzer şekilde -a ve
       -A seçenekleri ile düzenleme işlemini
       belirtir.Apache'nin sunucu işlevselliğini genişletmek amacıyla kullanacağınız
     mod_foo.c 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:
      $ apxs -c mod_foo.c
      /dosya/yolu/libtool --mode=compile gcc ... -c mod_foo.c
      /dosya/yolu/libtool --mode=link gcc ... -o mod_foo.la mod_foo.slo
      $ _
    
Bundan sonra, Apache yapılandırmanızın bu paylaşımlı nesneyi yüklemek
     için bir LoadModule yönergesi içermesini
     sağlamalısınız. apxs bu adımı
     basitleştirmek amacıyla, paylaşımlı nesneyi sunucunun modules
     dizinine özdevinimli olarak kurmak ve apache2.conf dosyasını
     buna uygun olarak güncellemek için bir yol sağlar. Bu sonuç şöyle elde
     edilebilir:
      $ apxs -i -a mod_foo.la
      /dosya/yolu/instdso.sh mod_foo.la /path/to/apache/modules
      /dosya/yolu/libtool --mode=install cp mod_foo.la /dosya/yolu/apache/modules
      ...
      chmod 755 /dosya/yolu/apache/modules/mod_foo.so
      [`foo' modülü /dosya/yolu/apache/conf/apache2.conf'da etkinleştiriliyor] 
      $ _
    
Yapılandıma dosyasına (eğer yoksa) şu satır eklenir:
      LoadModule foo_module modules/mod_foo.so
    
Bunu öntanımlı olarak iptal etmek isterseniz
     -A seçeneğini kullanmanız gerekir:
      $ apxs -i -A mod_foo.c
    
apxs mekanizmalarını hızlıca denemek
     için örnek bir Apache modül şablonunu ve bir Makefile dosyasını şöyle
     oluşturabilirsiniz:
      $ apxs -g -n foo
      Creating [DIR]  foo
      Creating [FILE] foo/Makefile
      Creating [FILE] foo/modules.mk
      Creating [FILE] foo/mod_foo.c
      Creating [FILE] foo/.deps
      $ _
    
Ardından bu örnek modülü bir paylaşımlı nesne olarak derleyip Apache sunucusuna yükleyebilirsiniz:
      $ cd foo
      $ make all reload
      apxs -c mod_foo.c
      /dosya/yolu/libtool --mode=compile gcc ... -c mod_foo.c
      /dosya/yolu/libtool --mode=link gcc ... -o mod_foo.la mod_foo.slo
      apxs -i -a -n "foo" mod_foo.la
      /dosya/yolu/instdso.sh mod_foo.la /dosya/yolu/apache/modules
      /dosya/yolu/libtool --mode=install cp mod_foo.la /dosya/yolu/apache/modules
      ...
       chmod 755 /dosya/yolu/apache/modules/mod_foo.so
      [`foo' modülü /dosya/yolu/apache/conf/apache2.conf'ta etkinleştiriliyor]
       apache2ctl restart
       /dosya/yolu/apache/sbin/apache2ctl restart: httpd not running, trying to start
      chmod 755 /dosya/yolu/apache/modules/mod_foo.so
      [`foo' modülü /dosya/yolu/apache/etc/apache2.conf'ta etkinleştiriliyor]
      apache2ctl restart
      /dosya/yolu/apache/sbin/apache2ctl restart: httpd not running, trying to start
      [Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): loaded module foo_module
      /dosya/yolu/apache/sbin/apache2ctl restart: httpd started
      $ _