PHP 內(nèi)置WEB服務器的簡單使用
在很多時候,我們需要簡單的運行一個小 demo 來驗證一些代碼或者輪子是否可用,是否可以運行起來,但是去配 nginx 或者 apache 都很麻煩,其實,PHP CLI 已經(jīng)提供了一個簡單的測試服務器,我們直接就可以運行起來進行簡單的一些測試工作。
直接啟動一個內(nèi)置服務器
php -S localhost:8081
直接使用 -S 命令選項,然后指定地址及端口號,我們就可以運行起來一個 PHP 內(nèi)置的簡易WEB服務器。默認情況下,這個地址會找當前目錄下的 index.php 或 index.html 文件。當我們在瀏覽器輸入指定的文件時,就是訪問指定的文件,如果都沒有找到會正常的返回404錯誤。
而控制臺會輸出當前服務器的訪問情況,如下圖所示:
這個內(nèi)置服務器和用 nginx 等服務器搭起來的應用服務器本質(zhì)上沒有太大的區(qū)別,包括 $_SERVER 之類的內(nèi)容都可以正常獲取到,也可以正常使用 include 等功能加載其他文件,也就是說這個內(nèi)置WEB服務器運行一些框架也是沒有問題的。它是可以完全滿足我們的測試要求的。但是需要注意的是,這個內(nèi)置WEB服務器不能用于生產(chǎn)環(huán)境。畢竟它的功能還是太簡單,不是一個生產(chǎn)配備的高規(guī)格服務器應用。
指定內(nèi)置服務器的運行目錄
我們也可以在任何目錄去運行指定目錄的php代碼,只需要再增加一個 -t 選項來指明要運行起服務器的根目錄即可。
php -S localhost:8081 -t dev-blog/php/202004/source
這樣我們就可以運行起來一個以 dev-blog/php/202004/source 目錄為根目錄的測試環(huán)境服務器。
使用路由腳本
php -S localhost:8081 PHP的內(nèi)置WEB服務器.php
如果我們給當前服務器直接指定了一個PHP文件,那么直接打開鏈接就會訪問的是這個文件的內(nèi)容,而不是去找 index.php 之類的文件。即使我們繼續(xù)給 URL 后臺增加其他路徑或者其他文件名,它依然會打開的是這個文件,也就是說,我們啟動了一個單文件入口的應用服務器程序。就像各種框架的 index.php 文件一樣,比如我們利用這個文件做一個簡單的路由分發(fā)測試:
$routePages = [ '/testRoute2.php', '/route/testRoute1.php' ]; if(in_array($_SERVER['REQUEST_URI'], $routePages)){ include __DIR__ . $_SERVER['REQUEST_URI']; }else{ print_r($_SERVER); }
// route/testRoute1.php echo "Hello Route1!"; // testRoute2.php echo "Hello Route2!";
兩個測試文件只是簡單的輸出了一段文字用于區(qū)別分別加載了兩個文件。上述代碼的意思是我們訪問定義好的兩個路由路徑時,就會加載對應的文件,訪問其他路徑則會打印當前服務器的 $_SERVER 信息。
測試代碼: github.com/zhangyue050…
參考文檔: www.php.net/manual/zh/f…
以上就是PHP 內(nèi)置WEB服務器的簡單使用的詳細內(nèi)容,更多關于PHP 內(nèi)置服務器的使用的資料請關注腳本之家其它相關文章!
相關文章
php之curl實現(xiàn)http與https請求的方法
這篇文章主要介紹了php之curl實現(xiàn)http與https請求的方法,分別講述了PHP訪問http網(wǎng)頁與訪問https網(wǎng)頁的實例,以及相關的注意事項,需要的朋友可以參考下2014-10-10用php來限制每個ip每天瀏覽頁面數(shù)量的實現(xiàn)思路
這篇文章主要介紹了用php來限制每個ip每天瀏覽頁面數(shù)量的實現(xiàn)思路,需要的朋友可以參考下2015-02-02php數(shù)組函數(shù)序列之a(chǎn)rray_unshift() 在數(shù)組開頭插入一個或多個元素
array_unshift() 函數(shù)在數(shù)組開頭插入一個或多個元素。被加上的元素作為一個整體添加,這些元素在數(shù)組中的順序和在參數(shù)中的順序一樣2011-11-11深入了解 register_globals (附register_globals=off 網(wǎng)站打不開的解決方法)
由于register_globals設置控制PHP變量訪問范圍,如果開啟會引起不必要的安全問題,所以這里對其進行了強制關閉,如果站長的空間不支持,可以采用以下幾種辦法進行修改,供廣大站長參考2012-06-06php使用escapeshellarg時中文被過濾的解決方法
這篇文章主要介紹了php使用escapeshellarg時中文被過濾的解決方法,測試后發(fā)現(xiàn)問題的原因是shell和apache php-cgi的運行環(huán)境不同引起的,需要的朋友可以參考下2016-07-07