PHP 內(nèi)置WEB服務(wù)器的簡(jiǎn)單使用
在很多時(shí)候,我們需要簡(jiǎn)單的運(yùn)行一個(gè)小 demo 來(lái)驗(yàn)證一些代碼或者輪子是否可用,是否可以運(yùn)行起來(lái),但是去配 nginx 或者 apache 都很麻煩,其實(shí),PHP CLI 已經(jīng)提供了一個(gè)簡(jiǎn)單的測(cè)試服務(wù)器,我們直接就可以運(yùn)行起來(lái)進(jìn)行簡(jiǎn)單的一些測(cè)試工作。
直接啟動(dòng)一個(gè)內(nèi)置服務(wù)器
php -S localhost:8081
直接使用 -S 命令選項(xiàng),然后指定地址及端口號(hào),我們就可以運(yùn)行起來(lái)一個(gè) PHP 內(nèi)置的簡(jiǎn)易WEB服務(wù)器。默認(rèn)情況下,這個(gè)地址會(huì)找當(dāng)前目錄下的 index.php 或 index.html 文件。當(dāng)我們?cè)跒g覽器輸入指定的文件時(shí),就是訪問指定的文件,如果都沒有找到會(huì)正常的返回404錯(cuò)誤。
而控制臺(tái)會(huì)輸出當(dāng)前服務(wù)器的訪問情況,如下圖所示:

這個(gè)內(nèi)置服務(wù)器和用 nginx 等服務(wù)器搭起來(lái)的應(yīng)用服務(wù)器本質(zhì)上沒有太大的區(qū)別,包括 $_SERVER 之類的內(nèi)容都可以正常獲取到,也可以正常使用 include 等功能加載其他文件,也就是說(shuō)這個(gè)內(nèi)置WEB服務(wù)器運(yùn)行一些框架也是沒有問題的。它是可以完全滿足我們的測(cè)試要求的。但是需要注意的是,這個(gè)內(nèi)置WEB服務(wù)器不能用于生產(chǎn)環(huán)境。畢竟它的功能還是太簡(jiǎn)單,不是一個(gè)生產(chǎn)配備的高規(guī)格服務(wù)器應(yīng)用。
指定內(nèi)置服務(wù)器的運(yùn)行目錄
我們也可以在任何目錄去運(yùn)行指定目錄的php代碼,只需要再增加一個(gè) -t 選項(xiàng)來(lái)指明要運(yùn)行起服務(wù)器的根目錄即可。
php -S localhost:8081 -t dev-blog/php/202004/source
這樣我們就可以運(yùn)行起來(lái)一個(gè)以 dev-blog/php/202004/source 目錄為根目錄的測(cè)試環(huán)境服務(wù)器。
使用路由腳本
php -S localhost:8081 PHP的內(nèi)置WEB服務(wù)器.php
如果我們給當(dāng)前服務(wù)器直接指定了一個(gè)PHP文件,那么直接打開鏈接就會(huì)訪問的是這個(gè)文件的內(nèi)容,而不是去找 index.php 之類的文件。即使我們繼續(xù)給 URL 后臺(tái)增加其他路徑或者其他文件名,它依然會(huì)打開的是這個(gè)文件,也就是說(shuō),我們啟動(dòng)了一個(gè)單文件入口的應(yīng)用服務(wù)器程序。就像各種框架的 index.php 文件一樣,比如我們利用這個(gè)文件做一個(gè)簡(jiǎn)單的路由分發(fā)測(cè)試:
$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!";
兩個(gè)測(cè)試文件只是簡(jiǎn)單的輸出了一段文字用于區(qū)別分別加載了兩個(gè)文件。上述代碼的意思是我們?cè)L問定義好的兩個(gè)路由路徑時(shí),就會(huì)加載對(duì)應(yīng)的文件,訪問其他路徑則會(huì)打印當(dāng)前服務(wù)器的 $_SERVER 信息。
測(cè)試代碼: github.com/zhangyue050…
參考文檔: www.php.net/manual/zh/f…
以上就是PHP 內(nèi)置WEB服務(wù)器的簡(jiǎn)單使用的詳細(xì)內(nèi)容,更多關(guān)于PHP 內(nèi)置服務(wù)器的使用的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- PHP5.4起內(nèi)置web服務(wù)器使用方法
- phpstorm遠(yuǎn)程連接服務(wù)器并實(shí)時(shí)更新發(fā)布代碼(thinkphp6.0.7)
- PhpStorm連接服務(wù)器并實(shí)現(xiàn)自動(dòng)上傳功能
- PHP使用swoole編寫簡(jiǎn)單的echo服務(wù)器示例
- php實(shí)現(xiàn)的簡(jiǎn)單多進(jìn)程服務(wù)器類完整示例
- 在phpstudy集成環(huán)境下的nginx服務(wù)器下配置url重寫
- php服務(wù)器的系統(tǒng)詳解
- Windows服務(wù)器中PHP如何安裝redis擴(kuò)展
- PHP如何將圖片文件上傳到另外一臺(tái)服務(wù)器上
- 微信小程序上傳圖片到php服務(wù)器的方法
相關(guān)文章
php+ajax實(shí)現(xiàn)圖片文件上傳功能實(shí)例
目前常用的異步文件上傳功能有幾種,比較多見的如使用iframe框架形式,ajax功能效果,以及flash+php功能,需要的朋友可以參考下2014-06-06
php批量添加數(shù)據(jù)與批量更新數(shù)據(jù)的實(shí)現(xiàn)方法
這篇文章主要介紹了php批量添加數(shù)據(jù)與批量更新數(shù)據(jù)的實(shí)現(xiàn)方法,涉及針對(duì)表單的處理與sql語(yǔ)句的靈活使用,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-12-12
PHP實(shí)現(xiàn)判斷二叉樹是否對(duì)稱的方法
這篇文章主要介紹了PHP實(shí)現(xiàn)判斷二叉樹是否對(duì)稱的方法,涉及php遞歸二叉樹判斷節(jié)點(diǎn)的相關(guān)操作技巧,需要的朋友可以參考下2018-01-01
PHP7.0連接DB操作實(shí)例分析【基于mysqli】
這篇文章主要介紹了PHP7.0連接DB操作,結(jié)合實(shí)例形式分析了php7基于mysqli連接與查詢數(shù)據(jù)庫(kù)相關(guān)操作技巧,需要的朋友可以參考下2019-09-09
淺談PHP SHA1withRSA加密生成簽名及驗(yàn)簽
這篇文章主要介紹了PHP SHA1withRSA加密生成簽名及驗(yàn)簽,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
修改PHP腳本使WordPress攔截垃圾評(píng)論的方法示例
這篇文章主要介紹了修改PHP腳本使WordPress攔截垃圾評(píng)論的方法示例,主要是通過(guò)修改主題的functions.php來(lái)實(shí)現(xiàn)相關(guān)功能,需要的朋友可以參考下2015-12-12

