|
PHP'YE GİRİŞ
C/C++, Pascal, hatta Visual Basic bilen kişiler için PHP öğrenmek
hemen hemen bir öğleden sonrayı ayırmak suretiyle yapılabilecek bir
iştir. Bu dillere aşina olmayanlar ise belki bir kaç öğleden
sonralarını ayırmak zorunda kalabilirler! PHP, bir Script dilidir;
yani kodları düz yazı dosyaları halinde kaydedilir ve kullanılacağı
ortamda bir yorumlayıcı tarafından yorumlanır. Bu, PHP ile
yazacağınız programları, derlemek yani ortaya bir EXE veya
çalıştırılabilir başka bir dosya çıkartmaya gerek olmadığı anlamına
gelir. Fakat PHP Script'lerinizi çalıştırabilmek için bu dili bilen
bir programa ihtiyacınız vardır. Bu programın tek başına (komut
istemci penceresinde veya terminal ekranında) çalışması mümkün
olduğu gibi, Web Server tarafından da çalıştırılabilir olması
gerekir. Başka bir deyişle Web Sunucu programının PHP anlar hale
getirilmesini sağlamak zorundayız. PHP yorumcusu, bugün Zend-çekirdeği
adı verilen bir Scripting teknolojine dayalı olarak, Zeev Suraski
ile Andi Gutmans tarafından sıfırdan, tamamen yeniden yazılmış
bulunuyor. Zend, tıpkı Windows Script Host ve mesela Visual Basic
for Applications (VBA) gibi, işletim sistemine kendisi ile uyumlu
Script dilleriyle yazılmış programları çalıştırma imkanı kazandıran
bir teknolojidir (Zend konusunda ek bilgiyi Internet'te www.zend.com
adresinde bulabilirsiniz.) Bugün bu dilin resmî adı "PHP: Hypertext
Preprocessor" (Hiper-metin ön-işlemcisi) olarak değiştirildi, ve
çeşitli Web Server'ların PHP dili anlaması için gerekli
yorumlayıcıları yeniden üretlidi. 20 Ocak 200'de İsrail'de PHP'nin
ilk uluslararası konferansı yapıldı ve 4'ncü sürümünün betası ortaya
kondu. Peki ama PHP nedir? PHP ile artık oturup her türlü
işlevselliği sahip programlar yazabilirsiniz; yani PHP başlı başına
uygulama alanları bulabilecek düzeye ulaşmıştır. Başka bir deyişle
PHP ile oyun programından tutun veritabanı yönetimine kadar hemen
her türlü programı yazabilirsiniz. Bizi bu kitapçıkta ilgilendiren
tarafıyla PHP, Web Sunucu'ya bir takım işler yaptırmak için program
yazma dilidir. Tıpkı CGI/Perl veya ASP ya da ColdFusion, Java (Javascript
değil!) gibi! PHP kodları, oluşturacağımız HTML sayfalarında HTML
etiketlerinin arasında kendi özel ayracı içinde yazılır:
<html>
<?PHP
echo ("Merhaba Dünya!");
?>
</html>
İster kişisel bilgisayarımızda, ister gerçek Internet ortamında
olsun, bir Web Sunucu, ziyaretçinin (Internet istemci programının,
Browser'ın) talep ettiği dosya adının uzatması olarak ".PHP,"
".PHP2," ".PHP3," veya ".PHP4" görünce, kendine kendine, "Yine bana
iş çıktı!" diye düşünür! Çünkü Web Server, uzatması ".htm" veya
".html" olan bir dosyayı, kendi sabit disklerinden birinde bulur ve
zahmetsizce, ziyaretçinin bilgisayarına gönderir. Fakat, ".asp," .pl,"
".cfm" gibi, ".PHP" uzatması, Web Sunucu'ya bu sayfayı olduğu gibi,
alıp ziyaretçinin Browser'ına göndermek yerine, önce PHP
yorumlayıcıyı çağırarak, ona teslim etmesi gerektiğini bildirir. PHP
yorumlayıcısı (yani Windows ortamında PHP.exe veya 4'ncü sürümle
gelen PHP4isapi.dll, Unix ve türevlerinde çalıştırılabilir PHP
dosyası), kendisine teslim edilen bu belgede önce " <? PHP" ve "?> "
ayraçları arasındaki PHP kodlarını seçerek alır ve gereği ne ise onu
yapar. Bu ayraçların içinde kalan kodlar, bizim yapılmasını
istediğimiz işlemin komutlarıdır. HTML ile yetinmeyip, PHP
kullanmamızın sebebi, bu komutların HTML'in yapayacağı şeyleri
yapmasıdır. HTML'in yapamayacağı şeylerin başında, Web Sunucusu'nda
yapılacak işler vardır. Sözgelimi HTML etiketlerini kullanarak, Web
Sunucusu'ndaki bir veritabanı dosyasını açıp, içindeki verileri
okuyamayız. HTML yoluyla Web Sunucusu'nun sabit disklerindeki düz
yazı dosyalarını da okuyamayız ve bu disklere dosya yazamayız. HTML
etiketleri ile Web ziyaretçimizden bilgi edinebilir ve bunları
Sunucu'ya yollayabiliriz; ama o kadar! Bu bilgileri işe yarar şekle
sokmak için bize Server'da çalışan bir program gerekir. Server'da
çalışan program, EXE ve DLL veya JSP (Java Server Pages) gibi bir
"gerçek program"; veya Perl, ASP ve PHP gibi Script diliyle yazılmış
bir program olabilir. (Gerçek programları yazanlar, tabiî, sizin
Script diliyle yazılmış programlara "program" demenize çok kızarlar!
Ama bu Script pogramlarının program olmasını hiç engellemez.) Ne
diyorduk? Web Sunucu, ".PHP" uzatmasını görünce telaşa kapılır, bu
dosyayı PHP yorumlayıcısına verir ve o da " <?PHP" ve "?> "
ayraçları içindeki kodları icra eder, demiştik. Bu icraatın sonunda
ortaya çıkan ürün eğer ziyaretçiye gönderilecekse, HTML etiketleri
içinde gönderilir; yani ziyaretçi asla PHP kodlarını göremez. Kimi
zaman PHP programımızın çalışması sonucu ortaya ziyaretçiye
gönderilecek bir ürün çıkmaz; elde edilen sonuç ya başka bir
programa (örneğin elektronik ileti gönderen bir Sendmail progamına)
hammadde olarak verilir, ya da Server'da sabit diske yazılır. Fakat
her durumda, Web ziyaretçimiz bizim PHP kodlarımızı göremez; bu Web
sayfalarımızda PHP kodu kullanmamız halinde, sayfalarımızın Browser
tarafından tanınması veya tanınmaması gibi bir durumun ortaya
çıkmaması demektir. Ziyaretçi ne tür Browser kullanırsa kullansın,
kendisine Sunucu'dan daima saf HTML kodu geleceği için,
sayfalarımızı rahatça görebilecektir. Tabiî bir nokta var:
Sayfalarımızda herhangi bir Browser'ın arızalı yorumladığı veya hiç
yorumlayamadığı HTML etiketleri bulunabilir; ya da söz gelimi
ziyaretçiye giden HTML'in içinde Browser'da çalıştırılacak olan
başka Script kodları bulunabilir; ve Browser bu kodları
anlamayabilir. Örneğin, HTML sayfanızda VBScript kodları kullanmış
iseniz, Netscape ile sitenize bağlanmış olan kişiler bu kodun
oluşturmasını istediğiniz etkiyi göremeyeceklerdir; çünkü Netscape
VBScript anlamaz! PHP ile yazacağınız Web programlarının (eski
deyimiyle "sayfaların") oluşturacağı HTML belgesinin Browser türleri
ve sürümleri ile uyarlılığını sağlamak yine Web programcısı olarak
sizin sorumluluğunuzdadır. Özetlersek, PHP bir CGI programlama
dilidir; bu dille, Web Sunucusu ile Web ziyaretçisi arasındaki
buluşma noktası olan CGI'da bilgi alışverişi yapılabilir; Sunucu'da
bulunan başka programlar çalıştırılabilir ve böylece Web
sayfalarımıza HTML'in sınırlamalarının ötesinde hareket ve ziyaretçi
ile etkileşme olanağı kazandırılabilir. Sanırım iyi bir Web
programcısı olarak şu anda ekrana "Merhaba Dünya!" yazdırmak için
sabırsızlanıyorsunuz. Ama bunun için, PHP sayfanızı ya PHP-uyumlu
bir Web Sunucusu'ndaki Web sitenize yüklemek, ya da kişisel
bilgisayarınızdaki kişişel Web Sunucusu'na PHP öğretmek
zorundasınız. Bu ikinci yöntemi kuvvetle tavsiye ederim; çünkü
yazacağınız PHP programlarını gerçek Internet Sunucusunda sınamak,
bazen arzu edilmeyen durumlara yol açabilir. Oysa kişinin bu
denemeleri, evinde ve işyerinde kendi bilgisayarında yapması, çoğu
zaman daha az başağrısı ve gözyaşına yol açar! En azından, PHP
hatalarınızı ve gözyaşlarınızı sizden başka gören olmaz!
PHP VE VERİTABANI
Kişisel
bilgisayarınızdaki kişisel Web sunucusuna PHP öğretme işlemine
geçmeden önce, hemen hemen PHP'nin ikiz kardeşi sayılan MySQL'den ve
onun rakibi PostgreSQL'den kısaca söz edelim. PHP'nin varlık
sebeplerinin başında, ticarî Unix ve Microsoft Windows işletim
sistemlerinden ayrı, ticarî olmayan Açık Sistem ortamlarında çalışan
bir Script dili ile bu dille kullanılabilecek yine Açık Sistem ürünü
bir veritabanı erişim ve yönetim aracına sahip olmak gelir. Perl,
gerçi PHP'den çok önce Açık Sistem ürünü olarak, isteyen Web
Programcısı'nın ücretsiz edineceği bir CGI programlama dili olarak
Web'in ilk gününden beri Web Programcısının emrinde idi. Ama Perl,
metin dosyalarından yazı çekmek ve bunları biçimlendirerek rapor
haline getirmek amacıyla geliştirilen bir dil olduğu için, özellikle
veritabanına dayalı işlemlerde programcıya çok güçlük çıkartıyordu.
ASP ise (ASP desteği sağlayan ve ücretsiz Web sitesi veren
firmaların giderek artmasına ve veritabanı konusunda hem kolaylık,
hem de büyük bir etkinlik sağlamasına rağmen) çoğunlukla ücretli Web
sitesi aldığımız ticarî amaçlı evsahibi (Hosting) firmalarının
sağladığı bir teknoloji olarak görüldü. PHP, tasarımcılarının MySQL
ve PostgreSQL teknolojilerini geliştiren kurum ve firmalarla yaptığı
yakın işbirliği sonucu ikinci sürümünden itibaren veri-yönlendirmeli
Web uygulaması alanında önemli bir araç olarak belirdi. Dolayısıyla,
PHP kurulumu dendiği zaman, kendiliğinden, MySQL kurulumu da
kastedilmiş olur. Şimdi PostgreSQL da ekleyebiliriz. PHP, bir
dildir; MySQL ve PostgreSQL ise bir demet sürücüdür. PHP ile, Web
Server'a sayfanızı Internet ziyaretçisine göndermeden önce bir takım
komutları icra etmesini, bir takım veri dosyalarını açıp içindeki
bilgileri alıp bunları HTML kodlarıyla bezeyip, Browser'a bildiğimiz
klasik HTML sayfası olarak göndermesi talimatını veririz. MySQL ve
PostgreSQL ise, Windows sistemlerinde Denetim Masası'nda gördüğünüz
ODBC Veri Kaynağı Yönetmeni adlı araç gibi, bir vertabanı sunucusu,
yani Database Server pprogramlarıdır. Yakın zamana kadar bu iki
veritabanı yönetim aracı arasında fazla bir çekişme yoktu. Ancak
şimdi özellikle Linux kullanıcıları topluluklarında iki program
arasında verimlilik testleri yapılıyor; hangisinin daha iyi
olduğnuna ilişkin yoğun bir tartışma sürüyor. PHPBuilder.com
uzmanları, yaptıkları bir çok denemede, MySQL'in daha hızlı ve daha
etkin çalıştıkları sonucuna varıyorlar. (Bu konuda daha geniş bilgi
edinmek için Internet'te www://PHPbuilder.com/columns/tim20000705.PHP3
adresine bakabilirsiniz.) MySQL, bir kullanıcı lisansı 200 Dolar
olan ticarî bir program iken 2000 yılı ortalarında GPL (GNU General
Public License/GNU Kamusal Lisans) uygulamasına geçmiş ve ücretsiz
dağtılır hale gelmiş bulunuyor. Buna göre MySQL'i bir ticarî
uygulamanın içinde motor olarak kullanacaksanız üreteci firmaya
lisans ücreti ödemeniz gerekir; bunun dışındaki uygulamalar için
programı Internet'ten indirerek kullanabilirsiniz. PHP için MySQL'e
gerek yoktur. PHP, bir NT veya Win9x tabanlı Web Server'da
çalıştırılıyorsa, Microsoft'un ODBC sürücüleri ile çalışabilir; ve
ODBC'nin okuduğu bütün veritabanlarından veri çekebilir. (ODBC'nin
Unix-Linux sürümü de vardır.) Ayrıca PHP için Adabas, dBase, Empress,
FilePro, Informix, InterBase, mSQL, Oracle, Solid, Sybase, Velocis
ve bir çok Unix veritabanı yöneticisi için geliştirilmiş add-on
(sonradan eklenen) modüller vardır. PHP, bir çok LDAP istemci
programı için yazılmış API'lere de sahiptir. PHP ile IMAP, SMTP gibi
Internet elektronik mektup protokollerini kullanmak da mümkündür.
Biz bu kitapçıkta örneklerimizde ve uygulamalarımızıda MySQ'den
yararlanacağız. PHP-MySQL ikilisini kişisel bilgisayarımıza kurmak
için önce gerekli programları Internet'ten indirmemiz gerekir. Bunun
için aşağıdaki linklerden yararlanabilirsiniz:
PHP VE WEB
SUNUCUSU
Bizim açımızdan PHP, bir
Web sunucu programıdır; kurulacağı sistemdeki Web sunucusu ile
uyumlu olması gerekir. 4'ncü sürümü itibariyle, PHP bütün
Unix-türevi sistemler (örneğin Linux) ve Microsoft Windows
sistemleri ile uyumludur. Birlikte çalışabileceği Web sunucu
programları arasında Apache, IIS, FHTTP, Omni HTTPd, Xitami ve
Windows 95/98 için PWS (Personal Web Server) vardır. Gerçek Internet
ortamında sunucu programlara PHP yeteneği kazandırma işlemi, Web
Pnogramcısı olarak bizi ilgilendirmez; bizim için Internet sitemize
evsahipliği yapan Hosting firmasının PHP desteği verip vermediğini
bilmek yeter. Fakat tasarımlarımızı sınayabilmek için kendi
bilgisayarımıza bir kişisel Web Server kurmak ve bu programı PHP-uyumlu
hale getirmek gerekir. Burada sadece iki örnek ele alacağız: Linux
için Apache sunucu programı ve MS-Windows için PWS. Bu iki
programdan hangisi sizin sisteminize uygunsa onu kendi
bilgisayarınıza kuracağınızı varsayarak, şimdi PHP ve MySQL kurulumu
ile uğraşabiliriz.
UNIX/LINUX
SİSTEMLERİ
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
DERLEDİNİZ Mİ?
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;
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 DOSYASI : browscap.ini
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.
PWS 4.0
Windows'un 95/98/SE/Me
türlerine kişisel Web sunucu programı olarak Personal Web Server (PWS
4.0) kurulmalıdır. PHP Zip dosyasından çıkacak DLL'leri Windows
dizininde System klasörüne kopyaladıktan sonra, Zip dosyasından
çıkmış olan PHP.ini-dist isimli düzyazı 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
edin! Sonra ";browscap =" satırını bulun ve önündeki noktalı
virgülü kaldırarak karşısındaki "extra/browscap.ini" kelimelerini
c:\Windows\browscap.ini olarak değiştirin. Bu dosyayı, PHP.ini
adıyla Windows dizinine kaydedin. Daha önceki sayfalarda göreceğiniz
şekilde Browscap.ini dosyasının dosyasını Windows dizinine
kopyalamış olmanız gerekir. (Windows dizininin Windows adını
taşıdığını varsayıyorum. Sizin Windows dizininiz başka ise, gerekli
düzeltmeyi yapabilirsiniz.)
Şimdi, açtığınız PHP Zip dosyasının içinden çıkan PWS-PHP4.reg adlı
dosyayı bir düzyazı programıyla, örneğin Notepad ile açın. ".PHP"="[PUT
PATH HERE]\\PHP4isapi.dll" yazılı satırı PHP dosyalarını
koyduğunuz dizine göre, örneğin şöyle değiştirin:
".PHP" = "C:\\PHP\\PHP4isapi.dll"
Burada çok dikkat etmeniz gereken nokta, ters-bölü işaretlerinin
başka yerlerde normal olarak yazdığımız gibi bir adet değil, iki
adet olmasıdır. Dosyayı kaydettikten sonra, iki kere tıklayın ve
Windows'un Registry'de değişiklik yapmayı isteyip, istemediğinize
ilişkin sorusuna Evet yanıtını verin. Tamaam! Sizin de PHP bilen bir
PWS'iniz oldu. Ama bunu bir sınayalım. Ve bunu bir Merhaba Dünya
programı ile yapalım ki, gelenek bozulmasın!
Düzyazı programınızla şu metni merhaba.PHP adıyla PWS'in Web için
kök dizin saydığı (muhtemelen C:\Inetpub\wwwroot) klasöre
kaydedin:
<html>
<?PHP
echo ("Merhaba Dünya!");
?>
</html>
Sonra Personal Web Manager kutusunda, Ana başlıklı bölümde,
Yayımlama kısmındaki "http://" diye başlayan ve kişisel Web
sunucunuzun adı ile devam eden köprüyü tıklayın. Varsayılan
Browser'ınız, kişisel Web sunucunuzun ana sayfasını açacaktır.
Browser'ın URL adres bölümüne, merhaba.PHP yazın ve klavyede Enter
tuşuna basın. Eğer gerçekten PWS'iniz, PHP öğrenmişse, size ve
dünyaya merhaba diyecektir.
WINDOWS'TA APACHE
NT sisteminizde ISS
değil de Apache for Win 32 Web Server programını çalıştırıyorsanız,
sürümüne göre httpd.conf veya srm.conf dosyasına şu ekleri yapmanız
gerekir:
ScriptAlias /PHP3/"c:/path-to-PHP-dir/"
AddType application/x-httpd-PHP3 .PHP3
Action application/x-httpd-PHP3"/PHP3/PHP.exe"
WINDOWS'TA MySQL
PHP, Windows
ortamında, Windows'un ODBC sürücülerini kullanarak, sürücüsü bulunan
bütün veritabanlarına ulaşabilir. Ancak Windows ortamında
geliştirseniz bile, Web sitenizi, Unix tabanlı ve ODBC-uyumlu
olmayan bir sunucuya gönderebilirsiniz. Bu durumda sayfalarınızda
kullanacağınız verileri muhtemelen MySQL aracılığıyla veritabanından
çekeceksiniz demektir. Bu yüzden Windows sisteminize MySQL kurmak ve
veritabanlarını bu araçla geliştirmeniz yerinde olur. Unix/Linux
ortamında ücretsiz olmakla birlikte MySQL, Windows için bedeli
paylaşımlı (shareware) olarak edinilebilir. Benioku dosyasında
belirtildiğine göre, programı eğitim amacıyla ve 30 günü aşmamak
kaydıyla kullanıyorsanız, ücret ödenmesi gerekmiyor. Diğer
durumlarda TCX firmasının Internet'te http://www.tcx.se adresindeki
sitesindeki formları doldurarak lisans alınması gerekiyor. Bu
programı, MySQL'in http://www.mysql.com/downloads/ adresinden
edinebilirsiniz. Bu adresteki mysql-shareware-3.22.34-win.zip
dosyasını alarak, bir geçici dizinde açın. (Sisteminiz gerçek
Internet sunucusu olarak ticarî amaçlı hizmet sağlayacaksa şu
dosyayı almanız gerekir: http://www.mysql.com/Downloads/MySQL-3.23/mysql-3.23.21-win-src.zip)
Shareware sürümünü içeren dosyayı açtığınızda ortaya çıkacak setup.exe
programı MySQL'i kuracaktır.
MySQL Server'ın Windows'da da tıpkı Linux'ta olduğu gibi
çalıştırılması ve durdurulması gerekir. MySQL'in paylaşım sürümünü
kullanmak için Windows sistemlerinde mysqld-shareware.exe programını
çalıştırmanız gerekir. DOS komut istemcisini açın ve "C:/mysql/bin"
dizinine giderek, sırasıyla şu komutları verin:
mysqld-shareware
mysqlshow
mysqlshow -u root mysql
mysqladmin version status proc
Şimdi MySQL server çalışıyor ve biraz sonra PHP yoluyla kişisel Web
Server'ınıza hizmet vermeye hazır demektir. Bu komutları icra
ettiğiniz sırada bir hata mesajı ile karaşılaşırsanız, MySQL'in
kuruluşunda hata yapmış olabilirsiniz. DOS ekrarında test ve MySQLl
veri tabanlarının varlığını ve hizmete girdiğini gösteren mesajlar
görürseniz, MySQL güzelce çalışıyor demektir. Bunu bir de Browser
ile ve PHP yoluyla sınayalım:
Yukarıda IIS'e PHP desteği kazandırma çalışmaları sırasında
oluşturmadı iseniz, düz yazı programınızda şu tek satırı yazın; php.php
adıyla, kişisel Web'inizin kök dizinine kaydedin:
<? PHPinfo(); ?>
Browser'ınızı
açın; URL hanesine örneğin http://localhost/PHP.PHP3 yazın. Açılacak
sayfada iki şeye dikkat edin: MySQL ve ODBC bölümleri var mı? MySQL
bölümü varsa; kendinizi yeniden kutlayın! ODBC bölümü yoksa,
muhtemelen sisteminizde Microsoft'un Open Database Connectivity
(Açık Veribanı Bağlantısı) sürücüleri kurulu değil demektir. (Windows'da
Denetim Masası'nda ODBC simgesini görmüyorsanız, MS'un sitesinden
gerekli kur programını indirmeniz gerekebilir. Linux'ta ise MyODBC
programı ile bu imkanı kazanabilirsiniz.) Bir kere daha tekrar etmek
gerekirse, PHP ile veritabanına dayanan sayfalar yapmak için mutlaka
ve sadece MySQL sürücülerini kullanmak gerekmez. Bunun yerine MS'un
ODBC sürücülerini kullanabilirsiniz. Ancak Web sitenize evsahipliği
yapan firmanın size ODBC desteği verip vermediğini öğrenmeniz
gerekir. Aslında aynı şekilde, evsahibi firmanın MySQL desteği verip
vermediğini de öğrenmek zorundasınız. (PHP ile MS-ODBC sürücülerini
kullanabilmek için Andrew Stopford'un ASPToday sitesindeki
http://www.asptoday.com/articles/20000202.htm yazısında geniş bilgi
bulabilirsiniz.)
Geçmiş olsun. Bana sorarsanız, PHP ile dolu yeni bir hayata başlamak
için en önemli adımı attınız. Bundan sonrası, sadece PHP dilini
öğrenmekten ibaret. Dilin üretecilerinden Zeev Suraski, bu yılın
başında İsrail'de yapılan ilk uluslararası PHP Konferansı'nda "PHP
öğrenmek zor mu?" diye soran bir bilgisayar meraklısına şu
cevabı veriyordu: "Bir haftadan fazla zaman ayırmanız
gerekiyorsa, sizin için zor demektir!"
|