您好,登錄后才能下訂單哦!
本篇內容主要講解“PHP的內置WEB服務器的使用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“PHP的內置WEB服務器的使用”吧!
在很多時候,我們需要簡單的運行一個小 demo 來驗證一些代碼或者輪子是否可用,是否可以運行起來,但是去配 nginx 或者 apache 都很麻煩,其實,PHP CLI 已經提供了一個簡單的測試服務器,我們直接就可以運行起來進行簡單的一些測試工作。
php -S localhost:8081
直接使用 -S 命令選項,然后指定地址及端口號,我們就可以運行起來一個 PHP 內置的簡易WEB服務器。默認情況下,這個地址會找當前目錄下的 index.php 或 index.html 文件。當我們在瀏覽器輸入指定的文件時,就是訪問指定的文件,如果都沒有找到會正常的返回404錯誤。
而控制臺會輸出當前服務器的訪問情況,如下圖所示:
這個內置服務器和用 nginx 等服務器搭起來的應用服務器本質上沒有太大的區別,包括 $_SERVER 之類的內容都可以正常獲取到,也可以正常使用 include 等功能加載其他文件,也就是說這個內置WEB服務器運行一些框架也是沒有問題的。它是可以完全滿足我們的測試要求的。但是需要注意的是,這個內置WEB服務器不能用于生產環境。畢竟它的功能還是太簡單,不是一個生產配備的高規格服務器應用。
我們也可以在任何目錄去運行指定目錄的php代碼,只需要再增加一個 -t 選項來指明要運行起服務器的根目錄即可。
php -S localhost:8081 -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!";
兩個測試文件只是簡單的輸出了一段文字用于區別分別加載了兩個文件。上述代碼的意思是我們訪問定義好的兩個路由路徑時,就會加載對應的文件,訪問其他路徑則會打印當前服務器的 $_SERVER 信息。
測試代碼:https://github.com/zhangyue0503/dev-blog/blob/master/php/202004/source/PHP%E7%9A%84%E5%86%85%E7%BD%AEWEB%E6%9C%8D%E5%8A%A1%E5%99%A8.php
參考文檔:https://www.php.net/manual/zh/features.commandline.webserver.php
到此,相信大家對“PHP的內置WEB服務器的使用”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。