1. 程式人生 > 程式設計 >PHP 內建WEB伺服器的簡單使用

PHP 內建WEB伺服器的簡單使用

在很多時候,我們需要簡單的執行一個小 demo 來驗證一些程式碼或者輪子是否可用,是否可以執行起來,但是去配 nginx 或者 apache 都很麻程式設計客棧煩,其實,php CLI 已經提供了一個簡單的測試伺服器,我們直接就可以執行起來進行簡單的一些測試工作。

直接啟動一個內建伺服器

php -S localhost:8081

直接使用 -S 命令選項,然後指定地址及埠號,我們就可以執行起來一個 PHP 內建的簡易WEB伺服器。預設情況下,這個地址會找當前目錄下的 index.php 或 index.html 檔案。當我們在瀏覽器輸入指定的檔案時,就是訪問指定的檔案,如果都沒有找到會正常的返回404錯誤。

而控制檯會輸出當前伺服器的訪問情況,如下圖所示:

PHP 內建WEB伺服器的簡單使用

這個內建伺服器和用 nginx 等伺服器搭起來的應用伺服器本質上沒有太大的區別,包括 $_SERVER 之類的內容都可以正常獲取到,也可以正常使用 incl程式設計客棧ude 等功能載入其他檔案,也就是說這個內建WEB伺服器執行一些框架也是沒有問題的。它是可以完全滿足我們的測試要求的。但是需要注意的是,這個內建WEB伺服器不能用於生產環境。畢竟它的功能還是太簡單,不是一個生產配備的高規格伺服器應用。

指定內建伺服器的執行目錄

我們也可以在任何目錄去執行指定目錄的php程式碼,只需要再增加一個 -t 選項來指明要執行起伺服器的根目錄即可。

php -S localhost:8081 -www.cppcns.com
t dev-blog/php/202004/source

這樣我們就可以執行起來一個以 dev-blog/php/202004/source 目錄為根目錄的測試環境伺服器。

使用路由指令碼

php -S localhost:8081 PHP的內建WEB伺服器.php

如果我們給當前伺服器直接指定了一個PHP檔案,那麼直接開啟連結就會訪問的是這個檔案的內容,而不是去找 index.php 之類的檔案。即使我們繼續給 URL 後臺增加其他路徑或者其他檔名,它依然會開啟的是這個檔案,也就是說,我們啟動了一個單檔案入口的應用伺服器程式。就像各種框架的 index.php 檔案一樣,比如我們利用這個檔案做一個簡單的路由分發測試:

$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!";
http://www.cppcns.com

兩個測試檔案只是簡單的輸出了一段文字用於區別分別載入了兩個檔案。上述程式碼的意思是我們訪問定義好的兩個路由路徑時,就會載入對應的檔案,訪問其他路徑則會列印當前伺服器的 $_SERVER 資訊。

測試程式碼: github.com/zhangyue050…

參考文件: www.php.net/manual/zh/f…

以上就是PHP 內建WEB伺服器的簡單使用的詳細內容,更多關於PHP 內建伺服器的使用的資料請關注我們其它相關文章!