Apache'yi Temel Modülleriyle Elde Etme, Derleme ve Kurma

Apache kaynak paketini indirin ve paketi açın

Apache nedir?

 

Apache projesi güvenliği, ticari dereceli, özellikli ve kaynak koduna bedava ulaşılabilir bir web sunucu uygulamasını amaçlayan işbirlikçi yazılım geliştirme çabasıdır. Proje dünya üzerinde iletişim, plan ve geliştirme için Web ve interneti kullanan gönüllüler grubu tarafından yönetiliyor. Bu gönüllüler Apache grubu olarak bilinirler. Buna ek olarak yüzlerce insanda bu projeye düşünce, kod ve belge katkısı yapar. Bu belge Apache Grubunun tarihini tanımlamak ve katılımcılarını tanımayı hedefler.

 
--www.apache.org 

Apache, en iyi web sunucu yazılımıdır. İhtiyaçlarınıza uymak için çok esnek yapılıdır ve son derece tutarlıdır, kararlıdır. Kişisel olarak hiçbir zaman üretim ortamında sorun yaşattığına şahit olmadım.

Kaynak paketini indirin

Adres: http://www.apache.org/dist/httpd/

$ cd /usr/local/

$ tar -xvzf apache_1.3.27.tar.gz

Geniş ölçekli siteler için yama

Eğer web sunucunuz aynı anda bir çok isteğe cevap vermek zorundaysa ve makinanız çok isteğe cevap verebilecek yeteri güce sahipse, çalışan azami süreç sayısı sınırını değiştirebilirsiniz.

Yamayı indirin:: http://www.delouw.ch/linux/apache-patch_HARD_SERVER_LIMIT.txt

--- httpd.h     Thu Mar 21 18:07:34 2002
+++ httpd.h-new Sun Apr  7 13:34:11 2002
@@ -320,7 +320,7 @@
 #elif defined(NETWARE)
 #define HARD_SERVER_LIMIT 2048
 #else
-#define HARD_SERVER_LIMIT 256
+#define HARD_SERVER_LIMIT 512
 #endif
 #endif

Bu yama aynı anda erişim yapabilecek istemci erişim sayısını 512'ye çıkarır. Eğer çekirdeğinizin kaynak kodundaki /etc/security/limits.conf dosyanızı düzenlerseniz daha da arttırabilirsiniz.

Görev dışı çalışmadan kaçının

Bu ayar yanlış yapılırsa "kendi kendine saldırı" uyarısıyla sonlanır. Yönetici için yeterli süreç bıraktığınıza emin olun.

Yamanın uygulanması:

$ cd /usr/local/apache_1.3.27/src/include

$ patch -p0 < apache-patch_HARD_SERVER_LIMIT.txt

mod_ssl

mod_ssl nedir?

 

Bu modül Eric A.Young ve Tim J.Hudson tarafından geliştirilen SSLeay temelli OpenSSL yardımıyla, Güvenli Soket Katmanı (SSL v2/v3) ve İletim Katmanı Güvenliği (TLS v1) protokolleri yoluyla Apache 1.3 web sunucu için güçlü bir şifreleme sağlar.

 
--www.modssl.org 

Bu modüle, web sunucuya yapılan HTTPS isteklerini gerçekleştirmek için ihtiyaç duyulur. Apache kaynak koduna yama yapar ve onun uygulama geliştirme arayüzünü (API), EAPI (genişlemiş uygulama geliştirme arayüzü) denen arayüze genişletir.

Modülleri derlerken derleyici seçeneklerini kullanın

Apache sunucu için, her modülün -DEAPI derleyici seçeneği ile derlenmiş olmasına dikkat edin, aksi takdirde sunucunuz başlatılamayabilir, hatta çökebilir.

mod_jserv ve mod_jk hariç hemen hemen bildiğim bütün modüller kendileri -DEAPI derleyici seçeneğini eklerler.

Kaynak paketini indirin

Adres: http://www.modssl.org

Apache kaynak koduna yamayı uygulayın

$ cd /usr/local/

$ tar -xvzf mod_ssl-2.8.12-1.3.27.tar.gz
$ cd mod_ssl-2.8.12-1.3.27/

$ ./configure --with-apache=../apache_1.3.27

mod_perl

mod_perl nedir?

 

mod_perl ile bütün Apache modüllerini Perl'de yazmak mümkündür. Buna ek olarak sunucunun içine dahili bir yorumlayıcı gömülmüştür, bu da harici bir yorumlayıcının başlatılmasını ve Perl'in başlatılması sırasındaki gecikmeleri önler.

 
--perl.apache.org 

mod_perl cgi-bin'ler için bir çeşit vekildir. cgi'ler her bir istek için yeni bir süreç çatallar ve aşırı yük oluştururlar.mod_perl ile Perl yorumlayıcısı Apache sunucusuna kalıcı olarak yüklenir ve böylece her bir istek için yeni sürecin çatallanmasına gerek kalmaz.

Kaynak paketini indirin

Adres: http://www.apache.org/dist/perl

Derleme ve Kurulum

$ cd /usr/local

$ tar -xvzf mod_perl-1.27.tar.gz

$ cd mod_perl-1.27

$ perl Makefile.PL \
EVERYTHING=1 \
APACHE_SRC=../apache_1.3.27/src \
USE_APACI=1 \
PREP_HTTPD=1 \
DO_HTTPD=1

$ make
# make install

mod_perl DSO olarak derlenemez

mod_perl'i dinamik paylaşımlı nesne (DSO - Dynamic Shared Object) olarak derlemeyin! Çeşitli kaynaklar Apache'nin çökebileceğini söylüyor! (ben hiç denemedim).

Apache'yi yapılandırın ve derleyin

İki statik modülü mod_ssl ve mod_perl'i yapılandırdık ve Apache kaynak kodunu yamadık. Artık Apache'yi derlemeye başlayabiliriz.

Derleme ve Kurulum

$ EAPI_MM="/usr/local/mm-1.2.2" SSL_BASE="/usr/local/ssl" \
./configure \
--enable-module=unique_id \
--enable-module=rewrite \
--enable-module=speling \
--enable-module=expires \
--enable-module=info \
--enable-module=log_agent \
--enable-module=log_referer \
--enable-module=usertrack \
--enable-module=proxy \
--enable-module=userdir \
--enable-module=so \
--enable-shared=ssl \
--enable-module=ssl \
--activate-module=src/modules/perl/libperl.a \
--enable-module=perl

$ make
# make install

Kendinden imzalı SSL sertifikasını oluşturun

# cd /usr/local/ssl/bin

# ./openssl req -new > new.cert.csr
# ./openssl rsa -in privkey.pem -out new.cert.key
# ./openssl x509 -in new.cert.csr -out new.cert.cert \
-req -signkey new.cert.key -days 999

# cp new.cert.key /usr/local/apache/conf/ssl.key/server.key
# cp new.cert.cert /usr/local/apache/conf/ssl.crt/server.crt

Genel isim

OpenSSL farklı şeyler sorar. Genellikle yapılan yanlışlardan biri yanlış bir "Common name" girmektir. Bu sunucunuzun tam nitelikli konak ismi (Fully Qualified HostName) olmalıdır, örneğin: falan.filan.org.