PHP 內置WEB服務器的簡單使用
在很多時候,我們需要簡單的運行一個小 demo 來驗證一些代碼或者輪子是否可用,是否可以運行起來,但是去配 nginx 或者 apache 都很麻煩,其實,PHP CLI 已經提供了一個簡單的測試服務器,我們直接就可以運行起來進行簡單的一些測試工作。
直接啟動一個內置服務器php -S localhost:8081
直接使用 -S 命令選項,然后指定地址及端口號,我們就可以運行起來一個 PHP 內置的簡易WEB服務器。默認情況下,這個地址會找當前目錄下的 index.php 或 index.html 文件。當我們在瀏覽器輸入指定的文件時,就是訪問指定的文件,如果都沒有找到會正常的返回404錯誤。
而控制臺會輸出當前服務器的訪問情況,如下圖所示:
這個內置服務器和用 nginx 等服務器搭起來的應用服務器本質上沒有太大的區別,包括 $_SERVER 之類的內容都可以正常獲取到,也可以正常使用 include 等功能加載其他文件,也就是說這個內置WEB服務器運行一些框架也是沒有問題的。它是可以完全滿足我們的測試要求的。但是需要注意的是,這個內置WEB服務器不能用于生產環境。畢竟它的功能還是太簡單,不是一個生產配備的高規格服務器應用。
指定內置服務器的運行目錄我們也可以在任何目錄去運行指定目錄的php代碼,只需要再增加一個 -t 選項來指明要運行起服務器的根目錄即可。
php -S localhost:8081 -t dev-blog/php/202004/source
這樣我們就可以運行起來一個以 dev-blog/php/202004/source 目錄為根目錄的測試環境服務器。
使用路由腳本php -S localhost:8081 PHP的內置WEB服務器.php
如果我們給當前服務器直接指定了一個PHP文件,那么直接打開鏈接就會訪問的是這個文件的內容,而不是去找 index.php 之類的文件。即使我們繼續給 URL 后臺增加其他路徑或者其他文件名,它依然會打開的是這個文件,也就是說,我們啟動了一個單文件入口的應用服務器程序。就像各種框架的 index.php 文件一樣,比如我們利用這個文件做一個簡單的路由分發測試:
$routePages = [ ’/testRoute2.php’, ’/route/testRoute1.php’];if(in_array($_SERVER[’REQUEST_URI’], $routePages)){ include __DIR__ . $_SERVER[’REQUEST_URI’];}else{ print_r($_SERVER);}
// route/testRoute1.phpecho 'Hello Route1!';// testRoute2.phpecho 'Hello Route2!';
兩個測試文件只是簡單的輸出了一段文字用于區別分別加載了兩個文件。上述代碼的意思是我們訪問定義好的兩個路由路徑時,就會加載對應的文件,訪問其他路徑則會打印當前服務器的 $_SERVER 信息。
測試代碼: github.com/zhangyue050…
參考文檔: www.php.net/manual/zh/f…
以上就是PHP 內置WEB服務器的簡單使用的詳細內容,更多關于PHP 內置服務器的使用的資料請關注好吧啦網其它相關文章!
相關文章: