Apache Kurulumu

[Ssl - Php4 (MySQL - OpenLDAP - OpenSSL - GD - Imap - MM - Curl) - Gzip]

Doruk Fişek, dfisek@fisek.com.tr

v1.2.1, 05 Ocak 2002


Bu doküman, APACHE web sunucusunun PHP - SSL - Gzip destekli olarak statik derlenmesini anlatmaktadır. Linux dağıtımları ile hazır gelen derlenmiş Apache sunucuları da, kullanım alanınıza ve şeklinize göre kolaylıkla işinizi görebilir. Çeşitli Linux dağıtımları için farklı kurulum biçimleri olabilir ancak programlar kaynak kodlarından derlendiği için dokümanın anlattığı yöntemin tüm Linux dağıtımlarında çalışması gerekir. Dokümanda kurulan programların tüm seçenekleri ayrıntıları ile anlatılmamış, sadece belirli seçeneklerle direk kurulum anlatılmıştır.

1. Giriş

2. Mod_php4 ve Mod_ssl modülleri için gerekli programların kurulumu

3. Apache'ye gerekli modüllerin eklenmesi

4. Apache kurulumu


1. Giriş

Bugün internette web sunucuların %60'ını Apache oluşturmaktadır. Sağlamlık, güvenilirlik ve yüksek performansın yanı sıra Apache'nin bu yaygınlığının en önemli nedenleri de çok esnek olmasıdır. Gereksinimlere göre Apache'ye birçok modül eklenerek web üzerinde hemen her uygulama gerçekleştirilebilir.

Çok çeşitli sayıdaki Apache modülleri arasından mod_php4, mod_ssl, mod_gzip modüllerinin eklenmesi ile Apache'nin kurulumu anlatılmaktadır. Gelecek sürümlerde dokümana başka Apache modüllerinin de (frontpage uzantıları, mod_dav, mod_bandwidth, vb) eklenmesi düşünülmektedir.

Ssl (secure socket layer), internet üzerinde şifrelendirilmiş veri alışverişi için kullanılan bir protokoldür. Şifreli veri alışverişi özellikle e-ticaret uygulamalarında "olmazsa olmaz" bir konuma sahiptir.

Php (php hypertext preprocessor), web sunucu üzerinde işlenip html içine gömülen bir script dilidir. Özellikle web üzerinde veritabanı uygulamaları geliştirilmesinde kullanılması yaygındır. Hemen her tür veritabanı sunucusuna (MySQL, Interbase, Sybase, Oracle, ...) erişim için kullanılabilmektedir. Apache-Php-MySQL üçlüsü internette çok yaygın kullanılan bir standart haline gelmektedir. Birçok farklı program ile kullanılabilen php, bu dokümanda 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) içerik kodlama standartlarına göre web sayfalarının gzip ile web sunucunuz tarafından sıkıştırılarak kullanıcının browser'ına gönderilmesini sağlamaktadır. 1999'dan beri piyasaya çıkan tüm browser'lar gzip desteklemektedir, herhangi bir ek program yüklenmesine gerek yoktur. Mod_gzip, özellikle yazı ve makaleler gibi çok sıkıştırılabilen dosyaları kullanıcının hem çok daha hızlı çekebilmesini, hem de çok 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 önce aşağıdaki programların elinizde bulunması gerekir.

1.2 Bu dokümanın yeni sürümleri

Apache Kurulumu dokümanın yeni sürümleri düzenli olarak linux@linux.org.tr e-posta listesinde duyurulacak ve Türkiye Linux Kullanıcıları Derneği'nin web sitesine (www.linux.org.tr) gönderilecektir.

Dokümanın en son sürümü HTML olarak http://linux.fisek.com.tr/dfisek/apache-kurulum.php adresinden alınabilir.

1.3 Kopyalama hakkı engel-le-ne-mez! (slogan tonunda söylenecek)

Bu doküman GNU Serbest Belge Lisansı'na (GFDL) sahiptir.

1.4 Görüşler, sorular, ...

Dokümanla ile ilgili her türlü görüşleriniz ve sorularınız için benimle dfisek@fisek.com.tr adresinden bağlantı kurabilirsiniz. Dokümanda bir hata bulduğunuzda bunu bana haber verirseniz, dokümanın bir sonraki sürümünde bunu düzeltebilirim. Dokümanla ilgili her türlü mesaj, sekiz gözle beklenmektedir :-)


2. Mod_php4 ve Mod_ssl modülleri için gerekli programların kurulumu

Kurulumların tamamı /usr/local dizinine yapılacağından dolayı, öncelikle o dizine geçilmelidir.

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 için root şifresini ayarlamayı unutmayınız!
     
  • MySQL'e PHP aracılığı ile bağlanabilmek için MySQL sunucusunun çalışıyor olması gerekir. Kurulan bilgisayarda her açılışta MySQL'in çalışmasını istiyorsanız, /usr/local/mysql/bin/mysql.server dosyasını Linux dağıtımınızdaki ilgili yere yerleştiriniz.
     
  • MySQL yönetimi için, php ile yazılan web tabanlı bir yönetim 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 modüllerin eklenmesi

    Apache'ye mod_php4, mod_ssl ve mod_gzip modüllerinin eklenebilmesi için, 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 özelliklerle derlenmesi işlemi tamamlanmıştır. Ssl ile şifrelendirilmiş veri alışverişinde önemli bir yeri de sayısal (dijital) sertifikalar tutar. Eğer daha önceden 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 tüm 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 tüm ayarlarının yapıldığı httpd.conf dosyasında aşağıdaki iki satırı bularak önlerinde 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 çalıştırılmasını isterseniz, şöyle 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'ü modül 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 örnek 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: %{mod_gzip_result}n In:%{mod_gzip_input_size}n Out:%{mod_gzip_output_size}n:%{mod_gzip_compression_ratio}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://sunucunuz (şifrelendirilmiş bağlantı) adreslerinde hizmet vermeye başlamıştır. Herhangi bir web browser ile bağlanabilirsiniz.