Programlar configure - kaynak ağacını yapılandırır

configure betiği, Apache HTTP Sunucusunun kaynak kodlarını belli bir platform için yapılandırmakta ve derlemekte kullanılır. Sunucuyu kişisel gereksinimlerinize uygun şekilde derlemek için çeşitli seçeneklere sahiptir.

Bu betik Apache HTTP Sunucusu kaynak paketinin kök dizininde bulunur ve sadece Unix ve benzeri sistemlerde kullanılabilir. Kaynak paketinin diğer platformalarda yapılandırılması ve derlenmesi hakkında bilgi edinmek için platform belgelerine bakınız.

Derleme ve Kurulum
Komut Satırı

configure betiğini kaynak paketinin kök dizininden başka bir yere kopyalayıp çalıştırmamalısınız.

./configure [seçenek]... [değişken=değer]...

CC, CFLAGS gibi ortam değişkenlerini değişken=değer atamaları biçiminde kullanabilirsiniz. Kullanışlı değişkenlerin bazıları aşağıda açıklanmıştır.

Seçenekler
Yapılandırma seçenekleri

Aşağıdaki seçenekler configure betiğinin kendi davranışını belirlemekte kullanılır.

-C
--config-cache
--cache-file=config.cache için bir kısaltmadır.
--cache-file=dosya
Sınama sonuçları dosya dosyasında saklanır. Bu seçenek açıkça belirtilmedikçe işlevsizdir.
-h
--help [short|recursive]
Yardım metnini basar ve çıkar. short değeriyle sadece bu pakete özgü seçenekler listelenir. recursive değeriyle ise paketin içindeki tüm paketler için kısa bir yardım metni basılır.
-n
--no-create
configure betiği normal olarak çalışır fakat herhangi bir çıktı dosyası üretmez. Derleme için Makefile dosyalarını üretmeksizin sınamaların sonuçlarını görmek için yararlıdır.
-q
--quiet
Yapılandırma sürecinde checking ... iletilerini basmaz.
--srcdir=dizin
dizin dizinini kaynak dosyaları dizini olarak tanımlar. configure betiğinin bulunduğu dizin veya bir üst dizin öntanımlıdır.
--silent
--quiet ile aynı.
-V
--version
Telif hakkı bilgilerini gösterir ve çıkar.
Kurulum dizinleri

Bu seçenekler kurulum dizinlerini tanımlar. Kurulum dizinleri seçilmiş yerleşime bağımlıdır.

--prefix=PREFIX
Mimariden bağımsız dosyalar PREFIX dizininin altına kurulur. /usr/local/apache2 öntanımlı kurulum dizinidir.
--exec-prefix=EPREFIX
Mimariye bağımlı dosyalar EPREFIX dizininin altına kurulur. Bunun için PREFIX dizini öntanımlı kurulum dizinidir.

Öntanımlı olarak, make install tüm dosyaların /usr/local/apache2/bin, /usr/local/apache2/lib gibi dizinlere kurulmasını sağlar. Kurulum dizini önekini örneğin, --prefix=$HOME şeklinde belirterek kurulumun başka bir yere yapılmasını sağlayabilirsiniz.

Bir dizin yerleşimi tanımlamak
--enable-layout=LAYOUT
Kaynak kodu ve derleme betikleri kurulum ağacının LAYOUT yerleşimine dayalı olduğu varsayımıyla yapılandırılır. Bu seçenek sayesinde Apache HTTP Sunucusu kurulumu içinde her dosya türü için farklı bir yer belirleyebilirsiniz. config.layout dosyasında böyle yapılandırma örnekleri vardır. Örnekleri izleyerek kendi yapılandırmanızı oluşturabilirsiniz. Bu dosyada örneğin FOO isimli yerleşim <Layout FOO>...</Layout> bölümü içinde düzenlenmiştir ve her yerleşim için böyle ayrı bir bölüm vardır. Öntanımlı yerleşim Apache’dir.
Kurulum dizinlerinde ince ayar

Kurulum dizinlerini daha iyi denetim altında tutmak için aşağıdaki seçenekler kullanılır. Lütfen, dizin öntanımlılarının autoconf tarafından tanımlandığına ve seçilen yerleşim ayarlarının bunları yerini aldığına dikkat ediniz.

--bindir=dizin
Kullanıcı tarafından çalıştırılabilen dosyalar dizin dizinine kurulur. Bunlar htpasswd, dbmmanage gibi site yönetimi için yararlı destek programlarıdır. Öntanımlı olarak bu dosyalar EPREFIX/bin dizinine kurulur.
--datadir=dizin
Mimariden bağımsız salt okunur veriler dizin dizinine kurulur. Bunların öntanımlı kurulum dizini PREFIX/share dizinidir. Bu seçenek autoconf tarafından atanır ve şimdilik kullanılmamıştır.
--includedir=dizin
C başlık dosyaları dizin dizinine kurulur. Bunların öntanımlı kurulum dizini PREFIX/include dizinidir.
--infodir=dizin
Info belgeleri dizin dizinine kurulur. Bunların öntanımlı kurulum dizini PREFIX/info dizinidir. Bu seçenek şimdilik kullanılmamıştır.
--libdir=dizin
Nesne kod kütüphaneleri dizin dizinine kurulur. Bunların öntanımlı kurulum dizini PREFIX/lib dizinidir.
--libexecdir=dizin
Paylaşımlı modüller gibi program dosyaları dizin dizinine kurulur. Öntanımlı olarak libexecdir bu dizini EPREFIX/modules olarak tanımlar.
--localstatedir=dizin
Düzenlenebilir tek makinelik veri dizin dizinine kurulur. Öntanımlı olarak localstatedir bu dizini PREFIX/var olarak tanımlar. Bu seçenek autoconf tarafından atanır ve şimdilik kullanılmamıştır.
--mandir=dizin
Kılavuz sayfaları dizin dizinine kurulur. Öntanımlı olarak mandir bu dizini EPREFIX/man olarak tanımlar.
--oldincludedir=dizin
GCC harici C başlık dosyaları dizin dizinine kurulur. Öntanımlı olarak oldincludedir bu dizini /usr/include olarak tanımlar. Bu seçenek autoconf tarafından atanır ve şimdilik kullanılmamıştır.
--sbindir=dizin
Sistem yöneticisi tarafından kullanılabilen programlar dizin dizinine kurulur. Bunlar httpd, apachectl, suexec gibi Apache HTTP Sunucusunu çalıştırmak için gereken programlardır. Öntanımlı olarak sbindir bu dizini EPREFIX/sbin olarak tanımlar.
--sharedstatedir=dizin
Mimariye bağımlı düzenlenebilir veriler dizin dizinine kurulur. Öntanımlı olarak sharedstatedir bu dizini PREFIX/com olarak tanımlar. Bu seçenek autoconf tarafından atanır ve şimdilik kullanılmamıştır.
--sysconfdir=dizin
httpd.conf, mime.types gibi tek makinelik salt okunur sunucu yapılandırma dosyaları dizin dizinine kurulur. Öntanımlı olarak sysconfdir bu dizini PREFIX/conf olarak tanımlar.
Sistem türleri

Bu seçenekleri Apache HTTP Sunucusunu başka bir platformda çalıştırmak üzere çapraz derleme yaparken kullanılır. Normal durumlarda sunucu derlendiği platformda çalıştırıldığından bu seçenekler kullanılmaz.

--build=derleme-ortamı
Derleme araçlarının derleneceği sistemin sistem türünü tanımlar. config.guess betiği ile elde edilen sonuç öntanımlıdır.
--host=çalışma-ortamı
Sunucunun çalışacağı sistemin sistem türünü tanımlar. Öntanımlı sistem türü derleme-ortamı’dır.
--target=hedef-ortam
Derleyicileri hedef-ortam sistem türü için yapılandırır. Öntanımlı sistem türü çalışma-ortamı’dır. Bu seçenek autoconf tarafından atanır ve Apache HTTP Sunucusu için gerekli değildir.
Seçimlik özellikler

Bu seçenekler HTTP sunucunuzun sahip olmasını istediğiniz özelliklerin hassas olarak ayarlanmasını sağlar.

Genel sözdizimi

Bir özelliği etkin kılmak veya iptal etmek için genellikle şu sözdizimi kullanılır:

--disable-özellik
Sunucu özellik özelliğine sahip olmaz. Bu seçenek--enable-özellik=no seçeneğine eşdeğerdir.
--enable-özellik[=değer]
Sunucu özellik özelliğine sahip olur. değer belirtilmediği takdirde yes (evet) öntanımlıdır.
--enable-modül=shared
Belirtilen modül DSO modülü olarak derlenir. Öntanımlı olarak etkin modüller devingen ilintilenir.
--enable-modül=static
Belirtilen modül durağan ilintilenir.
Bilginize

--enable-filanca seçeneğinin varlığı configure betiğinin filanca diye bir modül var olmasa bile bundan şikayetçi olmasına sebep olmaz. Bu bakımdan dikkatli olunuz.

Derlenecek modüllerin seçimi

Modüllerin çoğu öntanımlı olarak derlenir ve ya açıkça iptal edilmek ya da few veya none anahtar sözcükleri kullanılarak kaldırılmak zorunda kalınır (ayrıntılar için --enable-modules, --enable-mods-shared ve --enable-mods-static seçeneklerine bakın).

Öntanımlı olarak derlenmeyenler ise ya açıkça etkin kılınmak ya da all veya reallyall anahtar sözcükleriyle kullanılabilir yapılmak zorunda kalınır.

Hangi modüllerin öntanımlı olarak derlendiğini öğrenmek için ./configure -h veya ./configure --help komutunu çalıştırın ve çıktıdaki Optional Features bölümüne bakın. Örnek olarak, mod_example1 ve mod_example2 modülleriyle ilgilendiğinizi varsayalım:

Optional Features:
  ...
  --disable-example1     example module 1
  --enable-example2      example module 2
  ...

Burada, mod_example1 öntanımlı olarak etkindir ve derlenmemesini istiyorsanız --disable-example1 seçeneğini kullanmalısınız. mod_example2 ise öntanımlı olarak derlenmemektedir ve derlenmesini istiyorsanız --enable-example2 seçeneğini kullanmalısınız.

Çok Süreçlilik Modülleri

Çok Süreçlilik Modülleri veya MPM'ler sunucunun temel davranışını belirler. Sunucuya yüklenebilecek azami MPM sayısı birdir. Kullanılabilecek modüller modül dizininde listelenmiştir.

MPM'ler devingen yükleme için DSO olarak derlenebileceği gibi sunucuyla duruk olarak da ilintilenebilir ve bunlar aşağıdaki seçeneklerle etkin kılınır:

--with-mpm=MPM

Sunucu için öntanımlı MPM'i seçer. MPM'ler DSO modülleri olarak derleniyorsa (bak --enable-mpms-shared), bu seçenek öntanımlı yapılandırma dosyasında yüklenecek MPM'i seçer. Aksi takdirde, sunucuyla duruk olarak ilintilenecek, kullanılabilir tek MPM'i seçer.

Bu seçenek belirtilmezse, işletim sisteminiz için öntanımlı olan MPM seçilir.

--enable-mpms-shared=MPM-LISTESİ

MPM'leri devingen paylaşımlı modül olarak etkinleştirir. LoadModule yönergesi kullanılarak bu modüllerden biri devingen olarak yüklenmelidir.

MPM-LISTESİ MPM'lerin aralarına boşluk bırakılarak ve tamamı tek tırnaklarla sarmalanarak oluşturulmuş bir listesidir. Örnek:

--enable-mpms-shared='prefork worker'

Ek olarak, kullandığınız platformda devingen yüklemeyi destekleyen ve DSO modülü olarak derlenmiş tüm modülleri seçmek için all anahtar sözcüğünü de kullanabilirsiniz. Örnek:

--enable-mpms-shared=all
Üçüncü parti modüller

Üçüncü parti modülleri etkin kılmak için şu seçenekler kullanılır:

--with-module=modül-türü:modül-dosyası[,modül-türü:modül-dosyası]

Durağan ilintili modüller listesine belirtilen modülleri ekler. Modül kaynak dosyası modül-dosyası, önce Apache HTTP Sunucusu kaynak ağacı altında modules/modül-türü alt dizininde aranır. Modül orada değilse configure betiği modül-dosyası ile bir mutlak dosya yolu belirtildiği varsayımıyla kaynak dosyasını modül-türü alt dizinine kopyalamaya çalışır. Alt dizin mevcut değilse oluşturulur ve içine standart bir Makefile.in yerleştirilir.

Bu seçenek tek kaynak dosyasından oluşan küçük harici modülleri eklemek için yararlıdır. Daha karmaşık modüller için modül üreticisi tarafından sağlanan belgelere bakınız.

Bilginize

Durağan ilintili modüller yerine bir DSO modülü derlemek isterseniz apxs programını kullanınız.

Kümeleme seçenekleri ve diğerleri
--enable-maintainer-mode
Hata ayıklama iletileri ve derleme sırasındaki uyarıların gösterilmesi etkin kılınır ve derlenmiş tüm modüller yüklenir.
--enable-mods-shared=modül-listesi

Etkinleştirilip devingen paylaşımlı modül olarak derlenecek modüllerin listesi belirtilir. Yani, bu modüller LoadModule yönergesi kullanılarak devingen olarak yüklenir.

modül-listesi tırnak içine alınmış boşluk ayraçlı modül isimleri listesidir. Modül isimleri önlerindeki mod_ öneki olmaksızın belirtilirler. Örnek:

--enable-mods-shared='headers rewrite dav'

modül-listesi yerine reallyall, all, most, few ve none anahtar sözcükleri de belirtilebilir. Örneğin,

--enable-mods-shared=most

seçeneği ile çoğu modül DSO modülü olarak derlenir,

--enable-mods-shared=few

seçeneği ile sadece en temel modüller derlenir.

most öntanımlıdır.

Seçilen modüller için LoadModule yönergeleri ana yapılandırma dosyasında kendiliğinden üretilir. Öntanımlı olarak, --enable-foo yapılandıma seçeneği ile açıkça seçilen modüller ve gerekli olanlar dışında kalan LoadModule yönergeleri açıklama haline getirilir. Yüklü modülleri httpd.conf dosyasındaki LoadModule yönergelerini etkin kılarak veya açıklama haline getirerek değiştirebilirsiniz. LoadModule yönergelerine ek olarak, derlenmiş tüm modüller --enable-load-all-modules yapılandırma seçeneği ile de etkinleştirilebilir.

Yetersizlikler: --enable-mods-shared=all aslında bütün modüllerin derlenmesini sağlamaz. Tüm modülleri derlemek için şunu yapabilirsiniz:

./configure \
--with-ldap \
--enable-mods-shared="all ssl ldap cache proxy authn_alias file_cache authnz_ldap charset_lite dav_lock cache_disk"
--enable-mods-static=modül-listesi
Bu seçenek modülleri devingen değil de durağan ilintilemek dışında --enable-mods-shared seçeneğine benzer. Yani bu modüller httpd çalıştırılır çalıştırılmaz etkin olurlar. Yüklenmeleri için LoadModule yönergesine ihtiyaçları yoktur.
--enable-modules=MODULE-LIST
Bu seçenek --enable-mods-shared gibi davranır ve ek olarak belirtilen modülleri devingen olarak ilintiler.Özel none anahtar sözcüğü tüm modüllerin derlenmesini iptal eder.
--enable-v4-mapped
IPv6 soketlierinin IPv4 bağlantılar üzerinde kullanılması mümkün olur.
--with-port=port
Bu seçenek httpd'nin dinleyeceği portu belirler. Bu port httpd.conf yapılandırma dosyası üretilirken kullanılır. 80. port öntanımlıdır.
--with-program-name
Öntanımlı olan httpd yerine başka bir çalıştırabilir ismi tanımlar.
Seçimlik paketler

Buradaki seçenekler seçimlik paketleri tanımlamak için kullanılır.

Genel sözdizimi

Bir seçimlik paketi tanımlamak için genellikle şöyle bir sözdizimi kullanılır:

--with-paket[=değer]
paket paketi kullanılır. Öntanımlı değer yes’tir.
--without-paket
paket paketi kullanılmaz. Öntanımlı değer no’dur. Bu seçenek autoconf tarafından sağlanmıştır ve Apache HTTP Sunucusu için pek yararlı değildir.
Özel paketler
--with-apr=dizin|dosya
Apache Taşınabilir Arayüzü (APR) httpd kaynak paketinin bir parçası olup HTTP Sunucu ile birlikte derlenir. Eğer kendi kurulu APR’nizi kullanmak isterseniz bunu configure betiğine apr-config betiğinin yolunu belirterek ifade edebilirsiniz. Kurulu APR için bid dizin, dosya ismi veya mutlak dosya yolu belirtebilirsiniz. apr-config ya belirttiğiniz dizinde ya da bin alt dizininde bulunmalıdır.
--with-apr-util=dizin|dosya
Apache Taşınabilir Arayüzü Araçları (APU) httpd kaynak paketinin bir parçası olup HTTP Sunucu ile birlikte derlenir. Eğer kendi kurulu APU’nuzu kullanmak isterseniz bunu configure betiğine apu-config betiğinin yolunu belirterek ifade edebilirsiniz. Kurulu APR için bir dizin, dosya ismi veya mutlak dosya yolu belirtebilirsiniz. apr-config ya belirttiğiniz dizinde ya da bin alt dizininde bulunmalıdır.
--with-ssl=dizin
mod_ssl modülü etkinse configure betiği kurulu bir OpenSSL arayacaktır. Kendi SSL/TLS kurulumunuzun yolunu bu seçenekle belirtebilirsiniz.
--with-z=dizin
Yapılandırmanız gerektirdiği takdirde (örneğin, mod_deflate etkinse) configure betiği kurulu zlib kütüphanesinin yerini tespit etmeye çalışacaktır. Kendi sıkıştırma kütüphanenizin yerini bu seçenekle belirtebilirsiniz.

Apache HTTP Sunucusunun çeşitli bölümleri, mod_authn_dbm modülü ve mod_rewrite modülünün RewriteMap yönergesi bilgilere erişimi hızlandırmak için basit anahtar/değer veritabanları kullanırlar. SDBM, APU içinde mevcut olduğundan bu veritabanı her zaman kullanılabilir durumdadır. Eğer başka veritabanı türleri kullanmak isterseniz aşağıdaki seçeneklerle bunları etkin kılabilirsiniz:

--with-gdbm[=dizin-yolu]
Bir dizin-yolu belirtilmemişse configure betiği GNU DBM kurulumunun kütüphanelerini ve başlık dosyalarını bulunması olası yerlerde arar. Bir dizin-yolu belirtilmişse configure betiği kurulumun kütüphanelerini dizin-yolu/lib altında, başlık dosyalarını ise dizin-yolu/include altında arayacaktır. Bundan başka, başlık ve kütüphane dosyalarının bulundukları yerler iki nokta imi ile ayrılarak dizin-yolu olarak belirtilebilir.
--with-ndbm[=dizin-yolu]
New DBM kurulumunu araştırması dışında --with-gdbm seçeneği gibidir.
--with-berkeley-db[=dizin-yolu]
Berkeley DB kurulumunu araştırması dışında --with-gdbm seçeneği gibidir.
Bilginize

DBM seçenekleri APU tarafından sağlanmış olup onun yapılandırma betiğine aktarılır. Bu seçenekler --with-apr-util seçeneği ile tanımlanmış bir kurulu APU varsa kullanışlı olur.

HTTP sunucunuz ile birlikte birden fazla DBM gerçeklenimi kullanabilirsiniz. Kullanılacak DBM türünü her zaman çalışma anı yapılandırmanızla yapılandırabilirsiniz.

Destek programları için seçenekler
--enable-static-support
Destek programlarını durağan ilintili olarak derler. Yani çalıştırılabilirin kullandığı bütün kütüphaneler kodla bütünleştirilir. Bu seçenek belirtilmedikçe destek programları daima devingen ilintili olarak derlenir.
--enable-suexec
Çatallanan sürecin kullanıcı ve grup kimliklerinin değiştirilebilmesini sağlayan suexec programının kullanımını etkinleştirir. Sunucunuz üzerinde suid biti etkinleştirilmiş bir program çalıştırmanın sistem güvenliğinde yaratacağı sorunlar hakkında bir fikriniz yoksa bu seçeneği etkinleştirmeyin. suexec yapılandırma seçenekleri aşağıda açıklanmıştır.

Tek bir destek programını aşağıdaki seçenekleri kullanarak bir durağan ilintili çalıştırılabilir olarak derleyebilirsiniz:

--enable-static-ab
ab programının durağan ilintili sürümü derlenir.
--enable-static-checkgid
checkgid programının durağan ilintili sürümü derlenir.
--enable-static-htdbm
htdbm programının durağan ilintili sürümü derlenir.
--enable-static-htdigest
htdigest programının durağan ilintili sürümü derlenir.
--enable-static-htpasswd
htpasswd programının durağan ilintili sürümü derlenir.
--enable-static-logresolve
logresolve programının durağan ilintili sürümü derlenir.
--enable-static-rotatelogs
rotatelogs programının durağan ilintili sürümü derlenir.
<code>suexec</code> yapılandırma seçenekleri

Aşağıdaki seçeneklerle suexec programının davranışı hassas bir şekilde ayarlanabilir. Daha ayrıntılı bilgi için suEXEC yapılandırması ve kurulumuna bakınız.

--with-suexec-bin
Bu seçenek ile suexec çalıştırılabilirinin yeri belirtilir. Öntanımlı olarak --sbindir ile belirtilen dizine kurulur (Kurulum dizinlerinde ince ayar konusuna bakınız).
--with-suexec-caller
Bu seçenek ile suexec’i çalıştırabilecek kullanıcı belirtilir. Normalde httpd programını çalıştıran kullanıcı olmalıdır.
--with-suexec-docroot
Bu seçenek ile suexec'e erişebilecek çalıştırılabilirlerin altında bulunacağı dizin belirtilir. --datadir/htdocs öntanımlıdır.
--with-suexec-gidmin
suexec için hedef kullanıcı olmasına izin verilen en küçük grup kimliğini tanımlamak için kullanılır. 100 öntanımlıdır.
--with-suexec-logfile
suexec günlük dosyasının ismi belirtilir. Öntanımlı olarak bu dosyanın ismi suexec_log olup --logfiledir seçeneği ile belirtilen dizin altında bulunur.
--with-suexec-safepath
suexec tarafından çalıştırılacak süreçlerin çalıştırılabilirlerinin bulunabileceği dizinleri PATH ortam değişkenine tanımlamak için kullanılır. /usr/local/bin:/usr/bin:/bin öntanımlıdır.
--with-suexec-userdir
Bu seçenek, kullanıcı dizinleri altında suexec tarafından çalıştırılacak süreçlerin çalıştırılabilirlerinin bulunabileceği alt dizini tanımlar. suexec programını (mod_userdir tarafından sağlanan) kullanıcıya özel dizinlerde kullanmak istediğinizde bu gereklidir. public_html alt dizini öntanımlıdır.
--with-suexec-uidmin
suexec için hedef kullanıcı olmasına izin verilen en küçük kullanıcı kimliğini tanımlamak için kullanılır. 100 öntanımlıdır.
--with-suexec-umask
suexec tarafından çalıştırılacak süreçler için umask tanımlar. Sisteminiz için geçerli ayarlar öntanımlıdır.
Ortam Değişkenleri

configure betiğinin yerleri ve isimleri standartlara uygun olmayan kütüphaneleri ve programları bulmasını yardımcı olan veya configure betiği tarafından yapılan bazı seçimleri değiştirmenizi sağlayacak bazı ortam değişkenleri vardır.

CC
Bu değişkenle derleme sırasında kullanılacak C derleyici komutu tanımlanır.
CFLAGS
Bu değişkenle derleme sırasında kullanılacak C derleyici seçenekleri tanımlanır.
CPP
Bu değişkenle derleme sırasında kullanılacak C önişlemci komutu tanımlanır.
CPPFLAGS
C/C++ önişlemci seçenekleri tanımlanır. Örneğin, eğer başlık dosyaları standart yerlerinde değil de includedir dizinindeyse bunu -Iincludedir seçeneği olarak belirtebilirsiniz.
LDFLAGS
İlintileyici seçenekleri tanımlanır. Örneğin, eğer kütüphane dosyalarınız standart yerlerinde değil de libdir dizinindeyse bunu -Llibdir seçeneği olarak belirtebilirsiniz.