php CLI SAPI 內置Web Server

PHP 5.4.0起, CLI SAPI 提供了一個內置的Web服務器。php

這個內置的Web服務器主要用於本地開發使用,不可用於線上產品環境。html

URI請求會被髮送到PHP所在的的工做目錄(Working Directory)進行處理,除非你使用了-t參數來自定義不一樣的目錄。瀏覽器

若是請求未指定執行哪一個PHP文件,則默認執行目錄內的index.php 或者 index.html。若是這兩個文件都不存在,服務器會返回404錯誤。服務器

當你在命令行啓動這個Web Server時,若是指定了一個PHP文件,則這個文件會做爲一個「路由」腳本,意味着每次請求都會先執行這個腳本。若是這個腳本返回 FALSE ,那麼直接返回請求的文件(例如請求靜態文件不做任何處理)。不然會把輸出返回到瀏覽器。ui

Example #1 啓動Web服務器spa

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

終端窗口會顯示:命令行

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/和http://localhost:8000/myscript.html,窗口會顯示:code

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

Example #2 啓動時指定根目錄router

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

終端窗口顯示:htm

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

Example #3 使用路由(Router)腳本

請求圖片直接顯示圖片,請求HTML則顯示「Welcome to PHP」

<?php
// router.php
if (preg_match('/\.(?:png|jpg|jpeg|gif)$/', $_SERVER["REQUEST_URI"]))
    return false;    // 直接返回請求的文件
else { 
    echo "<p>Welcome to PHP</p>";
}
?>
$ php -S localhost:8000 router.php

執行以後終端顯示:

PHP 5.4.0 Development Server started at Thu Jul 21 10:53:19 2011
Listening on localhost:8000
Document root is /home/me/public_html
Press Ctrl-C to quit.
[Thu Jul 21 10:53:45 2011] ::1:55801 GET /mylogo.jpg - Request read
[Thu Jul 21 10:53:52 2011] ::1:55803 GET /abc.html - Request read
[Thu Jul 21 10:53:52 2011] ::1:55804 GET /favicon.ico - Request read
相關文章
相關標籤/搜索