İSİM
apxs - Apache Eklenti Aracı
- 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ı...
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 dosya’sından bir dinamik
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(8)
çalıştırılabilirinin 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:
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/httpd.conf’ta etkinleştiriliyor]
$ apachectl restart
/dosya/yolu/apache/sbin/apachectl 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/apachectl 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, dinamik
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
<https://httpd.apache.org/docs/2.4/mod/mod_so.html>: mod_so
belgesini okumakla yetinmeyip src/modules/standard/mod_so.c kaynak
dosyasını da okuyunuz.
- -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
- httpd(8)’yi derlemekte kullanılacak
değişkenler ve ortam ayarları için bir sorgu
gerçekleştirir. 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(8)’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ğer
- Bu seçenek yukarıda açıklanan apxs
ayarlarını değiştirir.
Şablon Üretme Seçenekleri
- -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
- Bu seçenek derleme yapılacağını
belirtir. Önce belirtilen C kaynak dosyalarını
(.c), nesne dosyalarını (.o) elde etmek için derler.
Sonra bunları kalan nesne dosyaları (.o ve .a) ile
ilintileyerek dso-dosyası adında bir dinamik
paylaşımlı nesne oluşturur. Eğer
-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ı
- Oluşturulacak dinamik paylaşımlı nesnenin
ismini belirtmek için kullanılır. Modül ismi
bu seçenekle belirtilmez ve dosya listesinden bir isim
tahmini de yapılamazsa son çare olarak mod_unknown.so
ismi kullanılır.
- -D
isim=değer
- 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.
- -I
include-dizini
- 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.
- -L lib-dizini
- 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.
- -l
kütüphane-adı
- 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.
- -Wc,derleyici-seçenekleri
- Bu seçenek 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
- Bu seçenek 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.
- -p
- Bu seçenek apxs’in apr/apr-util
kütüphaneleriyle ilintilenmesini sağlar.
apr/apr-util kütüphanelerini kullanan
yardımcı uygulamaları derlerken
yararlıdır.
- -i
- Kurulum işlemini belirtir ve dinamik olarak
paylaşımlı nesneleri sunucunun modules
dizinine kurar.
- -a
- İlgili LoadModule satırını
Apache’nin httpd.conf yapılandırma
dosyasına otomatik olarak ekleyerek veya böyle bir
satır varsa bunu etkin kılarak modülü
etkinleştirir.
- -A
- LoadModule 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.
- -e
- Modülü kurmaya
çalışmaksızın Apache’nin
httpd.conf yapılandırma dosyasını
-i işlemine benzer şekilde -a ve -A
seçenekleri ile düzenleme işlemini belirtir.
ÖRNEKLER
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 otomatik olarak kurmak ve httpd.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/httpd.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 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/httpd.conf’ta etkinleştiriliyor]
apachectl restart
/dosya/yolu/apache/sbin/apachectl restart: httpd not running, trying to start
chmod 755 /dosya/yolu/apache/modules/mod_foo.so
[’foo’ modülü /dosya/yolu/apache/etc/httpd.conf’ta etkinleştiriliyor]
apachectl restart
/dosya/yolu/apache/sbin/apachectl 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/apachectl restart: httpd started
$ _
ÇEVİREN
© 2022 Nilgün Belma Bugüner
Bu çeviri özgür yazılımdır:
Yasaların izin verdiği ölçüde
HİÇBİR GARANTİ YOKTUR.
Lütfen, çeviri ile ilgili bildirimde bulunmak veya çeviri
yapmak için https://github.com/TLBP/manpages-tr/issues adresinde
"New Issue" düğmesine tıklayıp yeni
bir konu açınız ve isteğinizi belirtiniz.