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í),就是訪問(wèn)指定的文件,如果都沒(méi)有找到會(huì)正常的返回404錯(cuò)誤。
而控制臺(tái)會(huì)輸出當(dāng)前服務(wù)器的訪問(wèn)情況,如下圖所示:
這個(gè)內(nèi)置服務(wù)器和用 nginx 等服務(wù)器搭起來(lái)的應(yīng)用服務(wù)器本質(zhì)上沒(méi)有太大的區(qū)別,包括 $_SERVER 之類的內(nèi)容都可以正常獲取到,也可以正常使用 include 等功能加載其他文件,也就是說(shuō)這個(gè)內(nèi)置WEB服務(wù)器運(yùn)行一些框架也是沒(méi)有問(wè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文件,那么直接打開(kāi)鏈接就會(huì)訪問(wèn)的是這個(gè)文件的內(nèi)容,而不是去找 index.php 之類的文件。即使我們繼續(xù)給 URL 后臺(tái)增加其他路徑或者其他文件名,它依然會(huì)打開(kāi)的是這個(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.phpecho 'Hello Route1!';// testRoute2.phpecho 'Hello Route2!';
兩個(gè)測(cè)試文件只是簡(jiǎn)單的輸出了一段文字用于區(qū)別分別加載了兩個(gè)文件。上述代碼的意思是我們?cè)L問(wèn)定義好的兩個(gè)路由路徑時(shí),就會(huì)加載對(duì)應(yīng)的文件,訪問(wèn)其他路徑則會(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)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. vue3+ts+elementPLus實(shí)現(xiàn)v-preview指令2. Xml簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理3. 使用Hangfire+.NET 6實(shí)現(xiàn)定時(shí)任務(wù)管理(推薦)4. 如何在jsp界面中插入圖片5. phpstudy apache開(kāi)啟ssi使用詳解6. jsp實(shí)現(xiàn)登錄驗(yàn)證的過(guò)濾器7. jsp文件下載功能實(shí)現(xiàn)代碼8. 詳解瀏覽器的緩存機(jī)制9. 爬取今日頭條Ajax請(qǐng)求10. xml中的空格之完全解說(shuō)
