Hakkında Künye

Apache + PHP + Mysql + XDebug Netbeans

LAMP adı verilen Apache/Php/Mysql (ve Linux :) ) kurulumunu Windows platform altında gerçekleştirmek için aşağıdaki adımlar izlenebilir:

Bu döküman Windows 7 (64 bit) yüklü bir sistem üzerine 27 Eylül 2009 tarihi itibarıyla ilgili yazılımların son sürümleri kurularak oluşturulmuştur.

Bu döküman Windows işletim sistemi, tarayıcılar, web sunucular, PHP, MySql ve Netbeans ile ilgili çok temel bilgiye sahip olduğunu varsaymaktadır. Bu döküman bu teknolojilere giriş yapmak amacıyla yazılmamıştır, bu teknolojiler hakkında hiç bilgisi olmayan bir kullanıcının da uygulayabileceği basitlikte ekran görüntülerine ve açıklamalara sahip değildir. Dökümanda olabildiğince her adım açıklanmaya çalışılmıştır ve yukarıda inkar edilse bile olabildiğince kullanıcının temel bilgilerde eksiği olması durumunda da dökümanı takip edebilmesi ikincil olarak amaçlanmıştır. Fakat temel bilgi eksikliğiniz varsa problem yaşayabilirsiniz, bu durumda problem yaşadığınız teknolojinin dökümantasyonu okumanızı ya da bu teknolojiye giriş yapmak amacıyla yazılmış bir dökümanı da bu dökümanla paralel şekilde incelemeniz tafsiye edilir.

I.Apache

Apache HTTP Server bir web sunucusudur. PHP desteği gelişkin olduğundan özellikle Linux sistemlerde tercih edilir. Windows için Apache HTTP Server'ı http://httpd.apache.org adresinden indirebilirsiniz.

  1. Apache HTTP Server 2.2.13 versyonunu indirin. Apache HTTP server'ın SSL'li ve SSL'siz versyonları paketlenip sunulmaktadır. Bu farkın sebebi SSL'li versyon içerisindeki OpenSSL modülünün lisans durumudur. Eğer https protokolü ile de servis vermeyi düşünüyorsanız SSL'li versyonu indirmeniz gerekmektedir.
  2. Kurulum esnasında Server Information girmeniz gerekmektedir. Burada kullandığınız domain name, server name ve administrator e-mail sunucunun konfigurasyonunda yer alacaktır ve 404 hata sayfası gibi kullanıcıya gösterilen sayfalarda görülmesi mümkün olabilecektir.

    Yine Server Information ekranında sunucunun bir Windows servisi olarak 80. port'da mı, ya da normal bir kullanıcı tarafından elle çalıştırılacak şekilde 8080. portta mı çalışacağını seçebilirsiniz. Eğer sunucunuzu 8080. porttan çalıştırmayı seçtiyseniz dökümanda http://localhost/bir/dizin şeklindeki tüm URL'lerde localhost yanına port numarasını da eklemeniz gerekmektedir, http://localhost:8080/bir/dizin şeklinde.

    Sunucunuz sadece geliştirme için değil sunum için de kullanılacaksa ve uzaktan erişime açık olacaksa servis olarak çalıştırmanız tavsiye edilir. Eğer sunucunuzu sadece geliştirme için kullanacaksanız elle çalışacak şekilde konfigürasyon yapabilirsiniz.

  3. Test: Sunucunuzun çalıştığını test etmek için tarayıcınızı http://localhost adresine yönlendirin. Bilgisayarınızda daha önce kurulu bir Apache sunucu yoksa Apache sunucu ile gelen varsayılan başlangıç sayfası ekrana gelecek ve çıktı "It Works!" olacaktır. Aşağıdaki ekran görüntüsünde düzgün kurulmuş bir Apache sunucunun açılış sayfası görülmektedir. Sağ alt köşedeki taskbar da Apache Monitor ikonu sunucunun çalıştığını göstermektedir.

  4. (Opsiyonel) Konfigurasyon: Apache'nin varsayılan olarak kullandığı DocumentRoot dizini C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs 'dir. Bu dizine koyduğunuz dosyalar (ve altdizinler) web sunucu tarafından görüntülenir. Web sunucunuza gelen herhangi bir istek için gereken dosyalar bu dizin altında aranır.Örnek olarak:

    http://myserver.mydomain.org/mypath/to/funny/pictures.gif

    URL'ini tarayıcınızda görüntülemeye çalıştığınız zaman

    ait bir istek sunucuya gönderilir. Sunucuda Apache varsayılan konfigurasyon ile kuruluysa bu yol C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\mypath\to\funny\pictures.gif dosyasına karşılık gelir.

Varsayılan dizini kullanmanın tek sakıncası Windows Vista ve Windows 7 altındaki UAC sistemi c:\Program Files (x86) altındaki dizinlere erişimi kısıtlamasından dolayı doğabilecek sorunlardır. Web sunucunuzu geliştirme için kullanacaksanız ve PHP kaynak kodlarının sunucu üzerine otomatik deploy edilmesini planlıyorsanız bu dizinin kullanılması kodların otomatik olarak deploy edilememesine yol açabilir ya da kodların deploy edileceği sistemi Administrator olarak çalıştırmak zorunda kalabilirsiniz. Bu yüzden DocumentRoot'u UAC tarafından korunmayan dizinlerden birine almak geliştirme için kullanılan sunucularda rahat çalışmayı sağlayabilir.

a. C:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf altında Apache'nin konfigurasyon dosyaları yer almaktadır. httpd.conf ana konfigurasyon dosyasıdır. Bu dosyadaki

DocumentRoot "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs"

satırını

DocumentRoot "C:/HttpRoot"

olarak değiştirilerek web sunucunuzun ana dizini başka dizine alınabilir. Dosya yolunda düz slash karakterini kullanıldığına dikkat edin.

b. Aynı değişikliği bu satırın biraz aşağısındaki

 

için de yapmanız gerekmektedir. (Bu satırın üstünde "This should be changed to whatever you set DocumentRoot to." şeklinde bir comment bulunur.)

 

satırın yeni hali olacaktır.

C:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf\httpd.conf dosyasının da UAC kontrolü altında olduğunu ve normal bir metin editörü ile açılıp değiştirilemeyeceğini unutmayın. Dosyayı değiştirmek için masaüstünüze kopyalayıp gerekli değişiklikleri yaptıktan sonra geri kopyalayıp eskisinin üstüne yazabilirsiniz.

c. DocumentRoot olarak verdiğiniz dizinin varolduğundan emin olduktan sonra Apache sunucunuzu tekrar başlatın.

Apache sunucunuzu Apache Monitor aracılığıyla tekrar başlatabilirsiniz.

Sunucunuzu tekrar başlattıktan sonra 3. adımı tekrarlayın. DocumentRoot dizini içinde index.html isminde bir dosya varsa HTML içeriği gösterilecektir. Yoksa dizinin içerisindeki dosyalar listelenecektir.

Eğer sunucuyu tekrar başlatamazsanız DocumentRoot olarak verdiğiniz dizinde bir problem var demektir. Dizinin var olduğundan ve Apache sunucunuzu çalıştıran kullanıcı tarafından ulaşılabilir olduğuna emin olun.

Eğer 3. adımı tekrarladığınızda 403 kodlu Forbidden hatası alıyorsanız b. adımını atlamış olabilirsiniz.

Not : Eğer Apache sunucuyu servis olarak kurduysanız Apache Monitor'ü Administrator olarak başlatmanız gerekmektedir. Aksi taktirde Apache Monitor aracılığıyla servisin durdurulup başlatılması mümkün olmayacaktır. Eğer Apache sunucuyu elle başlatılacak şekilde kurduysanız Apache Monitor'ü Administrator olarak çalıştırmanıza gerek yoktur. Apache kurulumu her durumda bilgisayarınızın Başlangıç klasörüne uygun bir Apache Monitor kısayolu eklemektedir.

II.PHP

PHP "PHP is Hypertext Preprocessor" ismiyle anılan, web tabanlı platformlar için geliştirilmiş bir programlama dilidir. Apache sunucu ile birlikte kurulduğunda web sunucu içerisinde PHP dilini kullanan sayfalar yaratarak dinamik içerik kullanmayı mümkün hale getirir. PHP daha çok web sunucular ile çalıştığından PHP kurulumu içerisinde PHP kodlarını standart bir programlama dili gibi komut satırından çalıştıracak programlar olduğu gibi değişik tipte web sunucular ile konuşabilecek arayüzler mevcuttur. Apache sunucuları PHP benzeri programlama dilleriyle Apache modülleri ya da CGI adı verilen arayüzlerden konuşabilmektedir. PHP kurulu içerisinde gerekli Apache modulleri mevcuttur.

  1. PHP 5.3.0 Windows binary dosyaları içerisinden Visual Studio 6 ile derlenmiş versiyonlardan birini indirin. Visual Studio 9 ile derlenmiş versiyonlar sadece IIS Sunucusu ile çalışmak için uygundur.
  2. PHP kurulumu esnasında kullandığınız http sunucuyu PHP ile çalışacak şekilde ayarlayabilmektedir. Apache sunucumuzu PHP ile çalışabilecek hale getirmek için Apache 2.2.x module sunucu tipini seçmemiz, daha sonra da Apache konfigürasyon dizinini PHP kurulumuna göstermemiz gerekmektedir. Apache 2.2 sunucuyu varsayılan şekilde kurduysanız kurulum dizininin C:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf olması gerekmektedir.
  3. PHP kurulumunda kurulacak bileşenler arasında PHP dökümantasyonu, PHP dosyalarının Windows Explorer üzerinden çalıştırılmasını sağlayan eklentiler ve PHP'nin kütüphanesi olarak adlandırılabilecek Extensions (elentiler) mevcuttur. PHP sistemimizi Mysql sunucusu ile kullanabilmek için Mysql eklentisinin kurulduğundan emin olun. Mysql eklentisine alternatif olarak Mysql veritabanlarına ulaşmak için Object Oriented bir API sunan Mysqli eklentisini kurmanız da tafsiye edilir.
  4. (Test) PHP kurulumunun Apache sunucunuzu doğru şekilde ayarladığından emin olmak için Apache sunucunuzun DocumentRoot olarak ayarladığınız ana dizininde index.php isminde bir dosya yaratın ve içerisine aşağıdaki içeriği yerleştirin:

    Web tarayıcınızı http://localhost/index.php adresine yönlendirin. Tarayıcınızın sadece "It works! Also Works with PHP!" çıktısını vermesi gerekmektedir. Aşağıdaki ekran görüntüsü örnek çıktıyı göstermektedir.


    Eğer tarayıcınız dosyanın içeriğini tüm HTML tag'leri ve PHP keywordlerini de gösterecek şekilde ekrana döküyorsa PHP kurulumunuzda sorun var demektir. Aşağıdaki ekran görüntüsü PHP kurulumunda sorun olması durumunda alacağınız çıktıyı göstermektedir.


  5. Eğer PHP kurulumunuz herhangi bir hata vererek sonlanırsa, ya da herhangi bir hata almamanıza rağmen 4. adımda istenilen çıktıyı alamıyorsanız PHP kurulumunuzu elle kontrol etmeniz ve eksik varsa eksikleri elle eklemeniz gerekmektedir.

    Apache sunucunuzun daha önce üzerinde değişiklikler yaptığımız konfigürasyon dosyasını (C:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf\httpd.conf) açın. Dosyanın içerisinde

    LoadModule php5_module "C:/Program Files (x86)/PHP/php5apache2_2.dll"

    AddType application/x-httpd-php .php

    PHPIniDir "C:/Program Files (x86)/PHP"

    satırlarının yer aldığından emin olun, eğer bu satırlar eksikse ekleyin. C:/Program Files (x86)/PHP dizini yerine PHP kurulumu esnasında PHP'nin kurulması için başka bir dizin verdiysenin o dizinin yeralması gerekmektedir. Dosya yolunda düz slash karakterini kullanıldığına dikkat edin.

    Satırları kendiniz eklediyseniz satırları ekledikten sonra sunucunuzu tekrar başlatın.

    Eğer satırları kendiniz ekleyecekseniz dosyanın herhangi bir yerine ekleyebilirsiniz. Sadece dosya içerisindeki blokları arasına eklemediğinizden emin olun, bu bloklar belirli koşullar oluştuğunda geçerli olmaktadır, eklediğiniz satırların dikkate alınmamasına yolaçabilir.

    PHP kurulum dizini içerisinde php5apache2_2.dll ve php.ini dosyalarının yer alması lazımdır. Eğer verilen dizinde bu dosyalar yer almıyorsa PHP kurulumunuz yine çalışmayacaktır, ayrıca Apache sunucunuz tekrar başlamayabilir ve hata üretebilir. Eğer kullandığınız PHP kurulumu bu dosyaları başka bir dizine koyuyorsa (C:\Windows gibi) Apache konfigürasyon dosyası içerisine eklediğiniz satırlarda bu dizini kullanın.

    PHP ile ilgili satırların yeraldığından emin olup sunucununuz tekrar başlattıktan sonra 4. adımı tekrar edin.

  6. (Opsiyonel) Apache sunucu, eğer bir dizin yolunu belirten, dosya ismi vermeyen bir istek ile karşılaşırsa o dizinde index.html dosyasını aramakta, eğer böyle bir dosya yoksa dizin içeriğini listelemektedir. Eğer index.php isimli dosyalarınızın da index.html gibi dizine ait istek gelince çalıştırılmasını istiyorsanız Apache konfigürasyon dosyası içerisinde

     

    DirectoryIndex index.html

     

    şeklinde belirtilen bölümü

     

    DirectoryIndex index.html index.php

     

    olarak değiştirin. Daha sonra Apache sunucunuzu tekrar başlatın.

    Bu özelliği test etmek için Apache sunucunuzun ana dizininde index.html ismindeki bir dosya varsa dosyayı silin (ya da başka bir dizine taşıyın ya da ismini değiştirin) Daha sonra tarayıcınızı http://localhost adresine yönlendirin. Apache sunucumuzu test ederken tarayıcımız bu adrese gittiğinde index.html dosyasının içeriği sunucumuzdan tarayıcımıza gönderilmişti. Şimdi dizinde index.html dosyası bulunmadığından ve index.php dosyası bulunduğundan, yeni yaptığımız ayar ile index.php dosyasının çıktısı (4. adımda aldığımız) tarayıcımıza gelecektir.

III.MySQL

MySQL PHP sistemi ile birlikte kolaylıkla kullanılabilen popüler bir veritabanı sunucusudur. MySQL'in popülerliği PHP'nin popülerliğinin arttığı dönemde artmıştır. Bu ikili veri tabanına bağlı web uygulamaları geliştirmek için özellikle özgür yazılım camiasında tercih edilen bir ikili olmuştur. MySQL veritabanını geliştiren MySQL.com AB MySQL sunucuyu MySQL Community Server adı altında açık kaynak kodlu bir şekilde dağıtmaktadır. Veri tabanı ile ilgili destek içeren bir sürüm ise MYSQL Enterprise Subscription adı altında sunulmaktadır.

  1. MySQL Community Server'ın son kararlı sürümü olan 5.1.19 sürümünün Windows64 (ya da Windows) essential paketini indirin. Essential paketi bu dökümanda kulanacağımız tüm özellikleri barındırmaktadır. Tam sürüm içerisinde gömülü sunucu, performans test programları gibi ileri seviye programlar mevcuttur. MySQL sunucuyu bir web sitesinin alt yapısını oluşturmak için kullanacaksanız tam sürümü indirmeniz önerilir.
  2. MySQL (Essential Sürüm) kurulumu esnasında Typical kurulum yaparsanız sadece C/C++ üzerinden MySQL veritabanına erişmek için gerekli kütüphaneler kurulmamaktadır. C/C++ üzerinden MySQL veritabanına erişmeyi planlıyorsanız Complete kurulum, böyle bir niyetiniz yoksa Typical kurulum yapabilirsiniz.
  3. Kurulum sona erdikten sonra "Configure MySQL Instance" seçeneğini seçerseniz MySQL veritabanınızın ayarlarını yapmanız için bir sihirbaz başlayacaktır. Bu sihirbaz ile özelleştirebileceğiniz MySQL ayarları şunlardır:

    a. MySQL Sunucunun üzerinde çalışacağı bilgisayarın sistem kaynaklarını ne kadar kullanacağı. Developer Machine, Server Machine ve Dedicated MySQL Machine şeklinde üç değeri vardır. MySQL sunucuyu kuracağınız bilgisayarın durumuna göre doğru seçeneği seçmeniz gerekmektedir. Eğer bilgisayar üzerinde aynı zamanda geliştirme yapmayı düşünüyorsanız ilk seçenek, bilgisayarı sadece LAMP mimarisini çalıştırmak için kullanacaksanız ikinci seçenek ve bilgisayarı sadece MySQL çalıştırmak için kullanıyorsanız üçüncü seçenek size en uygun olandır. Emin değilseniz varsayılan değeri seçili bırakabilirsiniz.

    b. MySQL sunucusunun veritabanlarının kullanım şekli. Multifunctional Database, Transactional Database Only ve Non-Transactional Database Only şeklinde üç değeri vardır. Veritabanları bu şekle göre optimize edilmektedir. Sadece basit web uygulamalarında MySQL kullanmak için sunucuyu kuruyorsanız üçüncü seçenek en uygun seçenek olacaktır. Veri tabanını daha karmaşık, transaction gerektiren bir platform olarak kullanmak düşünceniz varsa birinci seçenek en uygun seçenek olacaktır. Emin değilseniz varsayılan değeri seçili bırakabilirsiniz.

    c. MySQL veri dosyalarının hangi sürücüye ve dizine koyulacağı. Eğer veri dosyalarınızın çok yer tutmasını bekliyorsanız ya da veri dosyalarınızı önceden belirlediğiniz bir dizine koyup rahat yedeklemek istiyorsanız burada kendi seçeceğiniz bir sürücüdeki bir dizini veri dosyaları dizini olarak seçebilirsiniz. Emin değilseniz varsayılan dizini seçili bırakabilirsiniz.

    d. MySQL sunucuya aynı anda ortalama kaç kullanıcının bağlanacağı. Decision Support (DSS)/OLAP, Online Transaction Processing (OLTP) ve Manual Setting olmak üzere üç değeri vardır. Standart bir geliştirme ya da az trafikli sunucu ortamı için ilk seçenek uygundur. Eğer bir sunucu ortamı kuruyorsanız ve çok trafik almayı bekliyorsanız ikinci seçeneği işaretleyebilirsiniz. Eğer MySQL sunucunuzun alacağı trafik konusunda kesin bir fikriniz varsa bunu en verimli şekilde karşılacak bağlantı sayısını üçüncü seçeneği kullanarak da girebilirsiniz. Emin değilseniz varsayılan değeri seçili bırakabilirsiniz.

    e. MySQL sunucunun network üzerinden hizmet verip vermeyeceği. Normal şartlar altında sunucuya sadece aynı bilgisayar üzerinden bağlanacak olsanız bile basitlik ve taşınabilirlik için bu seçeneği aktif duruma geçirmeniz tavsiye edilir. Ciddi bir güvenlik kısıtlaması altında çalışacak bir sunucu için bu seçenek etkisiz hale getirilebilir. (Bu dökümanın ilerleyen bölümlerinde bu seçeneğin aktif olduğu varsayılmıştır.)

    f. MySQL sunucunun veri tabanı sunucusu standartlarına uyup uymayacağı. Eğer MySQL sunucu içerisinde sunulan ve MySQL'e özgü olan bir özelliği kullanmayı planlamıyorsanız bu seçeneğin aktif halde olması tavsiye edilir.

    g. MySQL Sunucu üzerinde kullanılacak karakter kümesi. Sunucu üzerinde tutulacak metin tipi verinin karakter kümesini seçmeniz gerekmektedir. Eğer Türkçe karakterler kullanmayacağınızdan eminseniz varsayılan değer olan ilk seçeneği (latin1 karakter kümesini) seçebilirsiniz. Türkçe karakterleri desteklemek için ikinci seçeneği seçmeniz ve UTF8 karakter kümesini kullanmanız, ya da alternatif olarak üçüncü seçeneği seçip latin5 karakter kümesini aktif hale getirmeniz gerekmektedir. (Bu dökümanın ilerleyen bölümlerinde ikinci seçeneğin aktif olduğu ve veritabanı genelinde UTF8 karakter kümesinin kullanıldığı varsayılmıştır.)

    h. MySQL sunucunun bir Windows servisi olarak kurulup kurulmayacağı, kurulursa servisin isminin ne olacağı ve otomatik olarak başlayıp başlamayacağı. MySQL sunucuyu sadece ihtiyacınız olduğu zaman elle başlatmayı tercih etmeyecekseniz bu seçeneği aktif hale getirmeniz tavsiye edilir.

    i. MySQL sunucu ile birlikte gelen programcıkların yollarının Windows'un PATH dizin değişkenine eklenip eklenmeyeceği. Bu programcıkları rahat kullanmak için bu seçeneği aktif hale getirmeniz tavsiye edilir. (Bu dökümanın ilerleyen bölümlerinde bu seçeneğin aktif olduğu varsayılmıştır.)

    j. MySQL sunucunun temel kullanıcı ayarları. MySQL sunucu kendi içerisinde bir kullanıcılar tablosu barındırmaktadır ve sadece bu tabloda tanımlanan kullanıcılara sunucuya bağlanma ve sunucuda tanımlı hakları dahilinde işlem yapma hakkı vermektedir. MySQL sunucunun yönetilmesi için root isimli bir kullanıcının olması tavsiye edilir. Bu seçenek ile bu kullanıcıyı yaratıp bir şifre atayabilir ve bu kullanıcının başka bilgisayardan MySQL sunucuya ulaşıp ulaşmayacağına karar verebilirsiniz.

    Aynı zamanda bu seçenekten veritabanına kimliksiz (anonymous) erişime izin verip vermeyeceğinizi de seçebilirsiniz. Bu tip erişime izin vermemeniz tavsiye edilir.

    Eğer daha önce kurulu bir MySQL veritabanı üzerine tekrar kurulum yapıyorsanız yeni bir root hesabı oluşturmayabilirsiniz. Fakat yeni bir kurulum yapıyorsanız mutlaka root hesabını oluşturun ve kolay olmayan bir şifre atayın.

    Tüm bu seçenekler MySQL'i kurduğunuz dizin altındaki my.ini dosyasına yazılmaktadır. Bu dosyayı kendiniz değiştirerek de MySQL sunucu ve istemci ayarlarınızi özelleştirebilirsiniz. Eğer MySQL sunucuyu varsayılan konumuna kurduysanız bu dosya Vista ve Windows 7'de UAC tarafından korunmaktadır.

    Tüm seçenekleri seçip sihirbazın son adımına geldiğinizde seçenekler my.ini dosyasına yazılır ve MySQL sunucuyu servis olarak kurduysanız servis başlatılır. Servis başladıktan sonra da seçtiğiniz kullanıcı ayarları sunucuya uygulanır. Artık sunucuya bağlanmaya hazırsınız.

  4. (Test) MySQL sunucuyu servis olarak kurduysanız ve otomatik olarak başlamasını seçtiyseniz kurulum sonunda MySQL sunucunuz başlayacaktır. MySQL sunucuya bağlanmak için MySQL kurulumu sonrasında Start Menu içerisine kısayolu eklenen MySQL Command Line Client 'ı kullanabilirsiniz. Programı çalıştırdığınız zaman size şifre soracaktır. Şifre olarak root kullanıcısı için atadığınız şifreyi girebilirsiniz. Eğer veritabanına giriş yaptıysanız MySQL sunucu problemsiz kurulmuş demektir. Aşağıdaki ekran görüntüsündeki komutları verip sunucunun düzgün çalıştığından emin olabilirsiniz.

    Eğer MySQL Command Line Client kısayolu Start Menu'de yoksa bir komut satırı açıp

    mysql -u root -p

    komutunu vererek MySQL Command Line Client' ı çalıştırabilirsiniz.


    Eğer MySQL sunucuyu servis olarak kurmadıysanız ya da başka bir sebeple sunucu çalışmıyorsa ilk önce 5. adımı uygulayıp daha sonra bu adıma geri dönün. MySQL sunucunun çalışıp çalışmadığını Windows Task Manager'dan görebilirsiniz. Tüm kullanıcılara ait işlemleri listelerseniz çalışan MySQL sunucunun process ismi mysqld.exe olarak listelenecektir. Eğer böyle bir işlem yoksa MySQL sunucu çalışmamaktadır.

  5. MySQL sunucuyu çalıştırmanız gerekiyorsa sunucunun servis olarak kurulup kurulmadığına bağlı olarak bunu iki şekilde yapabilirsiniz.

    a. MySQL servisini yeniden başlatmak:

    Eğer MySQL sunucuyu servis olarak kurduysanız Windows'un servisler listesini açın. Bu listeyi Star Menu içerisine services yazarak ya da Control Panel -> Computer Management yolunu takip ederek açabilirsiniz. MySQL isimli servisi seçip sol taraftaki Restart (ya da Start) linkine tıklayın.

    b. MySQL sunucuyu elle başlatmak:

    Eğer MySQL sunucuyu sadece ihtiyacınız olduğu zaman başlatmak istiyorsanız en güvenli yol sunucuyu servis olarak kurup servisin oromatik olarak başlatılmamasını sağlamaktır. Bu durumda Windows servisleri listesinden ihtiyacınız olduğu zaman MySQL sunucuyu başlatıp durdurabilirsiniz.

    Herhangi bir sebepten dolayı MySQL sunucuyu servis olarak kurmak istemediyseniz MySQL sunucuyu kullanmak için komut satırından başlatmanız ve durdurmanız gerekmektedir.

    MySQL sunucuyu başlatmak için komut satırından

    mysqld --console

    ya da

    mysqld

    komutlarından birini verebilirsiniz. --console parametresi hataların log dosyalarına değil de konsola basılmasını sağlamaktadır. Sunucu başladığı zaman

    mysqld: ready for connections.

    mesajını göreceksiniz. Bu noktada sunucunuz başlamış demektir. 4. adımdaki testi yaparak sunucunuzun çalıştığından emin olabilirsiniz.

    MySQL sunucu başladığı zaman çeşitli dosyalar yaratmaktadır. Eğer MySQL sunucuyu Windows Vista ya da Windows 7 altında UAC tarafından erişimi kontrol edilen bir dizine kurduysanız ve MySQL sunucuyu elle başlatmaya çalışıyorsanız bu dosyaların yaratılmasında problem oluşabilir. Bu yüzden eğer MySQL sunucuyu Windows Vista ya da Windows 7 altında elle başlatmaya çalışıyorsanız bunu administrator yetkisine sahip olduğunuz bir komut satırından yapın.

    Bu tip bir komut satırı açmak için Start Menu / Accessories içerisindeki Command Prompt kısayoluna sağ tıklayıp Run as administrator komutuyla komut satırını açın.

    MySQL sunucunuzu kapatmak için yeni bir komut satırı açarak

    mysqladmin shutdown -u root -p

    komutunu vermeniz ve şifre sorulduğunda MySQL sunucunun root şifresini vermeniz gerekmektedir. Bu komut satırının administrator yetkisine sahip olmasına gerek yoktur. Aşağıdaki ekran görüntülerinde başlamış bir MySQL sunucuya ait komut satırı, bir MySQL sunucunun durdurulması için kullanılmış bir komut satırı ve durmuş bir MySQL sunucuya ait komut satırı yeralmaktadır.




IV. PHP + MySQL

PHP ve MySQL kurulumlarını doğru bir şekilde yaptıysanız PHP üzerinden MySQL veritabanına bağlanıp MySQL veritabanı sorguları çalıştırabiliyor olmanız lazımdır.

Bunu test etmek için aşağıdaki içeriği web dizininiz içerisinde herhangi bir yere phpmysqltest.php adıyla kaydedin ve tarayıcınızı bu dosyaya yönlendirin.

 

mysql_connect("localhost","root",);

$result = mysql_query("SELECT NOW()");

$time = mysql_fetch_array($result);

echo $time[0];

?>

Kırmızı ile belirtilen yere "<" ve ">" karakterleri olmadan mysql veritabanının root kullanıcısının şifresini yazmanız gerekmektedir. Eğer PHP - MySQL bağlantısı düzgün olarak kurulduysa tarayıcınızda çıktı olarak o günün tarihi ve o andaki saati görmeniz gerekmektedir.


V.XDebug

XDebug PHP ile kullanılmak üzere tasarlanmış bir debug mekanizmasıdır. PHP kodları Apache sunucu üzerinde çalıştığından klasik programlama dilleri için kullanılan debugger'lara benzer bir debugger kullanmak mümkün değildir. XDebug, Server Side Debugger adı verilen bir yapı sunar. Yani debugger aslında Apache sunucunuz üzerinde çalışmaktadır ve sunucuda çalıştırdığınız PHP kodlarında XDebug'ın sunduğu özellikleri kullanabilirsiniz.

  1. XDebug'ı PHP için çeşitli eklentiler yüklemeye yarayan PEAR kurulumu ile ya da tek başına yükleyebilirsiniz. PHP 5.3 versyonunda PEAR ile ilgili problemler olduğundan bu dökümanda tek başına yükleme için gerekli yönergelere yer verilmiştir.

    XDebug tek bir dll dosyasından ibarettir. XDebug ana sayfasından (http://xdebug.org) uygun bir XDebug sürümü indirip PHP dizininize koyunuz. İndirdiğiniz XDebug'ın hangi PHP sürümü için olduğuna, thread safe olup olmadığına ve VS6 ile derlenmiş olmasına dikkat etmeniz gerekmektedir. Kurduğunuz PHP sürümüne uygun XDebug sürümünü kurmazsanız problem yaşayabilirsiniz.

  2. PHP kurulum dizinindeki php.ini dosyasına şu satırları ekleyin

    zend_extension="C:/Program Files (x86)/PHP/php_xdebug-2.0.5-5.3-vc6.dll"

    xdebug.remote_enable=1

    yol olarak Xdebug dll dosyasının sisteminizdeki tam yolunu vermeniz gerekmektedir. Windows Vista ve Windows 7 altında bu dosyanın UAC korumalı olabileceğini unutmayın. Dosyada değişikliği yaptıktan sonra Apache sunucunuzu tekrar başlatın.

    Not: PHP sürümünüz 5.3'den eskiyse bu adımda farklı işlemler yapmanız gerekebilir.

  3. (Test) Web dizininiz içerisinde herhangi isim de bir php dosyası oluşturup içine şu içeriği koyun ve tarayıcınız yardımıyla çalıştırın

     

    phpinfo();

    ?>

    phpinfo() PHP kütüphaneleri içerisinde yer alan ve PHP kurulumu ile ilgili bilgi veren bir fonskyondur. Bu php programının çıktısı sisteminizde kurulu PHP ve PHP eklentileri ile ilgili ile ilgili ayrıntılı bilgi içerir. Bu çıktı içerisinde Xdebug eklentisi ile ilgili bilgi olması gerekmektedir. Eğer çıktıda Xdebug ile ilgili bilgi yoksa Xdebug kurulumu tamamlanmamış demektir.

VI.Netbeans

PHP projeleriniz oluşturmak, geliştirmek ve yönetmek için Netbeans'in PHP destekleyen bir sürümünü kullanabilirsiniz. Netbeans'in kurulumunda PHP modülünü seçmeniz gerekmektedir.

Netbeans ile oluşturduğunuz PHP projeleri 3 şekilde çalıştırılabilmektedir:

a.Yerel Web Sunucusu: Eğer Netbeans'in çalıştığı bilgisayarda bir web sunucunuz varsa kodlarınızı bu sunucu üzerinde çalıştırabilirsiniz. Netbeans'in kodlarınızı çalıştırması için web sunucunun ulaşabileceği bir dizinde bulunmaları gerekmektedir. PHP projenizi çalıştırdığınız zaman Netbeans kodlarınızı bu dizine kopyalar ve tarayıcınızı bu dizine karşılık gelen URL'e yönlendirir.

Netbeans web sunucunuzun konfigurasyonuna müdahale etmemektedir. Projenizin kopyalanacağı dizine ait URL'i vermek sizin sorumluluğunuzdadır. Aşağıdaki ekran görüntülerinde Netbeans üzerinde yerel web sunucusu üzerinde çalışmak üzere ayarlanmış bir PHP projesi örneklenmiştir.



b.Script: PHP içerisinde web sunucu üzerinden çalışan bir bileşen dışında bir de çalıştırılabilir bir interpreter mevcuttur. PHP projelerinizi, özellikle HTML içerik içermeyen PHP dosyalarınızı bu interpreter'ı kullanarak da çalıştırabilirsiniz. Bu modda çalışmak için Script seçeneğini seçip PHP Interpreter'ın doğru algılandığından emin olmanız yeterlidir. PHP projenizi çalıştırdığınızda ana dosyanızın içeriği interpreter'da çalıştırılacak ve çıktı penceresinde programın çıktısı gösterilecektir.

c.Uzak Web Sunucusu: Bu seçenek Yerel Web Sunucu seçeneğine benzemektedir. Programlarınız bir web sunucunun ulaşabileceği bir dizine kopyalanır ve tarayıcınızın yönelendirileceği bir URL verilir. Bu seçeneğin tek farkı web sunucu uzaktaki bir bilgisayar üzerindedir ve projenin kopyalanması FTP ya da SFTP protokolleri kullanılarak yapılır.

Eğer XDebug kurulumunu tamamladıysanız Netbeans ile PHP projelerinizi aynı Java projeleri gibi debug etmeniz de mümkündür. İstediğiniz yere breakpoint koymak, istediğiniz değişkenin ya da ifadenin değerini izlemek, PHP Super Global Değişkenlerin değerlerinin rahatça incelemek, metot çağrı yığıtını incelemek XDebug ile Netbeans üzerinde yapabileceğiniz temel debug işlemlerinden bazılarıdır.



Utku Erdoğdu
- 5 -