- Konu sahibi
- #1
PHP ile web sitesi nasıl kurulur?
PHP ile web sitesi kurmak için sunucu tarafında PHP çalıştırabilen bir ortam, bir web sunucusu ve en az bir
.php dosyası gerekir. En küçük çalışan site; PHP kodunun HTML üretmesi, dosyanın yerel sunucuda çalıştırılması ve tarayıcıdan açılmasıyla kurulabilir. Aşağıdaki örnek, formdan gelen adı güvenli biçimde ekrana yazan tek dosyalık bir PHP sitesidir.PHP web sitesi nasıl çalışır?
Tarayıcı
.php dosyasını doğrudan çalıştırmaz. İstek önce PHP destekli web sunucusuna gider. Sunucu PHP kodunu işletir, oluşan HTML yanıtını tarayıcıya gönderir. Bu nedenle PHP dosyasını yalnızca dosyaya çift tıklayarak açmak yerine PHP çalışan bir sunucu üzerinden görüntülemek gerekir.Başlangıç için gerekenler:
- PHP çalışma ortamı
- Bir metin veya kod editörü
- Tarayıcı
- Site dosyalarının tutulacağı bir klasör
Veritabanı her PHP sitesi için zorunlu değildir. Tanıtım sayfası veya basit form gibi içerikler veritabanı olmadan hazırlanabilir. Kalıcı kayıt gereksiniminde veritabanı, dosya veya uygun bir harici hizmet seçilebilir; çok kullanıcılı ilişkili kayıtlar için veritabanı yaygın tercihtir.
Çalışan en küçük PHP sitesi
1. Dosyayı oluşturun
Yeni bir klasör oluşturun ve içine
index.php adıyla şu dosyayı kaydedin:
Kod:
<?php
$name = '';
$message = '';
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$rawName = $_POST['name'] ?? '';
$name = is_string($rawName) ? trim($rawName) : '';
if ($name === '') {
$message = 'Lütfen adınızı yazın.';
} else {
$message = 'Merhaba, ' . $name . '!';
}
}
?>
<!doctype html>
<html lang="tr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>PHP ile ilk sitem</title>
<style>
form { display: grid; gap: 8px; max-width: 24rem; }
input, button { box-sizing: border-box; max-width: 100%; border-radius: 4px; }
</style>
</head>
<body>
<h1>PHP ile ilk sitem</h1>
<form method="post">
<label for="name">Adınız</label>
<input id="name" name="name" type="text" value="<?= htmlspecialchars($name, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8') ?>">
<button type="submit">Gönder</button>
</form>
<?php if ($message !== ''): ?>
<p><?= htmlspecialchars($message, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8') ?></p>
<?php endif; ?>
</body>
</html>
Bu örnekte form gönderildiğinde PHP,
POST isteğini algılar, adı boşluklardan arındırır ve sonucu HTML içine ekler. Metin değişkenlerde ham tutulur ve htmlspecialchars() yalnız HTML çıktısına eklenirken bir kez uygulanır. Önceden kaçışlanmış metni yeniden kaçışlamak, ampersand gibi karakterlerin ekranda varlık kodlarıyla görünmesine yol açabilir. Dizi gelen beklenmeyen form değerleri de string kontrolüyle elenir.2. Yerel sunucuyu başlatın
Komut satırında
index.php dosyasının bulunduğu klasöre geçin ve şu komutu çalıştırın:
Kod:
php -S localhost:8000
Bu yerleşik sunucu geliştirme ve yerel deneme içindir; üretim sunucusu olarak kullanılmamalıdır.
Ardından tarayıcıda
http://localhost:8000 adresini açın. Sayfada başlık, ad alanı ve gönder düğmesi görünür. Bir ad yazıp gönderdiğinizde sayfanın altında kişiselleştirilmiş selamlama mesajı görünmesi başarılı çalışmanın beklenen sonucudur.Komut tanınmıyorsa PHP kurulu değildir veya çalıştırılabilir dosyanın yolu sistem tarafından bulunamıyordur. Sunucuyu başka bir klasörde başlattıysanız tarayıcıda farklı bir proje açılabilir; komutu mutlaka
index.php dosyasının bulunduğu klasörde çalıştırın. Port kullanımda hatası alırsanız farklı bir port deneyebilirsiniz; tarayıcı adresindeki portu da aynı şekilde değiştirmelisiniz.İhtiyaca göre sonraki teknik kararlar
İlk sayfa çalıştıktan sonra siteyi büyütmeden önce hangi parçaların gerektiğini belirleyin:
| İhtiyaç | Başlangıç çözümü | Sonraki adım |
|---|---|---|
| Tanıtım veya iletişim sayfası | PHP ve HTML dosyaları | Form doğrulama ve e-posta işlemi |
| Kalıcı kayıt tutma | Veritabanı bağlantısı | Hazırlanmış sorgularla CRUD işlemleri |
| Birden çok sayfa | Ortak başlık ve alt bölüm dosyaları | Yönlendirme veya framework yapısı |
| Yayınlama | PHP destekli hosting veya sunucu | Alan adı, HTTPS ve üretim ayarları |
İlk örnekteki tek dosya yaklaşımı öğrenmek için uygundur; büyüyen projede HTML görünümünü, iş kurallarını ve veri erişimini ayrı katmanlara ayırmak bakımı kolaylaştırır. Veritabanına geçerken kullanıcıdan gelen değerleri doğrudan SQL metnine birleştirmek yerine veritabanı sürücüsünün hazırlanmış sorgu mekanizmasını kullanın.
Sık yapılan hatalar
.phpdosyasını tarayıcıya değil, PHP sunucusuna vermeden açmak: PHP kodu çalışmaz veya kaynak kod gibi görünebilir.- Dosya adını
index.php.txtolarak kaydetmek: İşletim sistemi uzantıyı gizleyebileceği için gerçek dosya adını kontrol edin. - Form değerini doğrulamadan ekrana basmak: Boş değerleri kontrol edin ve HTML bağlamında çıktı verirken uygun kaçış işlemini uygulayın.
- Yerel ortamda çalışan dosyanın sunucuda da kesin çalışacağını varsaymak: PHP ayarları, eklentiler, dosya izinleri ve veritabanı bağlantı bilgileri üretim ortamında ayrıca test edilmelidir.
Sık sorulan sorular
PHP sitesi için mutlaka veritabanı gerekir mi?
Hayır. Sabit içerik, hesaplama ve basit form işlemleri veritabanı olmadan yapılabilir. Kayıtların sonraki isteklerde korunması için dosya, veritabanı veya harici hizmet gibi kalıcı bir saklama yöntemi gerekir; veritabanı tek seçenek değildir.
PHP dosyam tarayıcıda kod olarak görünüyorsa sorun nedir?
Dosya PHP yorumlayıcısı üzerinden sunulmuyordur. PHP destekli sunucuyu başlatıp adresi o sunucunun verdiği yerel adresten açın; dosyayı doğrudan dosya yöneticisinden çalıştırmayın.