array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'tr', ), 'this' => array ( 0 => 'features.commandline.webserver.php', 1 => 'Yerleşik HTTP sunucusu', ), 'up' => array ( 0 => 'features.commandline.php', 1 => 'Komut satırından kullanım', ), 'prev' => array ( 0 => 'features.commandline.interactive.php', 1 => 'Etkileşimli kabuk', ), 'next' => array ( 0 => 'features.commandline.ini.php', 1 => 'INI Ayarları', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'tr', 'path' => 'features/commandline.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
Bu HTTP sunucusu uygulama geliştirmeye yardımcı olmak üzere tasarlanmıştır. Ayrıca, denetimli bir ortam olarak uygulamaların denenmesi amacıyla da kullanılabilir. Herşeyiyle eksiksiz bir HTTP sunucusu olarak tasarlanmamıştır. Halka açık ağlarda kullanılmamalıdır.
CLI SAPI yerleşik bir HTTP sunucusu içerir.
Bu HTTP sunucusu tek evreli bir süreç çalıştırır. Dolayısıyla, PHP uygulamaları istek engellendiği zaman yavaşlayıp duracaktı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 index.php veya index.html araması üst dizinde devam eder ve bu belge kök dizinine ulaşılıncaya dek devam eder. Bulunduğu takdirde, döndürülür ve URI'nin devamına $_SERVER['PATH_INFO'] atanır. Aksi takdirde 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.
.3gp,.apk, .avi, .bmp, .css, .csv, .doc, .docx, .flac, .gif, .gz, .gzip, .htm, .html, .ics, .jpe, .jpeg, .jpg, .js, .kml, .kmz, .m4a, .mov, .mp3, .mp4, .mpeg, .mpg, .odp, .ods, .odt, .oga, .ogg, .ogv, .pdf, .pdf, .png, .pps, .pptx, .qt, .svg, .swf, .tar, .text, .tif, .txt, .wav, .webm, .wmv, .xls, .xlsx, .xml, .xsl, .xsd ve .zip uzantılı dosyalar için standart MIME türleri döndürülür.
Sürüm: | Açıklama |
---|---|
5.5.12 | .xml, .xsl ve .xsd |
5.5.7 | .3gp, .apk, .avi, .bmp, .csv, .doc, .docx, .flac, .gz, .gzip, .ics, .kml, .kmz, .m4a, .mp3, .mp4, .mpg, .mpeg, .mov, .odp, .ods, .odt, .oga, .pdf, .pptx, .pps, .qt, .swf, .tar, .text, .tif, .wav, .wmv, .xls, .xlsx ve .zip |
5.5.5 | |
5.4.11 | .ogg, .ogv ve .webm |
5.4.4 | .htm ve .svg |
Sürüm: | Açıklama |
---|---|
7.4.0 |
Yerleşik HTTP sunucusuna birden çok eşzamanlı istek gerektiren kodu
sınamak için sunucuyu birden çok workers modülünü çatallayacak şekilde
yapılandırabilirsiniz. Sunucuyu başlatmadan önce
PHP_CLI_SERVER_WORKERS ortam değişkenini istenen workers
modülü sayısına ayarlayın. Bu, Windows'ta desteklenmez.
Uyarı
Bu deneysel özellik, üretimde kullanım için tasarlanmamıştır. Genel olarak, yerleşik HTTP Sunucuları üretimde kullanım için tasarlanmamıştı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
PHP 7.4.0'dan önce, sembolik bağlantılı statik kaynaklara, yönlendirici betiği bunları işlemediği sürece Windows'ta erişilemezdi.
Ö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
Görüntü isteklerinde görüntüler 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 - CLI Sunucusunda kullanmadan önce betiği sınamak
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') {
/* statik 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 statik kaynakları sunmanız gerekirse:
<?php
// router.php
$path = pathinfo($_SERVER["SCRIPT_FILENAME"]);
if ($path["extension"] == "el") {
header("Content-Type: text/x-script.elisp");
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
Yerleşik HTTP sunucusu internette kullanılmamalıdır.