Apache HTTP Sunucusu Sürüm 2.4

| Açıklama: | Modüllerin ve çalıştırılabilir kodun sunucunun başlatılması veya yeniden başlatılması sırasında yüklenmesini sağlar. | 
|---|---|
| Durum: | Eklenti | 
| Modül Betimleyici: | so_module | 
| Kaynak Dosyası: | mod_so.c | 
| Uyumluluk: | Windows için bu bir temel modüldür (sunucu bunu daima içerir). | 
Seçilen işletim sistemleri üzerinde bu modül Apache HTTP Sunucusunun yeniden derlenmesini gerektirmeden modüllerin Devingen Paylaşımlı Nesne (DSO) mekanizması üzerinden kullanılabilmesini sağlar.
Unix’te yüklenen kod genellikle paylaşımlı nesne dosyalarından
      (.so uzantılı dosyalar), Windows’ta ise ya .so
      ya da .dll uzantılı dosyalardan gelir.
Apache HTTP Sunucusunun ana sürümlerinden biri (1.3, 2.0, 2.2, 2.4 gibi) için derlenmiş modüller genelde bir diğerinde çalışmaz. Genellikle aralarında API değişikliği sözkonusu olduğundan çalışması için modüllerde yeni sürüme göre değişiklik yapılması gerekir.
Windows üzeinde yüklenebilir dosyalar genelde .dll sonekini
      alırlar. Apache httpd modülleri ise diğer platformlardaki gibi
      mod_filanca.so biçeminde isimlendirilmektedir. Bununla
      birlikte, üçüncü parti modüllerden bazılarının (PHP gibi) hala
      .dll sonekini kullandığı görülmektedir.
mod_so modülü  ApacheModuleFoo.dll biçeminde
      isimlendirilmiş modülleri hala yüklemekteyse de yeni adlandırma uzlaşımı
      tercih edilmelidir. Yüklenebilir modülleri 2.0’a dönüştürüyorsanız,
      lütfen isimlerini de 2.0 uzlaşımına uygun hale getiriniz.
Apache httpd modül programlama arayüzü Unix ve Windows sürümleri arasında değişiklik göstermez. Unix için kullanılan çoğu modül hiç değişiklik yapmadan ya da çok küçük bir değişiklikle Windows’ta da çalışmaktadır. Çalışmayanlar Unix platformunun sahip olduğu ancak Windows platformunun sahip olmadığı nitelikleri kullanan modüllerdir.
Bir modül Windows’ta çalıştığı zaman, sunucuya iki şekilde
      yüklenebilir. Unix’te olduğu gibi, doğrudan sunucunun içinde
      derlenebilir. Windows için hazırlanan Apache httpd paketi, Unix için
      geçerli olan  Configure betiğini içermediğinden modülün
      kaynak dosyası ApacheCore proje dosyasına, sembolleri de
      os\win32\modules.c dosyasına eklenmelidir.
İkinci yol ise modülü bir paylaşımlı kütüphane olarak çalışma anında
      LoadModule yönergesi ile yüklemek
      için bir DLL olarak derlemektir. Bu DLL modüller dağıtılabilir ve
      sunucuyu yeniden derlemek gerekmeksizin her Windows için Apache httpd
      kurulumunda çalışabilir.
Bir modül DLL’i oluşturmak için modülün kaynak dosyasında küçük bir
      değişiklik yapmak gerekir: Modül kaydının daha sonra oluşturulacak olan
      DLL’den ihraç edilebilmesi gerekir (aşağıya bakınız). Bunu yapmak için
      modülün modül kaydı tanımına (Apache httpd başlık dosyalarında
      tanımlanmış olan) AP_MODULE_DECLARE_DATA eklenmelidir.
      Örneğin, modülünüz
        module foo_module;
    
diye bir satır içeriyorsa bunu,
        module AP_MODULE_DECLARE_DATA foo_module;
    
olarak değiştirmelisiniz. Bunun yalnız Windows üzerinde etkili olduğunu
      ve Unix için modül kodunda bir değişiklik gerekmediğini unutmayınız.
      Ayrıca, .DEF dosyaları hakkında bilgi sahibi iseniz modül
      kodunda değişiklik yapmak yerine modül kaydını bu yöntemle de ihraç
      edebilirsiniz.
Artık modülü içeren bir DLL oluşturmaya hazırsınız. Bunu, libhttpd.dll
      paylaşımlı kütüphanesi derlenirken oluşturulan libhttpd.lib ihraç
      kütüphanesi ile ilintilemeniz gerekecektir. Ayrıca, Apache httpd başlık
      dosyalarının doğru konumlandığından emin olmak için derleyici
      seçeneklerinde değişiklik yapmanız gerekebilir. Bu kütüphaneyi
      sunucunuzun kök dizini altındaki modules dizininde
      bulabilirsiniz. En iyisi derleme ortamının doğru yapılandırıldığından
      emin olmak için ya ağaçta mevcut modüllerden birinin .dsp
      dosyasını gaspedersiniz ya da kendi .dsp dosyanızın
      ilintileme seçenekleriyle derleyicininkileri karşılaştırırsınız.
Artık modülünüzün DLL sürümünü oluşturmalısınız. DLL’i sunucunuzun kök
      dizininin altında bulunan modules dizinine yerleştirdikten
      sonra LoadModule yönergesi ile sunucunuza
      yükleyebilirsiniz.
| Açıklama: | Belirtilen nesne dosyasını veya kütüphaneyi sunucu ile ilintiler. | 
|---|---|
| Sözdizimi: | LoadFile dosya-ismi [dosya-ismi] ... | 
| Bağlam: | sunucu geneli, sanal konak | 
| Durum: | Eklenti | 
| Modül: | mod_so | 
LoadFile yönergesi ismi belirtilen kütüphaneleri
      veya nesne dosyalarını sunucu başlatılırken veya yeniden başlatılırken
      sunucu ile ilintiler. Yönerge, bazı modüllerin çalışması sırasında
      gereken ek kodların yüklenmesi için kullanılır.
      dosya-ismi olarak mutlak bir dosya yolu
      belirtilebileceği gibi ServerRoot’a
      göreli bir dosya yolu da  belirtilebilir.
Örnek:
LoadFile libexec/libxmlparse.so
| Açıklama: | Belirtilen nesne dosyasını veya kütüphaneyi sunucu ile ilintiler ve etkin modül listesine ekler. | 
|---|---|
| Sözdizimi: | LoadModule modül dosya-ismi | 
| Bağlam: | sunucu geneli, sanal konak | 
| Durum: | Eklenti | 
| Modül: | mod_so | 
LoadModule yönergesi
      dosya-ismi ile belirtilen nesne dosyasını veya
      kütüphaneyi sunucu ile ilintiler ve etkin modül listesine belirtilen
      modül ismiyle ekler. modül,
      modülün kaynak dosyasında module türündeki tek harici
      değişkenin ismi olup modül belgelerinde Modül Betimleyici olarak
      geçer.
Örneğin,
LoadModule status_module modules/mod_status.so
satırı ile ismi belirtilen dosya ServerRoot dizini altındaki
      modules alt dizininden yüklenir.