
PHP Destekli Web Sunucu Kurulumu
Günümüzde bilgi işlem kapasiteli hemen her cihazın kolayca bir Web sunucusu haline dönüştürülebilmesi mümkündür. Web sunumu yapmak için yüksek işlem gücüne ve belleğe sahip güçlü bilgisayarların kullanılması zorunlu değildir. Eğer çok yoğun bir ziyaretçi trafiği beklenmiyorsa, ortalama bir masaüstü bilgisayar, dizüstü bilgisayar, tablet hatta akıllı telefon olarak sınıflandırılan bir cep telefonu bile Web sunucusu haline getirilebilir. Bunun için üzerine bir Web sunucu yazılımının yüklenmesi yeterli olacaktır. Web sunucu yazılımını aktif olarak çalıştırmakta olan ve internet üzerinden ulaşılabilen bir cihazın bütün dünyaya Web yayını yapıyor olduğu söylenebilir.
İnternette en çok kullanılan Web sunucu yazılımının tamamen ücretsiz, hızlı çalışan ve esnek bir kullanım sunan Apache adlı yazılım olduğu söylenebilir. Şu an Web sunucularının yarısı, üzerlerinde Apache çalıştırmaktadır. Apache, Unix, Linux, Solaris, Windows, MacOS X ve OS/2 gibi yaygın işletim sistemlerinin hepsini desteklemektedir. http://www.apache.org adresi üzerinden en güncel sürümü indirilip kolayca kurulabilecek olsa da, Apache’nin tek başına dinamik bir Web sunumu yapması mümkün değildir. Çok gelişmiş bir HTTP sunucu olsa da Apache, yalnızca Web istemlerini kabul edip, istenen Web sayfalarını teslim etmekle sınırlı bir göreve sahiptir. Sunucu üzerinde PHP kodlarının derlenip çalıştırılması ise, Apache’den bağımsız olarak geliştirilmiş olan PHP derleyicisinin işidir.
- BİLGİ: HTTP, Türkçe karşılığı Hipermetin Transfer Protokolü olan HyperText Transfer Protokol ifadesinin kısaltmasıdır ve Web sayfalarının iletimi için oluşturulmuştur.
Halihazırda Apache kurulu bir bilgisayara PHP derleyicisi kurmak, statik Web sayfası sunumuyla sınırlı becerilere sahip söz konusu bilgisayarın, dinamik Web sayfaları sunabilen bir Web sunucuya dönüşmesini sağlar. http://www.php.net adresi üzerinden ulaşılabilen PHP organizasyonu Web sayfası, PHP’nin hemen her işletim sistemine yönelik derlenebilecek kaynak kodlarını sunmaktadır. Aynı sitede, Windows işletim sistemi üzerinde çalıştırılabilecek dosyalar da yer almaktadır. Bu dosyaları indirip konumlandırdıktan sonra, Apache’nin konfigürasyon dosyaları, PHP uzantılı dosyaların bu derleyiciye yönlendirilmesi anlamında düzenlenmelidir.
PHP sayfalarını destekleyen bir Web sunucunun üzerinde çalıştırması beklenen diğer bir uygulamanın veritabanı yönetim sistemi olduğu söylenebilir. Hemen her PHP Web projesinde kendini gösteren veri yönetim ihtiyacı, bu şekilde karşılanmış olacaktır. Bu noktada, küçük ve orta ölçekli projelerde yıllardır kullanılmış olmasıyla kendini ispatlayan MySQL adlı veritabanı yönetim sisteminin kullanılması önerebilir. Güncel ihtiyaçları karşılamaya yönelik bir Web sunucuyu oluşturmanın son adımı olan MySQL kurulumu için gereken dosyalar, http://www.mysql.com adresinden edinilip kurulabilir. MySQL, hemen her işletim sistemi üzerinde çalışabilecek şekilde sürümlendirilmiş bir veritabanı yönetim sistemidir.
Yukarıda da belirtildiği gibi, bir Web sunucunun güncel ihtiyaçları asgari düzeyde de olsa karşılayabilmesi için Web sunucu yazılımına, sunucu taraflı bir derleyiciye ve veritabanı yönetim sistemine ihtiyacı vardır. Sırasıyla Apache, PHP ve MySQL’in bu ihtiyaçları karşılama anlamında ön planda oldukları söylenebilir. Aynı bilgisayara kurulmuş olan söz konusu öğelerin, birbirleriyle Resim 2.1’de görüldüğü gibi etkileşerek, uyum içinde çalışacağı söylenebilir.
Resim 2.1’deki sunucu içinde görülen Web klasörü, internet üzerinden sunumu yapılacak olan dosyaları içermektedir. Birçok formatta olabilecek bu dosyalar, Apache’den Web istemciler aracılığı ile istenilip edinilebilirler. HTTP protokolü üzerinden gerçekleştirilen bu istem, PHP dosyaları için farklı bir sürece sahip olacaktır. PHP ile kodlanmış olan dosyalar istendiğinde Apache, bu dosyaları doğrudan istemciye göndermek yerine, yine sunucu üzerinde çalışan derleyiciye yönlendirir. Derleyicinin derleyip çalıştırdığı PHP sayfası, bu süreçte veritabanı yönetim sistemi gibi diğer öğelerle etkileşim kurabilme potansiyeline sahiptir. Çalıştırılma süreci tamamlandıktan sonra, PHP dosyası tarafından oluşturulan çıktı, Apache tarafından tekrar teslim alınarak istemciye gönderilir.
Yukarıda anlatılan süreçten de anlaşılacağı üzere PHP ile oluşturulan sayfalar, Web sayfası olmanın ötesinde, Web sayfalarını oluşturmaktadırlar. Bu anlamda PHP sayfası, sayfa üreten sayfa olarak değerlendirilebilir. Her ne kadar ayrı ayrı edinilip kurulabilseler de Apache, PHP ve MySQL yazılımlarının iyi bir üçlü oluşturması, bu yazılımların üçü birden içeren yazılım paketlerinin ortaya çıkmasını sağlamıştır. Bu paketler sayesinde sunucu yazılımların ayrı ayrı kurulup birbirlerine göre yapılandırılması gibi görece zahmetli bir sürece de gerek kalmamaktadır. Sözü edilen Web sunucu paketlerinin en çok bilinenlerinden birinin Wamp adlı paket olduğu söylenebilir. Özellikle Windows işletim sistemleri için geliştirilmiş olan WampServer, http://www.wampserver.com adresinden ücretsiz olarak indirilebilir.
WampServer’in Resim 2.2’de sunulmuş olan Web sitesindeki “Download” etiketli linki, WampServer’in indirme butonlarına ulaştırır. Resmin sağ ve sol alt kısımlarında görüntülenen söz konusu butonlar, Windows’un 32 ve 64 bitlik versiyonlarına uygun WampServer kurulumlarının indirilmesini sağlarlar. Ayrıca her butonun altında, ilgili kurulumun içerdiği yazılımlar, versiyonlarıyla birlikte belirtilmişlerdir.
WampServer’in kurulum dosyası yaklaşık olarak 200 Megabyte büyüklüğe sahiptir. Söz konusu dosyanın indirilip çalıştırılması, kullanıcı dostu bir kurulum arayüzü açacaktır. Bu paragrafın yanındaki karekodun ulaştıracağı videodan da görülebilecek şekilde kurulumu tamamlandıktan sonra, kurulum yapılan klasörün içinde Resim 2.3’te sunulan klasör ve dosyalar oluşturulacaktır.
WampServer klasörünün içindeki “www” isimli klasör ve wampmanager.exe adlı dosyanın önemi, standart bir Web geliştiricisi açısından daha ön plandadır. WWW klasörü, sunumu yapılacak olan Web sayfalarının ve diğer dosyaların yerleştirileceği klasördür. Apache’nin yapılandırmasında herhangi bir değişiklik yapılmadıysa, buraya konumlanan dosyaların internet üzerinden dünyaya yayınlanacağı söylenebilir. O neden kişisel veya özel dosyaların bu klasöre yerleştirilmediğinden emin olunmalıdır. Yayını yapılacak Web sayfaları ve dosyalar için ise doğu yerdir.
WampServer’in www klasöründe çok sayıda dosya bulunabilir. Bir Web sitesi ziyareti sırasında, istenen dosya adres satırı üzerinden belirtildiyse, bu dosya doğrudan karşı tarafa gönderilir. Örneğin “http://www.boteci.com/ogrenciler.html” şeklinde girilmiş bir adres, Web tarayıcı boteci.com alanadı üzerinde bulunan Web sunucusundan “öğrenciler.html” adlı dosyayı ister. Bu noktada Apache, istenen Web sayfasını www klasöründe bulursa, istemi yapan tarayıcıya gönderir. İstenen isme sahip bir dosya yok ise, 404 numaralı “sayfa bulunamadı” hatasını üretir.
- BİLGİ: Web istem ve sunumunun yapılması sırasında varsayılan olarak 80 numaralı port kullanılır. Özel durumlar için, yapılandırma ayarları üzerinden söz konusu port numarası değiştirilebilir.
Eğer internet kullanıcısı, “http://www.boteci.com” örneğinde olduğu gibi yalnızca alan adı yazıp, herhangi bir sayfa eklemezse, varsayılan olarak “index”, “default” veya “main” ismine sahip dosyalar gönderilir. Bu nedenle çoğunlukla, Web sitelerinin ana sayfalarının adı index olarak belirlenmiştir. Bu sayfalar, diğer sayfaları çağırmak ya da diğer sayfalara yönlendirmek gibi görevlere sahiptirler.
WampServer’in ana klasöründeki “Wampmanager.exe” adlı dosyanın çalıştırılması, Windows işletim sisteminin görev çubuğuna Resim 2.4’te görüntülenen ikonu yerleştirir. Bu ikonun rengi Web hizmetlerinin durumuna ilişkin de fikir vermektedir. İkonun kırmızı renkte olması, söz konusu hizmetlerin kapalı olduğunu, sarı renkte olması başlatılmakta olduğunu, yeşil renkte olması ise servislerin çalışıyor olduğunu gösterir.
WampServer ikonunun üzerine sağ tıklanarak, Resim 2.5’te sunulan panel görüntülenebilir. WampServer servisleri bu panel üzerinden yönetilebilmektedir. Panelin ilk arayüzünde bulunan komut ve alt menülerin işlev ve içerikleri aşağıdaki gibi maddelendirilebilir.
- About…: WampServer’a ilişkin telif ve versiyon bilgilerinin sunulduğu bir pencere görüntüler. Bu pencere, içeriğindeki Apache, PHP ve MySQL gibi yazılımlara ilişkin versiyon bilgilerini de sunar.
- Refresh: Apache ve MySQL gibi WampServer servislerinin yeniden başlatılmasını sağlar. Yeniden başlatma süreci WampServer ikonunun renklerinden takip edilebilir.
- Help: WampSever’a ait forum platformuna yönlendirir.
- Language: WampServer arayüzünün sunum dilinin seçilmesini sağlar. Türkçe de seçenekler arasındadır. Ancak varsayılan dil İngilizce olduğu için buradaki anlatım İngilizce arayüz üzerinden yapılmıştır.
- Settings: WampServer yazılım paketinin yapılandırmasına ilişkin komutlar barındırır. Tools: Birtakım servislerin yeniden başlatılmasının ve test edilmesinin yanı sıra, bellek ve kayıtların temizlenmesini sağlayan komutlar içerir.
- Exit: WampServer yazılımının çalışmasının sonlandırılmasını ve ikonun yok olmasını sağlar.
Görev çubuğundaki WampServer ikonunun üzerine sol tıklanması ise, Resim 2.6’da görüntülenen panelin açılmasını sağlar. Söz konusu panelin açılması için “tek tıklama” eyleminin gerekliliğine dikkat edilmelidir. İkonun çift tıklanması, panelin yerine “hakkında” penceresinin görüntülenmesini sağlayacaktır. Görüntülenen panel, Web sunucunun yönetimi için oldukça önemli komut ve alt menüleri sunar.
Resim 2.6’da görüntülenen panel, sırasıyla aşağıda maddelenen işlevleri sunar.
- Localhost: Web tarayıcısının açılarak WampServer üzerinden sunulan Web sitesinin ana sayfasını görüntülemesini sağlar.
- phpMyAdmin: WampServer ile birlikte gelen phpMyAdmin adlı veritabanı yönetim arayüzüne ulaştırır.
- Your Aliases: Projeler için ayrı ayrı tanımlanabilecek olan takma adlara (Alias) ulaşılmasını sağlar. Birden fazla Web projesinin aynı anda sunulması gerektiğinde, her bir projeye takma ad atanarak farklı lokasyonlarda barındırılmaları sağlanabilir.
- www klasörü: WampServer’in sunulacak Web sayfalarını barındıran klasörünün içeriğini görüntüler.
- Apache: Web sunumu yapan Apache adlı yazılımın yapılandırılması için kullanılabilecek komut ve bağlantıları içerir. PHP: PHP derleyicisinin yapılandırılması için kullanılabilecek komut ve bağlantıları içerir.
- MySQL: Veritabanı yönetim sistemi olan MySQL’in yapılandırılması için kullanılabilecek komut ve bağlantıları içerir
- Bütün Servisleri Başlat: Apache ve MySQL gibi servislerin tamamının başlatılmasını sağlar.
- Bütün Servisleri Durdur: Yukarıda değinilen servislerin çalışmasını sonlandırır.
- Bütün Servisleri Yeniden Başlat: Yukarıda değinilen servislerin çalışmasını sonlandırıp, yeniden başlatır.
WampServer kurulduğunda “www” adlı özel klasör, içinde birtakım dosyalarla birlikte gelir. Anlaşılacağı üzere bu dosyalar, silinene ya da değiştirilene kadar, Apache tarafından yayınlanan içeriği oluştururlar. Bu içerik, Web sunucu hakkında hem yazılım hem de donanım anlamında bilgiler sağlayan araçları sunmaktadır.
- BİLGİ: Local host ifadesi Türkçe’de “yerel sunucu” anlamına gelmektedir.
www klasöründe yer alan ve Apache tarafından sunulan içeriği görüntülemek için Web tarayıcıya sunucunun adresinin yazılması yeterlidir. Buradaki senaryoda, ziyaret edilecek Web sayfasının sunulduğu bilgisayar ile ziyaretin gerçekleştiği bilgisayar aynı olduğu için bir “kendi adresine ulaşma” durumu söz konusudur. “127.0.0.1” şeklindeki ip adresi ve “localhost” şeklindeki alanadı her zaman ve her platformda, kullanıldığı cihazın kendisini gösterir. Bu nedenle Web tarayıcının adres kısmına bu iki ifadeden biri yazılıp Apache tarafından sunulan Web içeriği ziyaret edilebilir.
WampServer’ın yeni kurulduğu bir sunucudaki ilk ziyaret, Resim 2.7’de gösterilen sayfayı sunar. Yukarıda da değinildiği gibi bu sayfa, Web sunucusuna ilişkin yazılım ve donanım bilgilerini sunmanın yanı sıra, temel düzeydeki birkaç işlem için araçları barındırır. Resim 7’de de görülebileceği gibi, Yazılımların sürümleri ve içerilen eklentiler bu sayfa aracılığıyla görüntülenebilir. Sayfanın alt kısmındaki bölümde ise, görev çubuğunda yer alan WampServer ikonu ile de ulaşılabilecek olan yönetsel görevlere ulaştıran linkler bulunmaktadır. Bu noktada, sunulan Web sayfalarına dışarıdan nasıl erişilebileceğine de değinmekte yarar olacaktır. Bir Web sunumuna başka bir bilgisayardan erişim sağlanmak isteniyorsa, Web tarayıcının adres satırına söz konusu sunucunun ip adresi veya alan adı girilmelidir. Windows tabanlı bir bilgisayarda ip adresini öğrenmenin en hızlı yolu, komut satırına ipconfig komutunu girmektir. Bu işlem aşağıdaki adımları takip edilerek gerçekleştirilebilir. Klavyedeki “Windows” tuşuyla birlikte “R” karakterine basılır. Görüntülenen “Çalıştır” penceresine “cmd” yazılıp tamam butonu tıklanır. Açılan komut satırı ekranına “ipconfig” komutu yazılıp enter tuşuna basılır.
Yukarıdaki işlemlerin yapılması, Resim 2.8’dekine benzer bir sonuç üretecektir. Bu görüntü ağ bağlantısına ilişkin temel bilgileri görüntülemektedir. “IPv4 Adresi” etiketinin karşısındaki adres, bilgisayarın IP adresidir. Aynı ağ üzerindeki diğer bilgisayarlar ile oluşturulan Web sunucusuna bu adres üzerinden erişilebilir. Ancak bu noktada, internet üzerinden erişilebiliyor olmanın farklı bir hazırlık gerektirebileceği göz önünde bulundurulmalıdır.
Araştır 2: PHP kurulumu için yaygın olarak kullanılan localhost paket programları nelerdir?
İlişkilendir: Sıklıkla birlikte kullanılan Apache, PHP ve MySQL yazılımları arasındaki uyumun nedenlerini değerlendiriniz.
Anlat/Paylaş: Bir localhost paket program kurulum sırasında karşılaştığınız zorlukları ve çözümlerinizi paylaşınız.
