Menu

PHP Dosyası Nasıl Çalıştırılır: Komut Satırı ve php -S

Bir PHP dosyasını terminalden php index.php ile çalıştırın ya da bir klasörü PHP'nin yerleşik sunucusuyla tarayıcıda açın: php -S localhost:8000. İkisi için de Apache veya XAMPP gerekmez.

Bu sayfada çalıştırılabilir editörler var - düzenle, çalıştır ve sonucu anında gör.

Bir PHP dosyasını çalıştırmak için klasöründe bir terminal açın ve php index.php yazın. PHP dosyayı çalıştırır ve çıktısını terminale yazdırır. Bir PHP sayfasını tarayıcıda görmek için yerleşik sunucuyu php -S localhost:8000 ile başlatın ve http://localhost:8000 adresini açın.

php index.php

İlk index.php tek satır olabilir. Run'a basın: php index.php komutunun yazdırdığı şey tam olarak budur.

PHP kodu <?php etiketinden sonra gelir. Bu etiketten önceki her şey düz metin olarak yazdırılır; PHP'nin kodu HTML ile karıştırma yolu budur.

PHP dosyasını komut satırından çalıştırmak

PHP CLI (komut satırı arayüzü) bir betiği bir kez çalıştırır ve çıkar. PHP'nin kurulu olması gerekir; php -v bir hata yazdırıyorsa önce PHP kurulumu sayfasına bakın.

cd ~/projects/hello
php index.php          # run the file
php -l index.php       # only check the syntax ("lint")
php index.php > out.txt   # save the output to a file

php -l bir dosyayı yüklemeden önce işe yarar: bir ayrıştırma hatasını satır numarasıyla ya da No syntax errors detected in index.php mesajını bildirir.

$argv ile argüman geçirmek

Dosya adından sonraki kelimeler $argv içine gelir. $argv[0] her zaman betiğin kendi adıdır, $argc ise bu ad dahil sayıdır. Burada blok ek argüman olmadan çalışır, bu yüzden yalnızca ad vardır:

Kendi bilgisayarınızda php index.php Ada 3 selamlamayı üç kez yazdırır. ?? varsayılanları, bir argüman eksik olduğunda betiğin çalışmaya devam etmesini sağlar. --name=Ada gibi adlandırılmış seçenekler için getopt kullanın:

<?php
// php index.php --name=Ada --verbose
$opts = getopt('', ['name:', 'verbose']);
echo "Hello, " . ($opts['name'] ?? 'world') . "\n";
if (isset($opts['verbose'])) {
    echo "Verbose mode\n";
}

php -S ile PHP'yi tarayıcıda çalıştırmak

PHP'nin içinde bir geliştirme web sunucusu vardır. Dosyalarınızın bulunduğu klasörde başlatın:

php -S localhost:8000
[Sat Oct  3 07:21:34 2026] PHP 8.3.19 Development Server (http://localhost:8000) started

Artık http://localhost:8000/ adresi index.php dosyasını, http://localhost:8000/about.php ise about.php dosyasını çalıştırır. Her sayfa yüklemesi dosyayı, sorgu dizesi $_GET içinde olacak şekilde yeniden çalıştırır. Aşağıdaki blok da aynı şekilde davranır: çalıştırın, sonra bir bağlantıya tıklayın; betik $_GET['page'] ayarlanmış olarak yeniden çalışır.

İşe yarayan seçenekler:

php -S localhost:8000 -t public        # serve the public/ folder as the web root
php -S 0.0.0.0:8000                    # reachable from other devices on your network
php -S localhost:8000 router.php       # send every request through router.php

Yerleşik sunucu aynı anda tek bir isteği işler ve yalnızca geliştirme içindir. Canlı ortamda PHP, genellikle PHP-FPM üzerinden, Nginx veya Apache'nin arkasında çalışır.

Betiğin nasıl başlatıldığını kontrol etmek

PHP_SAPI, betiği hangi "sunucu API'sinin" çalıştırdığını söyler: terminalde cli, php -S altında cli-server, gerçek bir web sunucusunun arkasında fpm-fcgi veya apache2handler. Yalnızca terminalden çalışması gereken betikler önce bunu kontrol eder:

php -r ile tek satır çalıştırmak

Hızlı bir test için dosyaya gerek yoktur. php -r verdiğiniz kodu <?php etiketi olmadan çalıştırır:

php -r 'echo date("Y-m-d"), PHP_EOL;'
php -r 'var_dump(0.1 + 0.2 == 0.3);'

Windows cmd üzerinde kodu çift tırnak içine alın ve içinde tek tırnak kullanın. Birden fazla satır için php -a etkileşimli bir kabuk açar; her ifade Enter'a bastığınızda çalışır.

macOS ve Linux'ta betiği çalıştırılabilir yapmak

<?php satırından önce bir shebang satırı ekleyin ve dosyayı çalıştırılabilir olarak işaretleyin. Shebang satırı yazdırılmaz:

#!/usr/bin/env php
<?php
echo "Backup started\n";
chmod +x backup.php
./backup.php

PHP betikleri cron'dan bu şekilde çalışır: 0 3 * * * /usr/bin/php /home/me/backup.php.

Betikler için çıkış kodları

Bir komut satırı betiği başarıyı veya başarısızlığı, kabuk betiklerinin ve cron'un kontrol edebileceği çıkış koduyla bildirir. exit(0) başarı demektir, başka her sayı başarısızlık demektir:

<?php
$file = $argv[1] ?? '';
if (!is_file($file)) {
    fwrite(STDERR, "File not found: $file\n");
    exit(1);
}
echo "Processing $file\n";
exit(0);

Sık yapılan hata: yanlış dosyayı veya klasörü çalıştırmak

Could not open input file: index.php, PHP'nin dosyayı terminalin bulunduğu yerden bulamadığı anlamına gelir. Mevcut klasörü pwd ile (Windows'ta cd ile) kontrol edin; ya cd ile projeye geçin ya da tam yolu verin: php ~/projects/hello/index.php. php -S ile, var olduğunu bildiğiniz bir sayfa için 404 almak genellikle sunucunun farklı bir klasörde başlatıldığı anlamına gelir; Ctrl+C ile durdurup doğru yerde yeniden başlatın ya da klasörü -t ile verin. Dosya çalışıyor ama boş bir sayfa yazdırıyorsa neyin yanlış gittiğini görmek için hata raporlamayı açın.

Sıkça Sorulan Sorular

Bir PHP dosyasını tarayıcıda nasıl çalıştırırım?

Dosyanın bulunduğu klasörde yerleşik sunucuyu php -S localhost:8000 ile başlatın, ardından http://localhost:8000/yourfile.php adresini açın. Dosyayı doğrudan diskten açmak işe yaramaz, çünkü PHP kodunu çalıştıran hiçbir şey yoktur.

Bir PHP betiğine nasıl argüman geçirilir?

Argümanları dosya adından sonra yazın: php report.php 2026 sales. Betiğin içinde $argv dizisi ['report.php', '2026', 'sales'] olur ve $argc değeri 3 olur. İlk eleman her zaman betiğin adıdır.

Dosya olmadan tek satır PHP nasıl çalıştırılır?

php -r kullanın ve <?php etiketini yazmayın: php -r 'echo strtoupper("hi"), PHP_EOL;'. Birden fazla satır için php -a etkileşimli bir kabuk açar.

PHP'nin komut satırından mı yoksa bir web sunucusundan mı çalıştığını nasıl anlarım?

PHP_SAPI değerine (veya php_sapi_name() sonucuna) bakın. Terminalde "cli", php -S altında "cli-server", bir web sunucusunun arkasında ise "fpm-fcgi" veya "apache2handler" gibi bir değerdir.

Coddy programlama dilleri çizimi

Coddy ile kodlamayı öğren

BAŞLA