Apache ve PHP Kurulumu Örneği Bu dosyada Web sunucunuzda birçok özellik destekleyen bir Apache/PHP ikilisi kurabilmeniz için örnek bir kurulum anlatılmıştır.
Kullanılan modüller • • • • • • • • • • • • • • • • •
Apache 1.3.12 » Kullanımı kolay ve hızlı bir Web sunucusu http://www.apache.org/ PHP 4.0.0 » Sunucu tarafında programlama için kullanılan popüler bir dil http://www.php.net/ mySql 3.22.32 » PHP içinden kullanılabilecek bedava ve hızlı bir veritabanı http://www.mysql.com/ GNU programları » Kurulum esnasında yardımcı olabilecek programlar http://www.gnu.org/ Perl » Çok kullanışlı bir programlama dili (bazı programların ayarları için gereksinim duyulabilir) http://www.perl.com/ OpenSSL 0.95.a » Bedava dağıtılan bir SSL programı http://www.openssl.org/ mod_ssl » Apache içinde SSL desteği için http://www.modssl.org/ openldap » Bir LDAP istemcisi http://www.openldap.org/ UWimap » Bir IMAP (uzaktan e-posta desteği) kütüphanesi http://www.washington.edu/imap/ Zend Optimizer » PHP programlarını hızlandıran bir motor http://www.zend.com/ gd 1.82 » PHP içinden grafik işlemleri yaptırabileceğiniz bir kütüphane http://www.boutell.com/gd/ freetype » gd kütüphanesi içinde TTF yazıtiplerini kullanabilmek için http://www.freetype.org/ libpng » gd kütüphanesi içinde PNG resim tiplerini kullanabilmek için http://www.libpng.org/pub/png/ jpg-src 6b » gd kütüphanesi içinde JPEG resim tiplerini kullanabilmek için ftp://ftp.uu.net/graphics/jpeg/ libtiff » gd kütüphanesi içinde TIFF resim tiplerini kullanabilmek için http://www.libtiff.org/ zlib 1.1.3 » PNG'de kullanılan sıkıştırma için gerekli kütüphane (gnu tar da bu programı kullanabilir) http://www.freesoftware.com/pub/infozip/zlib/ Apache modülleri 1.0.8 » Apache'nin işlevselliğini ve güvenliğini arttıran çeşitli eklentiler http://contrib.apache.org/
A. Resim kütüphaneleri ve diğer gerekli kütüphaneleri açarak işe başlayın: #gunzip #gunzip #gunzip #gunzip #gunzip #gunzip
zlib-1.1.3.tar.gz | tar xvf libpng-1.0.6.tar.gz | tar xvf jpgsrc.v6b.tar.gz | tar xvf tiff-v3.5.5.tar.gz | tar xvf freetype-1.3.1.tar.gz | tar xvf gd-1.8.2.tar.gz | tar xvf -
B. Önce zlib-1.1.3 dizinine girin ve zlib'i kurun, varsayılan kurulma yeri /usr/local dizinidir:
#cd zlib-1.1.3 #./configure #make; make install C. Eğer shared object desteği isterseniz şu adımları da yapın: #make distclean; ./configure --shared #make; make install D. libpng-1.0.6 dizinine geçin ve derleme için hazırlayın #cd ../libpng-1.0.6 #./configure E. Eğer zlib'i varsayılan yerine (/usr/local) koymadıysanız, Makefile'ı açın ve zlib için lib ve include dizinlerini belirtin, daha sonra da derleyin ve kurun: #vi Makefile >> ZLIBLIB=/usr/local/lib ZLIBINC=/usr/local/include #make; make install F.
jpeg-6b dizinine geçin ve derleme için hazırlayın: #cd ../jpeg-6b #./configure
G. Derleyin ve kurun: #make; make install; make install-lib H. Eğer shared-object desteği isterseniz şu adımları da yapın: #make distclean #./configure --enable-shared #make; make install; make install-lib I.
tiff-v3.5.5 dizinine girin ve derleme için hazırlayın: #cd ../tiff-v3.5.5 #./configure
J.
Derleyin ve kurun: #make; make install
K. freetype-1.3.1 dizinine geçin ve derleme için hazırlayın: #cd ../freetype-1.3.1 #./configure
L. Derleyin ve kurun: #make; make install M. Artık gd için gereken tüm kütüphaneler kurulduğuna göre, gd dizinine geçip derleme için hazırlayabiliriz: #cd ../gd-1.8.2 #./configure N. gd'yi de derleyin ve kurun: #make; make install O. Şimdi, eksta kütüphaneleri kurabiliriz. İlk önce, pdf, openldap, UWimap ve mySql paketlerini açın. #cd ..
#gunzip #gunzip #gunzip #gunzip P.
pdflib-3.0.tar.gz | tar xvf openldap-1.2.10.tar.gz | tar xvf imap-4.7c.tar.gz | tar xvf mysql-3.22.32.tar.gz | tar xvf -
pdflib-3.0 dizinine geçin ve derleme için hazırlayın: #cd pdflib-3.0 #./configure
Q. Derleyin ve kurun: #make; make install R. openldap-1.2.10 dizininde configure'a şu parametreleri verin, bu şekilde sadece LDAP istemcisini kurarsınız (yerel ağınızdan bağlanabileceğiniz bir LDAP sunucu da kurmak isterseniz, Netscape Directory Server tavsiye edilir): #cd ../openldap-1.2.10 #./configure \ --prefix=/usr/local/ldap \ --with-threads=lwp \ --disable-slapd \ --disable-ldapd \ --disable-slupd S. Eğer thread hatası alırsanız, bu sefer şunu deneyin: #./configure \ --prefix=/usr/local/ldap \ --without-threads \ --disable-slapd \ --disable-ldapd \ --disable-slupd T. Derleyin ve kurun: #make; make instal U. IMAP istemcisini kurmak için imap-4.7c dizinine geçin ve programı derleyin: #cd ../imap-4.7c #make gso; make depend (Solaris için) ya da #make slx (Linux için) V. Programı kurmak için şu satırları girin: #make install #cp c-client/c-client.a /usr/local/lib/ #cp c-client/rfc822.h /usr/local/include/ #cp c-client/mail.h /usr/local/include/ #cp c-client/linkage.h /usr/local/include/ W. PHP'nin libc-client.a dosyasını beklediği yerde bulması için gerekli sembolik bağı da verin: #ln -s /usr/local/lib/c-client.a \ /usr/local/lib/libc-client.a X. mySql'i kurmak için mysql-3.22.32 dizinine geçin ve derleme için hazırlayın (makinenizin yeterli belleği yoksa, --with-low-memory parametresini ekleyin): #cd ../mysql-3.22.32 #./configure --prefix=/usr/local/mysql \ --with-low-memory Y.
Derleyin, kontrol edin ve kurun: #make; make check
#make install Z. Apache'yi derlemeye başlamadan önce SSL'le ilgili kütüphane ve modülleri kurun. Bunun için aşağıdaki paketlerin hepsini açın: #cd .. #gunzip #gunzip #gunzip #gunzip
openssl-0.9.5a.tar.gz | tar xvf mod_ssl-2.6.4-1.3.12.tar.gz | tar xvf apache_1.3.12.tar.gz | tar xvf apache-contrib-1.0.8.tar.gz | tar xvf -
AA. Güvenlik modülü desteği kurmak için önce openssl-0.9.5a dizinine geçin, ve kuruluma hazırlayın: #cd ../openssl-0.9.5a #./config \ no-idea \ -fPIC \ --prefix=/usr/local \ --openssldir=/usr/local/openssl BB. Derleyin ve kurun: #make; make install CC.Apache içinde SSL desteği içinse, mod_ssl-2.6.4-1.3.12 dizinine geçin ve kuruluma hazırlayın: #cd ../mod_ssl-2.6.4-1.3.12 #./configure --with-apache=../apache_1.3.12 DD.Eğer geçerli bir SSL sertifikanız varsa, onları da şu şekilde ekleyebilirsiniz: #./configure --with-apache=../apache_1.3.12 \ --with-crt=/sertifika/dizini/ssl.crt/server.crt \ --with-key=/sertifika/dizini/ssl.key/server.key EE. mod_ssl'i derlemenize gerek yoktur. Apache extra modüllerini kolaylık olması amacıyla /tmp'ye taşıyın: #cd .. #mv apache-contrib-1.0.8 /tmp/contrib
FF. Artık apache_1.3.12 dizinine geçerek apache'yi hazırlayabiliriz (not: bu modüllerin hepsini kurmak zorunda değilsiniz, ayrıca daha hızlı çalışmasını istediğiniz modüllerin başındaki enable-shared kısımlarını atabilirsiniz): #cd apache_1.3.12 SSL_BASE=../openssl-0.9.5a ./configure \ --enable-rule=SHARED_CORE \ --prefix=/usr/local/apache \ --server-uid=webuser --server-gid=webgroup \ --enable-module=ssl \ --enable-module=auth_anon\ --enable-module=define \ --enable-module=expires \ --enable-module=headers \ --enable-module=include \ --enable-module=info \ --enable-module=rewrite \ --enable-module=speling \ --enable-module=status \ --enable-module=digest \ --add-module=/tmp/contrib/mod_auth_cookie/mod_auth_cookie.c \ --add-module=/tmp/contrib/mod_auth_inst/mod_auth_inst.c \ --add-module=/tmp/contrib/mod_bandwidth/mod_bandwidth.c \ --add-module=/tmp/contrib/mod_disallow_id/mod_disallow_id.c \
--add-module=/tmp/contrib/mod_layout/mod_layout.c \ --add-module=/tmp/contrib/mod_put/mod_put.c \ --add-module=/tmp/contrib/mod_session/mod_session.c \ --add-module=/tmp/contrib/mod_macro/mod_macro.c \ --add-module=/tmp/contrib/mod_roaming/mod_roaming.c \ --enable-shared=ssl \ --enable-shared=auth_anon \ --enable-shared=define \ --enable-shared=expires \ --enable-shared=headers \ --enable-shared=include \ --enable-shared=speling \ --enable-shared=digest \ --enable-shared=auth_cookie \ --enable-shared=auth_inst \ --enable-shared=layout \ --enable-shared=put \ --enable-shared=macro \ --enable-shared=roaming GG.apache'yi derleyin: #make HH.Eğer geçerli bir SSL sertifikanız varsa make certificate komutuna parametre olarak verebilirsiniz. Yoksa geçici bir taneyi şu şekilde kurabilirsiniz (size soracağı sorulardan, özellikle şifre önemlidir): #make certificate TYPE=dummy II. Artık apache'yi kurabilirsiniz: #make install JJ. Şimdi, PHP'yi de kurmak için php-4.0.0 dizinine geçin ve derleme için hazırlayın: #cd ../php-4.0.0 #./configure \ --with-apxs=/usr/local/apache/bin/apxs \ --disable-debug \ --enable-track-vars \ --enable-ftp \ --enable-memory-limit \ --enable-sysvsem --enable-sysvshm \ --enable-yp --enable-wddx \ --with-mysql=/usr/local/mysql \ --with-ldap=/usr/local \ --with-imap=/usr/local \ --with-zlib=/usr/local \ --with-ttf=/usr/local \ --with-gd=/usr/local \ --with-pdflib=/usr/local \ --with-zlib-dir=/usr/local \ --with-jpeg-dir=/usr/local \ --with-png-dir=/usr/local KK. PHP'yi derleyin ve kurun: #make; make install LL. PHP bir ayar dosyası kullanmaktadır, ancak make install komutu bunu gerekli yere kopyalamaz. Örnek bir dosyayı kaynak kod dizininden kendiniz kopyalamalısınız: #cp php.ini-dist /usr/local/lib/php.ini MM.Apache ayar dosyasına bakarak şu satırların olduğunu kontrol edin:
vi /usr/local/apache/conf/httpd.conf >> LoadModule php4_module libexec/libphp4.so AddModule mod_php4.c NN.httpd.conf'dan çıkmadan, .php uzantılı dosyaları çalıştırabilmek için şu satırın başındaki yorum işaretini (#) de kaldırın: #AddType application/x-httpd-php .php
OO.Yine apache ayar dosyasına şu satırları eklemeniz, LD_LIBRARY_PATH ortam değişkeninde /usr/local/lib'in olmasını sağlayacaktır. Aksi takdirde apache'yi çalıştırırken "libpdf.so not found" cinsinden bir hata mesajı alabilirsiniz. SetEnv LD_LIBRARY_PATH /usr/local/lib:/lib:/usr/ucblib:/usr/openwin/lib PP. Zend Optimizer'ı kurmak için zend-vers paketini açın: #gunzip zend-vers.tar.gz | tar xvf #cd zend-vers #mkdir /usr/local/Zend #mkdir /usr/local/Zend/lib #cp ZendOptimizer.so /usr/local/Zend/lib QQ.PHP'nin ayar dosyasına şu satırları ekleyin: #vi /usr/local/lib/php.ini >> zend_optimizer.optimization_level=7 zend_extension="/usr/local/Zend/lib/ZendOptimizer.so" RR. Artık apache'yi çalıştırabilirsiniz: #/usr/local/apache/bin/apachectl start SS. Eğer apache'nin SSL kullanarak açılmasını istiyorsanız, şu komutu girin ve sorduğu zaman yukarıda make certificate adımında sorulan şifreyi girin: #/usr/local/apache/bin/apachectl startssl TT. Eğer apache şuna benzer bir hata vererek çalışmayı reddederse, bir sembolik bağ kullanarak sorunu çözebilirsiniz. ...Cannot load module lib_php4.so, file not found: libmysqlclient.so #ln -s /usr/local/mysql/lib/mysql/libmysqlclient.so.6 \ /usr/local/lib/libmysqlclient.so UU. Benzeri lib-xxx.so dosyaları için de /usr/local/lib'in altında sembolik bağlar yaratmanız gerekebilir. VV. PHP'nizin çalışıp çalışmadığını test etmek için, Web sayfalarının durduğu dizinde ilk.php dosyasına şunları ekleyin: #vi /usr/local/apache/htdocs/ilk.php >> phpinfo();
?> WW.Web tarayıcınızı açın ve adres alanına şunu yazın: http://localhost/ilk.php XX. Herşey sorunsuz gitmişse, PHP ve Zend logolarıyla başlayan bir sayfa ekrana gelmelidir.
Hazırlayan: Cüneyt Yılmaz (29/06/2000)