configure - kaynak ağacını yapılandırır
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
- Kurulum dizinleri
- Sistem türleri
- Seçimlik özellikler
- Destek programları için 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.cacheiçin bir kısaltmadır.--cache-file=dosya- Sınama sonuçları
dosyadosyasında saklanır. Bu seçenek açıkça belirtilmedikçe işlevsizdir. -h--help [short|recursive]- Yardım metnini basar ve çıkar.
shortdeğeriyle sadece bu pakete özgü seçenekler listelenir.recursivedeğeriyle ise paketin içindeki tüm paketler için kısa bir yardım metni basılır. -n--no-createconfigurebetiği normal olarak çalışır fakat herhangi bir çıktı dosyası üretmez. Derleme içinMakefiledosyaları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=dizindizindizinini kaynak dosyaları dizini olarak tanımlar.configurebetiğinin bulunduğu dizin veya bir üst dizin öntanımlıdır.--silent--quietile 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
PREFIXdizininin altına kurulur./usr/local/apache2öntanımlı kurulum dizinidir. --exec-prefix=EPREFIX- Mimariye bağımlı dosyalar
EPREFIXdizininin altına kurulur. Bunun içinPREFIXdizini ö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
LAYOUTyerleş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.layoutdosyasında böyle yapılandırma örnekleri vardır. Örnekleri izleyerek kendi yapılandırmanızı oluşturabilirsiniz. Bu dosyada örneğinFOOisimli 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şimApache’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
dizindizinine kurulur. Bunlarhtpasswd,dbmmanagegibi site yönetimi için yararlı destek programlarıdır. Öntanımlı olarak bu dosyalarEPREFIX/bindizinine kurulur. --datadir=dizin- Mimariden bağımsız salt okunur veriler
dizindizinine kurulur. Bunların öntanımlı kurulum diziniPREFIX/sharedizinidir. Bu seçenekautoconftarafından atanır ve şimdilik kullanılmamıştır. --includedir=dizin- C başlık dosyaları
dizindizinine kurulur. Bunların öntanımlı kurulum diziniPREFIX/includedizinidir. --infodir=dizin- Info belgeleri
dizindizinine kurulur. Bunların öntanımlı kurulum diziniPREFIX/infodizinidir. Bu seçenek şimdilik kullanılmamıştır. --libdir=dizin- Nesne kod kütüphaneleri
dizindizinine kurulur. Bunların öntanımlı kurulum diziniPREFIX/libdizinidir. --libexecdir=dizin- Paylaşımlı modüller gibi program dosyaları
dizindizinine kurulur. Öntanımlı olaraklibexecdirbu diziniEPREFIX/modulesolarak tanımlar. --localstatedir=dizin- Düzenlenebilir tek makinelik veri
dizindizinine kurulur. Öntanımlı olaraklocalstatedirbu diziniPREFIX/varolarak tanımlar. Bu seçenekautoconftarafından atanır ve şimdilik kullanılmamıştır. --mandir=dizin- Kılavuz sayfaları
dizindizinine kurulur. Öntanımlı olarakmandirbu diziniEPREFIX/manolarak tanımlar. --oldincludedir=dizin- GCC harici C başlık dosyaları
dizindizinine kurulur. Öntanımlı olarakoldincludedirbu dizini/usr/includeolarak tanımlar. Bu seçenekautoconftarafından atanır ve şimdilik kullanılmamıştır. --sbindir=dizin- Sistem yöneticisi tarafından kullanılabilen programlar
dizindizinine kurulur. Bunlarhttpd,apachectl,suexecgibi Apache HTTP Sunucusunu çalıştırmak için gereken programlardır. Öntanımlı olaraksbindirbu diziniEPREFIX/sbinolarak tanımlar. --sharedstatedir=dizin- Mimariye bağımlı düzenlenebilir veriler
dizindizinine kurulur. Öntanımlı olaraksharedstatedirbu diziniPREFIX/comolarak tanımlar. Bu seçenekautoconftarafından atanır ve şimdilik kullanılmamıştır. --sysconfdir=dizinhttpd.conf,mime.typesgibi tek makinelik salt okunur sunucu yapılandırma dosyalarıdizindizinine kurulur. Öntanımlı olaraksysconfdirbu diziniPREFIX/confolarak 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.guessbetiğ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-ortamsistem türü için yapılandırır. Öntanımlı sistem türüçalışma-ortamı’dır. Bu seçenekautoconftarafı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=noseçeneğine eşdeğerdir. --enable-özellik[=değer]- Sunucu
özelliközelliğine sahip olur.değerbelirtilmediği takdirdeyes(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 anahtar sözcüğü
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). Bir grubu
tamamen kaldırmak için --enable-modules=none gerekir.
Ö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.
LoadModuleyö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
allanahtar 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ındamodules/modül-türüalt dizininde aranır. Modül orada değilseconfigurebetiğimodü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 birMakefile.inyerleş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
apxsprogramı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
LoadModuleyönergesi kullanılarak devingen olarak yüklenir.modül-listesitırnak içine alınmış boşluk ayraçlı modül isimleri listesidir. Modül isimleri önlerindekimod_öneki olmaksızın belirtilirler. Örnek:--enable-mods-shared='headers rewrite dav'modül-listesiyerinereallyall,all,mostvefewanahtar sözcükleri de belirtilebilir. Örneğin,--enable-mods-shared=mostseçeneği ile çoğu modül DSO modülü olarak derlenir,
--enable-mods-shared=fewseçeneği ile sadece en temel modüller derlenir.
mostöntanımlıdır.Seçilen modüller için
LoadModuleyönergeleri ana yapılandırma dosyasında kendiliğinden üretilir. Öntanımlı olarak,--enable-fooyapılandıma seçeneği ile açıkça seçilen modüller ve gerekli olanlar dışında kalanLoadModuleyönergeleri açıklama haline getirilir. Yüklü modüllerihttpd.confdosyasındakiLoadModuleyönergelerini etkin kılarak veya açıklama haline getirerek değiştirebilirsiniz.LoadModuleyönergelerine ek olarak, derlenmiş tüm modüller--enable-load-all-modulesyapılandırma seçeneği ile de etkinleştirilebilir. --enable-mods-static=modül-listesi- Bu seçenek modülleri devingen değil de durağan ilintilemek dışında
--enable-mods-sharedseçeneğine benzer. Yani bu modüllerhttpdçalıştırılır çalıştırılmaz etkin olurlar. Yüklenmeleri içinLoadModuleyönergesine ihtiyaçları yoktur. --enable-modules=MODULE-LIST- Bu seçenek
--enable-mods-sharedgibi davranır ve ek olarak belirtilen modülleri devingen olarak ilintiler.Özelnoneanahtar 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 porthttpd.confyapılandırma dosyası üretilirken kullanılır. 80. port öntanımlıdır. --with-program-name- Öntanımlı olan
httpdyerine 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]paketpaketi kullanılır. Öntanımlıdeğeryes’tir.--without-paketpaketpaketi kullanılmaz. Öntanımlıdeğerno’dur. Bu seçenekautoconftarafı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
configurebetiğineapr-configbetiğinin yolunu belirterek ifade edebilirsiniz. Kurulu APR için bid dizin, dosya ismi veya mutlak dosya yolu belirtebilirsiniz.apr-configya belirttiğiniz dizinde ya dabinalt 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
configurebetiğineapu-configbetiğinin yolunu belirterek ifade edebilirsiniz. Kurulu APR için bir dizin, dosya ismi veya mutlak dosya yolu belirtebilirsiniz.apr-configya belirttiğiniz dizinde ya dabinalt dizininde bulunmalıdır. --with-ssl=dizinmod_sslmodülü etkinseconfigurebetiğ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_deflateetkinse)configurebetiği kuruluzlibkü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-yolubelirtilmemişseconfigurebetiği GNU DBM kurulumunun kütüphanelerini ve başlık dosyalarını bulunması olası yerlerde arar. Birdizin-yolubelirtilmişseconfigurebetiği kurulumun kütüphanelerinidizin-yolu/libaltında, başlık dosyalarını isedizin-yolu/includealtında arayacaktır. Bundan başka, başlık ve kütüphane dosyalarının bulundukları yerler iki nokta imi ile ayrılarakdizin-yoluolarak belirtilebilir. --with-ndbm[=dizin-yolu]- New DBM kurulumunu araştırması dışında
--with-gdbmseçeneği gibidir. --with-berkeley-db[=dizin-yolu]- Berkeley DB kurulumunu araştırması dışında
--with-gdbmseç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
suexecprogramı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.suexecyapı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-ababprogramının durağan ilintili sürümü derlenir.--enable-static-checkgidcheckgidprogramının durağan ilintili sürümü derlenir.--enable-static-htdbmhtdbmprogramının durağan ilintili sürümü derlenir.--enable-static-htdigesthtdigestprogramının durağan ilintili sürümü derlenir.--enable-static-htpasswdhtpasswdprogramının durağan ilintili sürümü derlenir.--enable-static-logresolvelogresolveprogramının durağan ilintili sürümü derlenir.--enable-static-rotatelogsrotatelogsprogramının durağan ilintili sürümü derlenir.
suexec 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--sbindirile 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. Normaldehttpdprogramı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-gidminsuexeciç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-logfilesuexecgünlük dosyasının ismi belirtilir. Öntanımlı olarak bu dosyanın ismisuexec_logolup--logfiledirseçeneği ile belirtilen dizin altında bulunur.--with-suexec-safepathsuexectarafından çalıştırılacak süreçlerin çalıştırılabilirlerinin bulunabileceği dizinleriPATHortam 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
suexectarafından çalıştırılacak süreçlerin çalıştırılabilirlerinin bulunabileceği alt dizini tanımlar.suexecprogramını (mod_userdirtarafından sağlanan) kullanıcıya özel dizinlerde kullanmak istediğinizde bu gereklidir.public_htmlalt dizini öntanımlıdır. --with-suexec-uidminsuexeciç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-umasksuexectarafından çalıştırılacak süreçler içinumasktanı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
includedirdizinindeyse bunu-Iincludedirseç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
libdirdizinindeyse bunu-Llibdirseçeneği olarak belirtebilirsiniz.