Giriş
Bugun internette web sunucuların %60'ını Apache oluşturmaktadır. Sağlamlık, guvenilirlik ve yuksek performansın yanı sıra Apache'nin bu yaygınlığının en onemli nedenleri de cok esnek olmasıdır. Gereksinimlere gore Apache'ye bircok modul eklenerek web uzerinde hemen her uygulama gercekleştirilebilir.

Cok ceşitli sayıdaki Apache modulleri arasından mod_php4, mod_ssl, mod_gzip modullerinin eklenmesi ile Apache'nin kurulumu anlatılmaktadır. Gelecek surumlerde dokumana başka Apache modullerinin de (frontpage uzantıları, mod_dav, mod_bandwidth, vb) eklenmesi duşunulmektedir.

Ssl (secure socket layer), internet uzerinde şifrelendirilmiş veri alışverişi icin kullanılan bir protokoldur. Şifreli veri alışverişi ozellikle e-ticaret uygulamalarında "olmazsa olmaz" bir konuma sahiptir.

Php (php hypertext preprocessor), web sunucu uzerinde işlenip html icine gomulen bir script dilidir. Ozellikle web uzerinde veritabanı uygulamaları geliştirilmesinde kullanılması yaygındır. Hemen her tur veritabanı sunucusuna (MySQL, Interbase, Sybase, Oracle, ...) erişim icin kullanılabilmektedir. Apache-Php-MySQL uclusu internette cok yaygın kullanılan bir standart haline gelmektedir. Bircok farklı program ile kullanılabilen php, bu dokumanda MySQL, OpenLDAP, GD, Imap, MM ve Curl destekli olarak derlenecektir. Farklı programların desteği verileceği zaman da kurulum mantığı aynıdır.

Mod_gzip, IETF (Internet Engineering Task Force) icerik kodlama standartlarına gore web sayfalarının gzip ile web sunucunuz tarafından sıkıştırılarak kullanıcının browser'ına gonderilmesini sağlamaktadır. 1999'dan beri piyasaya cıkan tum browser'lar gzip desteklemektedir, herhangi bir ek program yuklenmesine gerek yoktur. Mod_gzip, ozellikle yazı ve makaleler gibi cok sıkıştırılabilen dosyaları kullanıcının hem cok daha hızlı cekebilmesini, hem de cok daha az bant genişliği harcamasını sağlamaktadır.

Kurulum /usr/local dizinine yapılmaktadır. İlgili programların opsiyonları değiştirilerek başka bir dizine de kurulum yapılabilir.


1.1 Neler gerekiyor?
Kuruluma başlamadan once aşağıdaki programların elinizde bulunması gerekir.

Apache
http://httpd.apache.org
OpenSSL
http://www.openssl.org
Php
http://www.php.net
Mod_ssl
http://www.modssl.org
Mod_gzip
http://www.remotecommunications.com/apache/mod_gzip
MySQL
http://www.mysql.com
OpenLDAP
http://www.openldap.org
GD
http://www.boutell.com/gd
Imap
http://www.washington.edu/imap
MM
http://www.engelschall.com/sw/mm
Curl
http://curl.haxx.se

1.2 Bu dokumanın yeni surumleri
Apache Kurulumu dokumanın yeni surumleri duzenli olarak [email protected] e-posta listesinde duyurulacak ve Turkiye Linux Kullanıcıları Derneği'nin web sitesine (http://www.linux.org.tr) gonderilecektir.

Dokumanın en son surumu HTML olarak http://linux.fisek.com.tr/dfisek/apache-kurulum.php adresinden alınabilir.

1.3 Kopyalama hakkı engel-le-ne-mez! (slogan tonunda soylenecek)
Bu dokuman GNU Serbest Belge Lisansı'na (GFDL) sahiptir.

1.4 Goruşler, sorular, ...
Dokumanla ile ilgili her turlu goruşleriniz ve sorularınız icin benimle [email protected] adresinden bağlantı kurabilirsiniz. Dokumanda bir hata bulduğunuzda bunu bana haber verirseniz, dokumanın bir sonraki surumunde bunu duzeltebilirim. Dokumanla ilgili her turlu mesaj, sekiz gozle beklenmektedir :-)



--------------------------------------------------------------------------------

2. Mod_php4 ve Mod_ssl modulleri icin gerekli programların kurulumu
Kurulumların tamamı /usr/local dizinine yapılacağından dolayı, oncelikle o dizine gecilmelidir.

cd /usr/local

2.1 OpenSSL kurulumu
tar -zxf /root/openssl-0.9.6c.tar.gz

cd openssl-0.9.6c.tar.gz
./config
make
make install
cd ..
rm -rf openssl-0.9.6c


2.2 OpenLDAP kurulumu
tar -zxf /root/openldap-2.0.19.tar.gz
cd openldap-2.0.19
./configure
make depend
make
make install
cd ..
rm -rf openldap-2.0.19


2.3 MySQL kurulumu
tar -zxf /root/mysql-3.23.47.tar.gz
cd mysql-3.23.47
./configure --prefix=/usr/local/mysql --with-charset=latin5
make
make install
cp /usr/local/mysql/share/mysql/mysql.server /usr/local/mysql/bin
/usr/local/mysql/bin/mysql_install_db
groupadd mysql
useradd -g mysql mysql
chown -R root /usr/local/mysql
chown -R mysql /usr/local/mysql/var
chgrp -R mysql /usr/local/mysql
/usr/local/mysql/bin/mysql.server start
cd ..
rm -rf mysql-3.23.47

*MySQL icin root şifresini ayarlamayı unutmayınız!
*MySQL'e PHP aracılığı ile bağlanabilmek icin MySQL sunucusunun calışıyor olması gerekir. Kurulan bilgisayarda her acılışta MySQL'in calışmasını istiyorsanız, /usr/local/mysql/bin/mysql.server dosyasını Linux dağıtımınızdaki ilgili yere yerleştiriniz.
*MySQL yonetimi icin, php ile yazılan web tabanlı bir yonetim programı olan phpMyAdmin kullanılabilir.


2.4 GD kurulumu
tar -zxf /root/gd-1.8.4.tar.gz
cd gd-1.8.4
make
make install
cd ..
rm -rf gd-1.8.4


2.5 Imap kurulumu
tar -zxf /root/imap.tar.Z
mv imap-surumnumarasi imap
cd imap
make slx
cd ..


2.6 MM kurulumu
tar -zxf /root/mm-1.1.3.tar.gz
cd mm-1.1.3
./configure --prefix=/usr/local
make
make install
cd ..
rm -rf mm-1.1.3


2.7 Curl kurulumu
tar -zxf /root/curl-7.9.2.tar.gz
cd curl-7.9.2
./configure --with-ssl
make
make install
cd ..
rm -rf curl-7.9.2


--------------------------------------------------------------------------------

3. Apache'ye gerekli modullerin eklenmesi
Apache'ye mod_php4, mod_ssl ve mod_gzip modullerinin eklenebilmesi icin, Apache'nin kaynak kodu Apache dizinine yerleştirilir.

tar -zxf /root/apache_1.3.22.tar.gz
ln -s apache_1.3.22 apache
cd apache
./configure
cd ..


3.1 Mod_ssl
tar -zxf /root/mod_ssl-2.8.5-1.3.22.tar.gz
cd mod_ssl-2.8.5-1.3.22
./configure --with-apache=/usr/local/apache --with-mm=/usr/local
cd ..


3.2 Mod_php4
tar -zxf /root/php-4.1.1.tar.gz
cd php-4.1.1
./configure --with-apache=/usr/local/apache --with-mysql=/usr/local/mysql --enable-ftp --enable-safe-mode --enable-trans-sid --with-ldap=/usr/local --with-gd=/usr/local --with-openssl=/usr/local/ssl --with-curl=/usr/local --with-imap=/usr/local/imap --with-mm=/usr/local --enable-inline-optimization --with-zlib
make install
cd ..


3.3 Mod_gzip
cp /root/mod_gzip.c.gz .
gzip -d mod_gzip.c.gz



--------------------------------------------------------------------------------

4. Apache kurulumu
cd apache
./configure --prefix=/usr/local/apache --enable-module=ssl --add-module=/usr/local/mod_gzip.c --activate-module=src/modules/php4/libphp4.a
make

Apache'nin bu aşamada istediğimiz ozelliklerle derlenmesi işlemi tamamlanmıştır. Ssl ile şifrelendirilmiş veri alışverişinde onemli bir yeri de sayısal (dijital) sertifikalar tutar. Eğer daha onceden bir sertifika otoritesinden aldığınız bir sertifikanız yoksa, bir tane kendiniz aşağıdaki komut ile yapabilirsiniz. Ancak elbette kendi imzaladığınız bu sertifika, yaygın kullanılan web browserları tarafından otomatik olarak tanınmayacaktır.

make certificate

Son olarak tum derlenmiş dosyalar ilgili dizinlere dağıtılır.

make install

Programların kaynak kodlarına ihtiyacımız kalmadığından onları artık silebiliriz.

rm -rf src
cd ..
rm -rf mod_ssl-2.8.5-1.3.22
rm -rf php-4.1.1
rm -rf imap
rm mod_gzip.c
4.1 Apache'de php4 ayarların yapılması

Şimdi Apache'nin ayar dosyalarında php4 ile ilgili ayarları yapalım.



cd apache

cd conf

nano -w httpd.conf



Apache'nin tum ayarlarının yapıldığı httpd.conf dosyasında aşağıdaki iki satırı bularak onlerinde bulunan # işaretlerini kaldırmamız gerekmektedir.



AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps



Buna ek olarak eğer php3 dosyalarınızın da php4 olarak calıştırılmasını isterseniz, şoyle bir satır ekleyebilirsiniz.



AddType application/x-httpd-php .php3



Php4 ile php3 arasında fazla bir uyumsuzluk bulunmamaktadır (bilinen uyumsuzlukların tam listesi, http://www.php.net/version4/incompatibilities.php sayfasından alınabilir. Ama problem yaşarsanız, Apache'ye hem php4 hem de php3'u modul olarak aynı anda ekleyebilir ve kullanabilirsiniz.









4.2 Apache'de gzip ayarlarının yapılması

httpd.conf dosyasına aşağıdaki satırları ekleyerek mod_gzip'i aktif hale getirebilir ve ayarlarını dilediğiniz yapabilirsiniz. aşağıda ornek ayarları bulabilirsiniz.



mod_gzip_on Yes

mod_gzip_minimum_file_size 10

mod_gzip_maximum_file_size 500000

mod_gzip_maximum_inmem_size 100000

mod_gzip_keep_workfiles No

mod_gzip_temp_dir /tmp

mod_gzip_item_include file \.htm$

mod_gzip_item_include file \.php$

mod_gzip_item_include file \.pl$

mod_gzip_item_include mime ^text/.*

mod_gzip_item_include mime ^application/x-httpd-php

mod_gzip_item_include mime ^httpd/unix-directory$

mod_gzip_item_include handler ^perl-script$

mod_gzip_item_include handler ^server-status$

mod_gzip_item_include handler ^server-info$

mod_gzip_item_exclude file \.css$

mod_gzip_item_exclude file \.js$

mod_gzip_item_exclude mime ^image/.*

mod_gzip_item_exclude mime ^zip/.*



LogFormat "%h %l %u %t \"%V %r\" %>s %b mod_gzip: %n In:%n Out:%n:%npct." common_with_mod_gzip_info2

CustomLog /var/log/apache/mod_gzip common_with_mod_gzip_info2





4.3 Apache'nin başlatılması

Artık Apache'mizi başlatabiliriz.



cd ../bin

./apachectl startssl



Burada sayısal sertifikanın yapımı sırasında size sorulan şifreyi girmeniz gerekmektedir.


Artık Apache sunucumuz hem http://sunucunuz (normal bağlantı), hem de https://sunusunucunuz (şifrelendirilmiş bağlantı) adreslerinde hizmet vermeye başlamıştır. Herhangi bir web browser ile bağlanabilirsiniz.

__________________