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 之類(lèi)的內(nèi)容都可以正常獲取到,也可以正常使用 include 等功能加載其他文件,也就是說(shuō)這個(gè)內(nèi)置WEB服務(wù)器運(yùn)行一些框架也是沒(méi)有問(wèn)題的。它是可以完全滿(mǎ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 之類(lèi)的文件。即使我們繼續(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.php echo "Hello Route1!"; // testRoute2.php echo "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)注腳本之家其它相關(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編寫(xiě)簡(jiǎn)單的echo服務(wù)器示例
- php實(shí)現(xiàn)的簡(jiǎn)單多進(jìn)程服務(wù)器類(lèi)完整示例
- 在phpstudy集成環(huán)境下的nginx服務(wù)器下配置url重寫(xiě)
- php服務(wù)器的系統(tǒng)詳解
- Windows服務(wù)器中PHP如何安裝redis擴(kuò)展
- PHP如何將圖片文件上傳到另外一臺(tái)服務(wù)器上
- 微信小程序上傳圖片到php服務(wù)器的方法
相關(guān)文章
php之curl實(shí)現(xiàn)http與https請(qǐng)求的方法
這篇文章主要介紹了php之curl實(shí)現(xiàn)http與https請(qǐng)求的方法,分別講述了PHP訪問(wèn)http網(wǎng)頁(yè)與訪問(wèn)https網(wǎng)頁(yè)的實(shí)例,以及相關(guān)的注意事項(xiàng),需要的朋友可以參考下2014-10-10用php來(lái)限制每個(gè)ip每天瀏覽頁(yè)面數(shù)量的實(shí)現(xiàn)思路
這篇文章主要介紹了用php來(lái)限制每個(gè)ip每天瀏覽頁(yè)面數(shù)量的實(shí)現(xiàn)思路,需要的朋友可以參考下2015-02-02php數(shù)組函數(shù)序列之a(chǎn)rray_unshift() 在數(shù)組開(kāi)頭插入一個(gè)或多個(gè)元素
array_unshift() 函數(shù)在數(shù)組開(kāi)頭插入一個(gè)或多個(gè)元素。被加上的元素作為一個(gè)整體添加,這些元素在數(shù)組中的順序和在參數(shù)中的順序一樣2011-11-11PHP實(shí)現(xiàn)事件機(jī)制實(shí)例分析
這篇文章主要介紹了PHP實(shí)現(xiàn)事件機(jī)制的方法,實(shí)例分析了事件機(jī)制的原理與php的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-06-06PHP實(shí)現(xiàn)讀取Excel文件的記錄(二)
在前文中介紹的方法有些麻煩,因?yàn)楸仨氁虞d很多的文件。本文介紹的方法簡(jiǎn)單了很多,只需要加載兩個(gè)文件即可。需要的可以參考一下2022-03-03深入了解 register_globals (附register_globals=off 網(wǎng)站打不開(kāi)的解決方法)
由于register_globals設(shè)置控制PHP變量訪問(wèn)范圍,如果開(kāi)啟會(huì)引起不必要的安全問(wèn)題,所以這里對(duì)其進(jìn)行了強(qiáng)制關(guān)閉,如果站長(zhǎng)的空間不支持,可以采用以下幾種辦法進(jìn)行修改,供廣大站長(zhǎng)參考2012-06-06php使用escapeshellarg時(shí)中文被過(guò)濾的解決方法
這篇文章主要介紹了php使用escapeshellarg時(shí)中文被過(guò)濾的解決方法,測(cè)試后發(fā)現(xiàn)問(wèn)題的原因是shell和apache php-cgi的運(yùn)行環(huán)境不同引起的,需要的朋友可以參考下2016-07-07PHP網(wǎng)站基礎(chǔ)優(yōu)化方法小結(jié)
以下這些基礎(chǔ)技巧可以讓你的PHP網(wǎng)站運(yùn)行得更快一些。2008-09-09