|
5 DERSTE PHP ÖĞRENİN... PHP Öğrenmek Artık Çok
Kolay -2

Unix/Linux Sistemleri
Kurma işlemine Unix ortamından başlayalım.
Burada Unix sistemi dediğimiz zaman Unix'in
tekrar bilişim haritasında yerini almasını
sağlayan Linux'u kastediyorum. Bunun için önce
http://www.PHP.net/ adresini ziyaret etmemiz
gerekiyor. Eğer PHP uzmanı olacaksanız, burası
sizin ikinci eviniz olabilir. Downloads
köprüsünü tıklayarak açılacak sayfada Unix/Linux
için kaynak kodunu bilgisayarınıza aktarın.
PHP'yi kuracağınız bilgisayarda bir Web sunucu
programı yoksa, http://www.apache.org/dist/
adresinden apache_1.3.12.tar.gz (veya daha
ileri) dosyasını da indirmeniz gerekir.
Unix-Linux sistemleri için bilgisayarınızda "gcc
C derleyici" bulunması gerekir. Linux
sisteminizde örneğin Red Hat Linux sürüm 5.2
gibi eski bir gcc derleyici varsa, gcc sürüm
2.8.1'i Internet'ten bulmanız gerekir.
Linux'ta program derlediniz mi?
Daha önce hiç Linux programı derlemediyseniz,
önce bazı kavramları açıklığa kavuşturalım:
tar: (tape archiver) birden fazla dosyayı tek
dosya haline getirir ve sıkıştırır. Teyplere
yedekleme amacıyla geliştirilmiştir. tar
dosyaları sıkıştırılmışsa uzatması .gz, değilse
.tar olur.
gcc: GNU'nun C derleyicisidir. İnsan tarafından
okunabilen kaynak kodlarını makina tarafından
okunabilen nesne (object) dosyalarına
dönüştürür. C programlama diliyle yazılmış
kaynak kodları içeren dosyaların uzantını .c
olur. Nesne dosyalarının adının uzantısı
genellikle .o olur. Derleyici başlık (header,
uzantısı .h olan) dosyalarını bulamazsa derleme
hatası verir.
make: henüz derlenmemiş kaynak dosyalarını
derleyen yardımcı bir programdır. make, derleme
talimatlarını Makefile adlı bir dosyadan alır.
ld: GNU'nun bağlayıcı (linker) programıdır.
Nesne dosyalarını ve kitaplık denen dosyaları
birbirine bağlayarak ortaya çalıştırılabilir bir
program dosyası çıkartır. Genellikle Makefile'ın
içinde linker'ın çalıştırılması talimatı bulunur
ve sizin bu programı kullanmanız gerekmez.
ldconfig : paylaşılan kitaplık dosyalarını (shared
librari) arar. Bu dosyalardan birden fazla
program tarafından paylaşılır, ve dosya
adlarında .so bulunur.
./configure : C derleyecisi ve header
dosyalarının nerede olduğunu araştırır, ve
vardığı sonuca göre Makefiles dosyasında
değişiklik yapar.
PHP, bir Unix/Linux sisteminde müstakil
yorumlayıcı veya Apache Web sunucusunun bir
modülü olarak çalışmak üzere derlenebilir. PHP,
müstakil yorumlayıcı olarak kurulduğunda, Web
sunucusu, her ihtiyaç halinde PHP
yorumlayıcısının bir örneğini çalıştırır. Bu,
bir süre sonra Web sunucusunun bulunduğu işletim
sisteminin yükünün artmasına ve işleyişinde
yavaşlamaya yol açabilir. Oysa PHP, sunucunun
bir modülü olarak kurulduğunda, bu sakınca
ortaya çıkmaz. (Bu özelliği ile PHP, klasik CGI/Perl'ün
çalışma tarzından ayrılır, ASP'nin ve
ColdFusion'ın çalışma tarzına yaklaşır.) Bununla
birlikte kötü niyetle veya beceriksizce yazılmış
PHP programları modül olarak kurulmuş PHP'yi
çökertirlerse, Web sunucusunu da çökertmiş
olurlar; oysa müstakil PHP yorumlayıcı çökerse,
Web sunucusuna bir şey olmaz.
Burada yapacağımız kurulum işlemi sırasında
Linux kurulu olan bilgisayarımıza Apache Web
sunucu programını, bu sunucunun kullanacağı
güvenli Socket katmanını sağlayacak Mod_SSL
programını, bu programın gerektirdiği OpenSSL
aracını, MySQL veritabanı sunucusunu ve PHP
Scripting dilini kurmuş olacağız.
PHP'yi Linux ortamında Apache Web sunucusuna
modül olarak kurmak için sırasıyla şu işlemleri
yapmamız gerekir (Sisteminizde gzip veya gunzip
ile gcc and GNU make kurulu olduğunu
varsayıyorum):
1. Sisteminizi root olarak başlatın ve
sıkıştırılmış olarak alacağınız PHP ve Apache
dosyalarını geniş yer olan geçici bir dizinde
açın, ve o dizine gidin. Sözgelimi, Apache'nin
tar-zip olarak sıkıştırılmış kaynak dosyalarının
tmp adlı dizinde olduğunu varsayalım:
# cd /tmp
# gunzip –c apache_1.3.12.tar.gz | tar xf –
Burada, indirdiğiniz Apache sürümü farklı ise
onun adını yazacaksınız. Şimdi Apache'yi
açtığınız klasöre gidin ve buradaki configure
dosyasını çalıştırın:
# cd apache_1.3.12
# ./configure --prefix=/usr/local/apache
Buradaki örnekte Apache'yi /usr/local/apache
dizinine koyduğumuza dikkat edin. Bu dizini, bir
çok kurulumun varsayım olarak arayacağı dizin
olduğu için tercih ediyoruz. Ama isterseniz siz
Apache'yi başka dizine de kurabilirsiniz.
2. Sıra MySQL veritabanı sunucusunda. Linux'ta
root oturumunda iken sıkıştırılmış dosyaları
indirdiğiniz geçici dizine geçin ve dosyaları
açın; sonra oluşturulan dizine giderek,
configure komutu ile veritabanı sürücüsünü
yapılandırın:
# cd /tmp
# gunzip -dc mysql-3.22.32.tar.gz | tar xvf -
# cd mysql-3.22.32
# configure --prefix=/usr/local/mysql

Şimdi make komutu ile binary dosyalarını
oluşturarak, ve sisteme yükleyelim:
# make
# make install
MySQL'in kullanım izinlerini belirlememiz
gerekir. Aşağıdaki komutları yazarken "parola"
kelimesi yerine vermek istediğiniz parola
kelimesini yazmanız gerekir:
# scripts/mysql_install_db
# cd /usr/local/mysql/bin
# ./safe_mysqld &
# ./mysqladmin -u root password 'parola'
Kurulum işleminin başarılı olup olmadığını
sınamak için, kurulum sırasında oluşturlan örnek
veritabanı dosyalarını bulunup bulunmadığını
soruşturabilir ve kendimiz yeni bir veritabanı
oluşturabiliriz. Bunun için şu komutu yazalım:
# BINDIR/mysqlshow -p
# mysql -u root -p
Sistem "Enter password:" karşılığını verdiğinde,
yukarıda kullanım izinlerini belirlerken
yazdığınız parolayı yazın; MySQL sunucusu
çalışacak ve size kullanıcı izinlerinin
bulunduğu "mysql" ve sınama amacıyla oluşturulan
"test" adlı iki veritabanının bulunduğunu
bildirecektir. Şimdi kendi veritabanımızı
oluşturalım. MySQL sunucu komut istemcisi
satırına şunu yazın (Bilgisayarın vereceği
karşılıklardan ayırt etmek için kendi
yazdıklarımızı koyu renkle gösteriyoruz):
mysql> create database deneme;
Sunucu "Query OK, 1 row affected (0.00 sec)"
şeklinde karşılık verecektir. Şimdi bu
veritabanını seçerek içinde deneme adlı ve
içinde "no" ve "isim" adlı iki alan bulunan bir
tablo oluşturalım (MySQL komutları büyük
harf-küçük harf ayrımı yapmaz; komutlardan sonra
noktalı virgül konur). Burada koyu renkle
gösterilen satırlar ve işaretler bize aittir:
mysql> use deneme;
Database changed
mysql> CREATE TABLE books (
-> no int(3) not null auto_increment,
-> isim char(50) not null,
-> unique(no),
-> primary key(no)
-> );
Query OK, 0 rows affected (0.00 sec)
Bakalım tablomuz başarılı şekilde oluşmuş mu?
mysql> show tables;
mysql> describe deneme;
Field Type Null Key Default Extra
no int(3) PRI 0 auto_increment
isim char(50)
2 rows in set (0.00 sec)
Çok güzel! Hem MySQL'i kurmuş, hem de ilk
tablomuzu oluşturmuş bulunuyoruz. MySQL
komutlarını daha ayrıntılı öğrenebilmek için
MySQL'in http://www.mysql.com adresindeki
sitesini ziyaret edebilirsiniz. Şimdilik
MySQL'den çıkalım ve kuruluma devam edelim.
3. Sıra geldi PHP'ye! PHP kaynak dosyasının
bulunduğu geçici dizine geçin, ve dosyaları
açın; sonra açılan dosyaların bulunduğu dizine
gidin:
# gunzip -c PHP-4.0.1pl2.tar.gz | tar xf -
# cd PHP-4.0.1pl2
Şimdi configure dosyasını çalıştıracağız; bu
komutun bir çok opsiyonu vardır; bunların tümünü
görmek istiyorsanız, "configure --help" komutunu
verebilirsiniz. Biz sadece PHP'ye MySQL ve
Apache opsiyonlarını eklemekle yetineceğiz:
# ./configure --with-mysql=/usr/local/mysql \
--with-xml \
--with-apache=../apache_1.3.12 \
--enable-track-vars
Oluşan binary dosyalarını program dosyasına
çevirerek, yükleyelim:
# make
# make install
Oluşan ini dosyasını lib dizinine koplayalım:
# cp PHP.ini-dist /usr/local/lib/PHP.ini
PHP.ini dosyasındaki bir çok özelliği
değiştirerek, PHP'nin çalışma tarzını
ayarlayabilirsiniz; örneğin şu satırı ekleyerek,
PHP'nin azamî çalışma süresini
arttırabilirsiniz:
max_execution_time = 60;
Güvenli socket ve Internet Erişimi Katmanı
Kuracağınız Web sunucusu gerçek Internet'e
açılacaksa, sisteminize Mod_SSL yeteneğini
kazandırmanız gerekir. Bu sistemin rsaref-2.0
adında bir eki vardır; ancak Amerika dışında
kurulan Web Sunucularda rsaref-2.0 ekinin
kurulması gerekmez. Apache sunucusunu sadece PHP
dosyalarınızı sınamak amacıyla kendi
bilgisayarınıza kuruyorsanız, Mod_SSL kurmak
şart değildir.
Bu işlemi yapmak zorunda iseniz, önce
http://www.openssl.org/ adresinden openssl-0.9.1c.tar.gz
adlı dosyayı, http://www.modssl.org/ adresinden
de mod_ssl-2.6.5-1.3.12.tar.gz dosyasını
indirin. Sonra sırasıyla şu işlemleri
yapabilirsiniz:
# gunzip -dc openssl-0.9.5c.tar.gz | tar xvf -
# cd openssl-0.9.x
#./config --prefix=/usr/local/ssl \
-L`pwd`/../rsaref-2.0/local/rsaref -fPIC
# make
# make test
# make install
# cd ..
Şimdi Mod_SSL modülünü Apache ile kullanılacak
şekilde kuralım:
# gunzip -dc mod_ssl-2.6.4-1.3.12.tar.gz |tar
xvf -
# cd
# ./configure --with-apache=../apache_1.3.12
# cd ..
# cd apache_1.3.12
# SSL_BASE=../openssl-0.9.x \
RSA_BASE=../rsaref-2.0/local \
./configure \
--enable-module=ssl \
--activate-module=src/modules/PHP4/libPHP4.a \
--enable-module=PHP4 \
--prefix=/usr/local/apache \
--enable-shared=ssl
[...ISS'ler buraya arzu ettikleri diğer
opsiyonları ekleyebilirler..]
# make
Bu noktada sistem binary dosyaların
oluşturulduğunu ve kurulumun gerekli güvenlik
sertifikalarını istediğini bildirecektir.
Sertifika oluşturma konusunda fazla bilgi için,
http://www.modssl.org/docs/2.6/ssl_faq.html#ToC25
adresine bakabilirsiniz.) Diyelim ki sadece
ISS'in yeri, firma adı ve bir iki diğer bilgiden
oluşan özel bir sertifika oluşturmakla
yetineceksiniz. Bunun için şu komutu girin ve
sistemin soracağı sorulara cevap verin:
# make certificate TYPE=custom
Şimdi Apache'yi yeniden kurabiliriz:
# make install
Herşey yolunda gittiyse, sistem "You now have
successfully built and installed the Apache 1.3
HTTP server," şeklinde başlayan uzun bir mesaj
verecektir. Bu durumda Apache sunucusu şu
komutla başlatılabilir:
/usr/local/apache/bin/apachectl start
Apache'yi güvenli iletişim katmanı desteği ile
başlatmak istiyorsanız şu komutu yazın:
/usr/local/apache/bin/apachectl startssl
Bu işlemleri başarıyla bitirmiş olsak bile
sistemin çalıştığını kontrol etmemiz gerekir.
Önce Apache'nin çalıştığından emin olalım. Bunun
için önce Apache'nin yapılandırılmasına PHP'nun
eklendiğinden emin olmamız gerekir. Kurulumu
buradaki gibi yaptı iseniz
/usr/local/apache/conf dizininde bulunan
httpd.conf dosyasını açın; ve "addtype for PHP4"
satırların önündeki yorum (#) işaretlerini
kaldırın; yani bu satır yorum olmaktan çıkıp
yapılandırma komutu olsun:
#AddType application/x-httpd-PHP .PHP
#AddType application/x-httpd-PHP-source .PHPs
şeklindeki satırları şu şekle getirin:
AddType application/x-httpd-PHP .PHP
AddType application/x-httpd-PHP-source .PHPs
Şimdi Apache sunucusunu çalıştırabilir ve PHP
desteğinin bulunup bulunmadığını
sınayabilirsiniz:
# cd /usr/local/apache/bin
# ./apachectl configtest
Syntax OK
# ./apachectl start
./apachectl start: httpd started
"httpd started" ifadesi bize Apache'nin
çalıştığını gösteriyor. Şimdi Browser'ınızı açın
ve HTTP sunucusu olarak Apache'nin adresini
yazın. Bu, bilgisayarınızın Domain adıdır;
Apache'nin kurulu olduğu bilgisayarın IP
numarasını da yazabilirsiniz.
Şimdi, bir düzyazı dosyasına şunları yazın:
<? PHPinfo(); ?>
Dosyayı PHP.PHP adıyla Apache'nin Web sunucu
için kök dizin saydığı klasöre kaydedin.
Browser'ınızın URL adresi alanına sunucu adıyla
birlikte dosyanın adını yazın.
Aldığınız sonuç, PHP'nin sistem ve sunucu
hakkında ayrıntılı raporu ise, kendi kendinizi
kutlayabilirsiniz: hem Apache sunucu, hem de PHP
çalışıyor!
Windows-PWS ve IIS
PHP'yi Windows 95/98/NT/2000 işletim
sistemlerinden biri ile çalışan bilgisayara
kurmak için önce http://www.PHP.org adresinden
PHP-4.0.1pl2-Win32.zip veya daha ileri sürümdeki
zip dosyasını almamız gerekir. Bu dosyayı açın
ve içindekileri sözgelimi c:\PHP dizinine
kopyalayın. (Dizini oluştururken "PHP," "PHP"
veya "PHP" yazdığınıza dikkat edin!)
Daha önce Wihdows sistemine PHP 3.x kurmuş
olanlar PHP 4.0'ün kurulumumu biraz farklı
bulacaklardır. Bu, daha önce PHP kişisel ve
Internet amaçlı Web sunucuda (PWS veya IIS)
müstakil bir CGI programı olarak çalışırken
şimdi buna ek olarak (tıpkı ASP gibi) DLL
yoluyla, bir ISAPI modülü olarak çalışmasının
sağlanmış olmasından kaynaklanıyor.
PHP'yi Windows 95 veya NT4.0 sisteminde kurulu
bir PWS veya IIS için kuracaksınız, önce bazı
önlemler almanız gerekiyor. NT 4.0 sistemlerinde
IIS 4.0'ün bulunduğu Option Pack'in kurulması
şart. Windows 95 sistemlerinde ise önce DCOM
bileşenlerinin günceleştirilmesi gerekiyor. Bu
dosyayı,
http://download.microsoft.com/msdownload/dcom/95/x86/en/dcom95.exe
adresinden alabilirsiniz.
PHP'yi müstakil çalışan CGI programı olarak
kullanmayı düşünseniz bile daha önceki
sürümlerinden farklı olarak bazı DLL
dosyalarının Windows dizininde sistem
alt-dizinine kopyalanması gerekir. Açtığınız Zip
dosyasından çıkan ve C:\PHP dizinine
kopyaladığınız dosyalar arasında bulunan
MSVCRT.DLL ve PHP4TS.DLL adlı dosyaları Windows
9x sistemlerinde WINDOWS dizininde SYSTEM,
NT/2000'de ise WINNT dzininde SYSTEM32 dizinine
kopya edin. (Windows, MSVCRT.DLL dosyasının
kullanılmakta olduğu bildirerek, kopyalamayı
reddederse, kopyalamaya gerek yok demektir.)
IIS 4.0 ve 5.0
Windows NT/2000'e kurulu olan IIS 4.0 veya 5.0'e
PHP desteği kazandırmak için, önce yukarıdaki
gibi DLL dosyalarını gerekli yere kopyalayın.
Açtığınız Zip dosyasından çıkmış olan
PHP.ini-dist isimli düz yazı dosyasını Notepad
ile açın ve "extension_dir=" satırını bularak,
karşısındaki "./" yazısını silip yerine PHP
dosyalarını kopyaladığınız dizinin adını
(örneğin C:\PHP) yazın. PHP dizinin adını doğru
yazdığınızı kontrol etmekte daima yarar vardır!
Sonra ";browscap =" satırını bulun ve önündeki
noktalı virgülü kaldırarak karşısındaki
"extra/browscap.ini" kelimelerini
c:\Winnt\browscap.ini olarak değiştirin. Bu
dosyayı, PHP.ini adıyla Winnt dizinine kaydedin.
(Windows dizininin Winnt adını taşıdığını
varsayıyorum. Sizin Windows dizininiz başka ise,
gerekli düzeltmeyi yapmanız gerekir.)
Browser Yetenek Dosyası: Browscap.ini
Windows sistemine kurulu bir Web Sunucu
programına (PWS, IIS veya Apache Win32) PHP
yeteneği kazandırabilmek için PHP'nin talep
sahibi Browser'ın yeteneklerini bir dosyadan
okuması gerekir. Bu dosyanın adı browscap.ini
dir.
Internet'te http://asptracker.com/browscap.zip
dosyasını alarak açın ve çıkacak "browscap.txt"
dosyasının adını "browscap.ini" olarak
değiştirerek Windows/Winnt klasörüne kopyalayın.
Internet Services Manager'ı açın; bu araç, NT
4.0'te Start menüsünde Programs/Option Pack'te,
2000'de ise Control Panel/Administrative
Tools'dadır. Açılacak pencerede muhtemelen
Default Web Server adını taşıyan Web sunucusunun
adını sağ tıklayın:
Açılan listede Properties maddesini; açılan
kutuda Home Directory sekmesini seçin;
Configuration düğmesini tıklayın ve yeni bir
Application Mappings satırı eklemek üzere,
Executable kutusuna PHP4isapi.dll dosyasının tam
yolunu ve adını (örneğin C:\PHP\ PHP4isapi.dll);
Extension kutusuna ise .PHP yazın (IIS 4.0'te
Method exclusions kutusunu boş bırakın) ve
Script engine kutusuna işaret koyun.
ISAPI Filters sekmesini seçin. Add düğmesini
tıklayarak yeni bir ISAPI filtresi kaydı yapın.
Açılacak kutuda filtre adı olarak PHP, yol
olarak da PHP4isapi.dll dosyasının bulunduğu
dizinin yolunu (örneğin C:\PHP\ PHP4isapi.dll)
yazın.
IIS'i tamamen durdurun; ama bunun için sadece
Internet Services Manager'daki Stop düğmesini
tıklamak yetmez; komut istemci (MSDOS Prompt)
penceresinde net stop iisadmin yazın. Windows,
bu servisin bağlı olduğu diğer bazı hizmetlerin
de durdurulacağını bildirince "Y" yazın ve
Enter'a basın. Şimdi IIS'i tekrar başlatmak için
aynı pencerede net start w3svc yazın. Artık
IIS'iniz PHP anlar hale gelmiş olmalı. Bunu,
hemen sınayalım. Notepad veya bir başka düzyazı
programıyla şunları yazın:
<? PHPinfo(); ?>
Dosyayı PHP.PHP adıyla IIS'in kök dizin saydığı
klasöre kaydedin. Browser'ınızın URL adresi
alanına sunucu adıyla birlikte dosyanın adını
yazın.
Bravo! İşte yeni bir dil öğrenmiş Web sunucuya
sahip oldunuz.

|