- Konu sahibi
- #1
PHP sunucusu nedir?
PHP sunucusu, PHP kodlarını çalıştırıp sonucunu istemciye gönderen çalışma ortamıdır. Teknik olarak PHP bir sunucu değil, sunucu tarafında çalışan bir programlama dilidir. Kullanıcı tarayıcıdan bir PHP sayfası istediğinde web sunucusu isteği alır, PHP çalışma zamanına iletir; PHP kodu çalıştırılır ve oluşan HTML, JSON veya başka bir yanıt tarayıcıya gönderilir. PHP kaynak kodu normal koşullarda tarayıcıya gönderilmez.
PHP sunucusu nasıl çalışır?
Bir PHP uygulamasında genellikle üç görev birlikte çalışır:
- İstemci: Tarayıcı veya API istemcisi HTTP isteğini gönderir.
- Web sunucusu: Apache veya Nginx gibi yazılım isteği kabul eder ve statik dosyaları sunar. PHP isteğini PHP çalışma zamanına aktarabilir.
- PHP çalışma zamanı: PHP dosyasındaki kodu yürütür, veritabanı veya dosya işlemlerini yapar ve yanıt üretir.
Örneğin
urun.php dosyasında veritabanından ürün bilgisi okunuyorsa tarayıcı bu dosyanın PHP kodunu görmez; yalnızca PHP çalıştıktan sonra üretilen yanıtı alır. Bu nedenle PHP, tarayıcıda doğrudan çalışan JavaScript'ten farklı olarak çoğunlukla sunucu tarafında yürütülür.Web sunucusu ile PHP arasındaki fark
“PHP sunucusu” ifadesi günlük kullanımda anlaşılır olsa da iki kavramı ayırmak hata çözümünü kolaylaştırır. Web sunucusu HTTP bağlantısını yönetir; PHP ise PHP dosyasının içeriğini yorumlar ve çalıştırır.
| Bileşen | Temel görevi | Örnek çıktı veya iş |
|---|---|---|
| Tarayıcı | HTTP isteği gönderir ve yanıtı görüntüler | HTML sayfası |
| Web sunucusu | İsteği kabul eder, dosyaları sunar ve PHP'ye aktarır | İstek yönlendirme |
| PHP çalışma zamanı | PHP kodunu çalıştırır | HTML veya JSON üretimi |
Bir kurulumda bu bileşenlerin tümü aynı makinede bulunabilir; ancak görevleri aynıdır anlamına gelmez. PHP dosyasını tarayıcıda açamamak web sunucusundan, PHP'nin bulunamaması çalışma zamanından veya dosya içindeki bir hatadan kaynaklanabilir.
Yerel geliştirme örneği
Yerel geliştirme için PHP'nin yerleşik geliştirme sunucusu kullanılabilir. Ön koşul, PHP çalışma zamanının kurulu olması ve komut satırından
php komutunun çalışmasıdır.- Bir klasörde
index.phpadında dosya oluşturun ve şu içeriği kaydedin:
Kod:<?php echo "PHP çalışıyor"; - Komut satırında bu klasöre geçin ve sunucuyu başlatın:
php -S 127.0.0.1:8000 - Tarayıcıda
http://127.0.0.1:8000adresini açın. - Ekranda
PHP çalışıyorgörünüyorsa istek PHP tarafından işlenmiştir. Görünmüyorsa önce komutun tanınıp tanınmadığını ve dosyanın doğru klasörde olup olmadığını kontrol edin.
Bu yerleşik sunucu yerel geliştirme ve deneme içindir; üretim ortamında tek başına genel kullanıma açılacak bir web sunucusu olarak değerlendirilmemelidir. Gerçek bir yayında web sunucusu, PHP çalışma zamanı ve uygulamanın ihtiyaç duyduğu veritabanı gibi bileşenler birlikte yapılandırılır.
Sık yapılan hatalar
- PHP dosyasını çift tıklayarak açmak: Bu işlem dosyayı çalıştırmak yerine metin olarak açabilir. PHP kodu bir PHP çalışma zamanı üzerinden yürütülmelidir.
- PHP kodunu HTML gibi doğrudan sunmak: Sunucu PHP'yi işlemiyorsa kaynak kod sızabilir veya sayfada beklenmeyen metin görünebilir. Dosyanın PHP işleyicisine yönlendirildiği doğrulanmalıdır.
- Web sunucusu ile PHP'nin kurulu olduğunu aynı şey sanmak: Web sunucusunun çalışması, PHP çalışma zamanının doğru kurulduğunu garanti etmez.
- Geliştirme sunucusunu üretimde kullanmak: Yerel test için uygun olan basit sunucu, üretim trafiği ve güvenlik gereksinimleri için varsayılan çözüm değildir.
Sık sorulan sorular
PHP çalıştırmak için mutlaka Apache gerekir mi?
Hayır. PHP komut satırından çalıştırılabilir veya yerel geliştirme sunucusu kullanılabilir. Web uygulamasını gerçek HTTP trafiğiyle yayınlamak içinse uygun bir web sunucusu ve PHP çalışma ortamı birlikte yapılandırılır.
PHP sunucusu ile hosting aynı şey midir?
Hayır. Hosting, uygulamanın çalıştığı barındırma hizmeti ve altyapıdır. PHP sunucusu ise bu altyapı içinde PHP kodunu işleyen çalışma ortamını anlatan günlük bir ifadedir.
Terminalde PHP sürümünü görmek web sitesindeki sürümü kanıtlar mı?
Hayır.
php -v terminalin kullandığı PHP yürütücüsünü gösterir. Site farklı bir PHP-FPM hizmeti veya işleyiciyle çalışabilir. Bir hatayı karşılaştırırken siteye atanmış PHP sürümünü ve yapılandırmasını da kontrol edin; yalnız terminal çıktısına dayanmayın.