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.
- -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.
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
$ _
© 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.