Komut satırından kullanım
PHP Manual

Yerleşik HTTP sunucusu

PHP 5.4.0'dan itibaren, CLI SAPI yerleşik bir HTTP sunucusu içermektedir.

Bu HTTP sunucusu sadece geliştirme amaçlı kullanıma uygun olarak tasarlanmıştır. Genel amaçlı bir HTTP sunucusu olarak kullanılmamalıdır.

İstenen adres PHP'nin başlatıldığı çalışma dizinine göre sunulur. Bu kök dizin PHP çalıştırılırken -t seçeneği kullanılarak değiştirlebilir. İstek bir dosya belirtmiyorsa belirtilen dizindeki index.php veya index.html dosyası sunulur. Bu iki dosya da mevcut değilse 404 yanıt kodu döndürülür.

İstenen adres bir dosya belirtmezse, belirtilen dizindeki index.php veya index.html gösterilir. Bu dosyalar da mevcut değilse, bir 404 yanıtı döndürülür.

.css, .gif, .htm, .html, .jpe, .jpeg, .jpg, .js, .png, .svg ve .txt uzantılı dosyalar için standart MIME türleri döndürülür. .htm ve .svg uzantıları PHP 5.4.4'den beri tanınmaktadır.

Örnek 1 HTTP sunucusunun başlatılması

$ cd ~/public_html
$ php -S localhost:8000

Uçbirim çıktısı:

PHP 5.4.0 Development Server started at Thu Jul 21 10:43:28 2011
Listening on localhost:8000
Document root is /home/me/public_html
Press Ctrl-C to quit

http://localhost:8000/ ve http://localhost:8000/myscript.html isteklerinden sonra uçbirim çıktısı şuna benzer:

PHP 5.4.0 Development Server started at Thu Jul 21 10:43:28 2011
Listening on localhost:8000
Document root is /home/me/public_html
Press Ctrl-C to quit.
[Thu Jul 21 10:48:48 2011] ::1:39144 GET /favicon.ico - Request read
[Thu Jul 21 10:48:50 2011] ::1:39146 GET / - Request read
[Thu Jul 21 10:48:50 2011] ::1:39147 GET /favicon.ico - Request read
[Thu Jul 21 10:48:52 2011] ::1:39148 GET /myscript.html - Request read
[Thu Jul 21 10:48:52 2011] ::1:39149 GET /favicon.ico - Request read

Örnek 2 - Belge kök dizini belirterek başlatma

$ cd ~/public_html
$ php -S localhost:8000 -t foo/

Uçbirim çıktısı:

PHP 5.4.0 Development Server started at Thu Jul 21 10:50:26 2011
Listening on localhost:8000
Document root is /home/me/public_html/foo
Press Ctrl-C to quit

Örnek 3 - Yönlendirici betik belirtmek

Resim isteklerinde resimler gösterildiği halde bir HTML dosyası istendiğinde "Welcome to PHP" göstermek:

<?php
// router.php
if (preg_match('/\.(?:png|jpg|jpeg|gif)$/'$_SERVER["REQUEST_URI"])) {
    return 
false;    // kaynak olduğu gibi gösterilir.
} else {
    echo 
"<p>Welcome to PHP</p>";
}
?>
$ php -S localhost:8000 router.php

Örnek 4 Checking for CLI Web Server Use

Bir yönlendirici betiği geliştirici CLI sunucusunda kullandıktan sonra asıl HTTP sunucusunda yeniden kullanmak:

<?php
// router.php
if (php_sapi_name() == 'cli-server') {
    
/* duruk varlıkları yönlendir ve false ile dön */
}
/* normal index.php işlemleri ile devam et */
?>
$ php -S localhost:8000 router.php

Örnek 5 Desteklenmeyen Dosya Türlerinin İşlenmesi

MIME türleri CLI sunucusu tarafından işlenmeyen duruk kaynakları sunmanız gerekirse:

<?php
// router.php
$path pathinfo($_SERVER["SCRIPT_FILENAME"]);
if (
$path["extension"] == "ogg") {
    
header("Content-Type: video/ogg");
    
readfile($_SERVER["SCRIPT_FILENAME"]);
}
else {
    return 
FALSE;
}
?>
$ php -S localhost:8000 router.php

Örnek 6 CLI sunucusuna uzak makinelerden erişim

HTTP sunucusuna port 8000'den şöyle erişebilirsiniz:

$ php -S 0.0.0.0:8000

Komut satırından kullanım
PHP Manual