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
Bu eklenti mekanizmasını platformunuzda kullanmak için DSO desteğinin
olması ve apxs
aracı durumu size bildirecektir. Bunu
aşağıdaki komutla kendiniz de sınayabilirsiniz:
apxs
aracı sayesinde DSO mekanizması
üzerinden kendi modüllerinizi kurmak suretiyle Apache sunucunuzun
işlevselliğini kolayca arttırabilirsiniz. Örnek bir uygulama:
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
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 ]
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 sorgu
httpd
'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:
-S isim=değer
apxs
ayarlarını değiştirir.-g
modü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çenekleri
libtool --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çenekleri
libtool --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.-i
-a
httpd.conf
yapılandırma dosyasına özdevinimli
olarak ekleyerek veya böyle bir satır varsa bunu etkin kılarak modülü
etkinleştirir.-A
#
) yerleştirmesi dışında
-a
seçeneği ile aynıdır.-e
httpd.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:
Bundan sonra, Apache yapılandırmanızın bu paylaşımlı nesneyi yüklemek
için bir apxs
bu adımı
basitleştirmek amacıyla, paylaşımlı nesneyi sunucunun modules
dizinine özdevinimli olarak kurmak ve httpd.conf
dosyasını
buna uygun olarak güncellemek için bir yol sağlar. Bu sonuç şöyle elde
edilebilir:
Yapılandıma dosyasına (eğer yoksa) şu satır eklenir:
Bunu öntanımlı olarak iptal etmek isterseniz
-A
seçeneğini kullanmanız gerekir:
apxs
mekanizmalarını hızlıca denemek
için örnek bir Apache modül şablonunu ve bir Makefile dosyasını şöyle
oluşturabilirsiniz:
Ardından bu örnek modülü bir paylaşımlı nesne olarak derleyip Apache sunucusuna yükleyebilirsiniz: