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

這個(gè)內(nèi)置服務(wù)器和用 nginx 等服務(wù)器搭起來的應(yīng)用服務(wù)器本質(zhì)上沒有太大的區(qū)別,包括 $_SERVER 之類的內(nèi)容都可以正常獲取到,也可以正常使用 include 等功能加載其他文件,也就是說這個(gè)內(nèi)置WEB服務(wù)器運(yùn)行一些框架也是沒有問題的。它是可以完全滿足我們的測試要求的。但是需要注意的是,這個(gè)內(nèi)置WEB服務(wù)器不能用于生產(chǎn)環(huán)境。畢竟它的功能還是太簡單,不是一個(gè)生產(chǎn)配備的高規(guī)格服務(wù)器應(yīng)用。
指定內(nèi)置服務(wù)器的運(yùn)行目錄
我們也可以在任何目錄去運(yùn)行指定目錄的php代碼,只需要再增加一個(gè) -t 選項(xiàng)來指明要運(yùn)行起服務(wù)器的根目錄即可。
php -S localhost:8081 -t dev-blog/php/202004/source
這樣我們就可以運(yùn)行起來一個(gè)以 dev-blog/php/202004/source 目錄為根目錄的測試環(huán)境服務(wù)器。
使用路由腳本
php -S localhost:8081 PHP的內(nèi)置WEB服務(wù)器.php
如果我們給當(dāng)前服務(wù)器直接指定了一個(gè)PHP文件,那么直接打開鏈接就會訪問的是這個(gè)文件的內(nèi)容,而不是去找 index.php 之類的文件。即使我們繼續(xù)給 URL 后臺增加其他路徑或者其他文件名,它依然會打開的是這個(gè)文件,也就是說,我們啟動了一個(gè)單文件入口的應(yīng)用服務(wù)器程序。就像各種框架的 index.php 文件一樣,比如我們利用這個(gè)文件做一個(gè)簡單的路由分發(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!";
兩個(gè)測試文件只是簡單的輸出了一段文字用于區(qū)別分別加載了兩個(gè)文件。上述代碼的意思是我們訪問定義好的兩個(gè)路由路徑時(shí),就會加載對應(yīng)的文件,訪問其他路徑則會打印當(dāng)前服務(wù)器的 $_SERVER 信息。
測試代碼: github.com/zhangyue050…
參考文檔: www.php.net/manual/zh/f…
以上就是PHP 內(nèi)置WEB服務(wù)器的簡單使用的詳細(xì)內(nèi)容,更多關(guān)于PHP 內(nèi)置服務(wù)器的使用的資料請關(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)自動上傳功能
- PHP使用swoole編寫簡單的echo服務(wù)器示例
- php實(shí)現(xiàn)的簡單多進(jìn)程服務(wù)器類完整示例
- 在phpstudy集成環(huán)境下的nginx服務(wù)器下配置url重寫
- php服務(wù)器的系統(tǒng)詳解
- Windows服務(wù)器中PHP如何安裝redis擴(kuò)展
- PHP如何將圖片文件上傳到另外一臺服務(wù)器上
- 微信小程序上傳圖片到php服務(wù)器的方法