首頁 後端開發 php教程 PHP 54 內建Web伺服器 網頁伺服器排名 網頁伺服器原則 簡單的網頁伺服器

PHP 54 內建Web伺服器 網頁伺服器排名 網頁伺服器原則 簡單的網頁伺服器

Jul 29, 2016 am 08:50 AM
網頁伺服器

PHP是一種腳本語言,它需要PHP解釋器來分析運行PHP檔案。當把PHP做成CGI服務Web請求時,它需要被嵌入到某種Web伺服器裡,最常見的是整合到Apache或IIS裡,這就是說,在使用PHP之前,你需要安裝Apache或IIS,並且正確的配置它們和PHP整合的參數。雖然這種配置已經很規範,文件非常豐富,但我們還是經常在安裝Apache和PHP整合時遇到問題,而且,有時候我們只想測試一個簡單的PHP特徵,不想就為此安裝、啟動Apache服務。

但根據官方文件上說,這個內建的Web伺服器只是提供開發測試使用,不建議使用中生產環境中。因為這個伺服器接受處理請求時順序執行的,不能並發處理。

這個內建的網頁伺服器使用起來非常的方便,你只需要執行下面的指令:

<ol><li><span><span>$ php -S localhost:8000 </span></span></li></ol>
登入後複製

然後就可以存取了。這樣啟動後,預設的web服務目錄就是執行指令的目前目錄,如果不想使用目前目錄,你需要使用 -t 參數來指定。

例#1 啟動Web伺服器

<ol>
<li><span><span>$ cd ~/public_html  </span></span></li>
<li><span>$ php -S localhost:8000 </span></li>
</ol>
登入後複製

終端輸出資訊:

<ol>
<li><span><span>PHP 5.4.0 Development Server started at Thu Jul 21 10:43:28 2011  </span></span></li>
<li><span>Listening on localhost:8000  </span></li>
<li><span>Document root is /home/me/public_html  </span></li>
<li><span>Press Ctrl-C to quit </span></li>
</ol>
登入後複製

當要求了http://localhost:8000/ 和http://localhost:8000/myscript.html 位址後,終端輸出類似如下的資訊:

<ol>
<li><span><span>PHP 5.4.0 Development Server started at Thu Jul 21 10:43:28 2011  </span></span></li>
<li><span>Listening on localhost:8000  </span></li>
<li><span>Document root is /home/me/public_html  </span></li>
<li><span>Press Ctrl-C to quit.  </span></li>
<li><span>[Thu Jul 21 10:48:48 2011] ::1:39144 GET /favicon.ico - Request read  </span></li>
<li><span>[Thu Jul 21 10:48:50 2011] ::1:39146 GET / - Request read  </span></li>
<li><span>[Thu Jul 21 10:48:50 2011] ::1:39147 GET /favicon.ico - Request read  </span></li>
<li><span>[Thu Jul 21 10:48:52 2011] ::1:39148 GET /myscript.html - Request read  </span></li>
<li><span>[Thu Jul 21 10:48:52 2011] ::1:39149 GET /favicon.ico - Request read </span></li>
</ol>
登入後複製

例#2 啟動web伺服器時指定文件的根目錄

<ol>
<li><span><span>$ cd ~/public_html  </span></span></li>
<li><span>$ php -S localhost:8000 -t foo/ </span></li>
</ol>
登入後複製

終端顯示資訊:

<ol>
<li><span><span>PHP 5.4.0 Development Server started at Thu Jul 21 10:50:26 2011  </span></span></li>
<li><span>Listening on localhost:8000  </span></li>
<li><span>Document root is /home/me/public_html/foo  </span></li>
<li><span>Press Ctrl-C to quit </span></li>
</ol>
登入後複製

如果你在啟動命令列後面附加一個php腳本文件,那麼這個文件將會被當成一個“路由器”腳本。這個腳本將負責所有的HTTP請求,如果這個腳本執行時回傳FALSE,則被要求的資源會正常的回傳。如果不是FALSE,瀏覽裡面顯示的將會是這個腳本產生的內容。

例#3 使用路由器腳本

在這個例子中,對圖片的請求會傳回對應的圖片,但對HTML檔的請求會顯示「Welcome to PHP」:

<ol>
<li><span><span><?php  </span></span></li><li><span>// router.php </span><span> </span></li><li><span>if</span><span> (preg_match(</span><span>'/\.(?:png|jpg|jpeg|gif)$/'</span><span>, </span><span>$_SERVER</span><span>[</span><span>"REQUEST_URI"</span><span>])) {  </span></li><li><span>return</span><span> false;    </span><span>// serve the requested resource as-is. </span><span> </span></li><li><span>} </span><span>else</span><span> {  </span></li><li><span>echo</span><span> </span><span>"<p>Welcome to PHP</p>"</span><span>;  </span></span></li>
<li><span>}  </span></li>
<li><span>?> </span></li>
</ol>
登入後複製
<ol><li><span><span>$ php -S localhost:8000 router.php </span></span></li></ol>
登入後複製
登入後複製
登入後複製

例#4 判斷是否是在使用內建web伺服器

透過程式判斷來調整同一個PHP路由器腳本在內建Web伺服器中和在生產伺服器中的不同行為:

<ol><li><span><span><?php  </span></span></li><li><span>// router.php </span><span> </span></li><li><span>if</span><span> (php_sapi_name() == </span><span>'cli-server'</span><span>) {  </span></li><li><span>/* route static assets and return false */</span><span> </span></li><li><span>}  </span></li><li><span>/* go on with normal index.php operations */</span><span> </span></li><li><span>?> </span></span></li></ol>
登入後複製
<ol><li><span><span>$ php -S localhost:8000 router.php </span></span></li></ol>
登入後複製
登入後複製
登入後複製

這個內建的web伺服器能辨識一些標準的MIME類型資源,它們的擴充:.css, .gif, .htm, .html, .jpe, .jpeg, .jpg, .js, .png, .svg, and .txt。對.htm 和 .svg 擴展到支援是在PHP 5.4.4之後才支援的。

例#5 處理不支援的檔案類型

如果你希望這個Web伺服器能夠正確的處理不被支援的MIME檔案類型,這樣做:

<ol><li><span><span><?php  </span></span></li><li><span>// router.php </span><span> </span></li><li><span>$path</span><span> = </span><span>pathinfo</span><span>(</span><span>$_SERVER</span><span>[</span><span>"SCRIPT_FILENAME"</span><span>]);  </span></li><li><span>if</span><span> (</span><span>$path</span><span>[</span><span>"extension"</span><span>] == </span><span>"ogg"</span><span>) {  </span></li><li><span>header(</span><span>"Content-Type: video/ogg"</span><span>);  </span></li><li><span>readfile(</span><span>$_SERVER</span><span>[</span><span>"SCRIPT_FILENAME"</span><span>]);  </span></li><li><span>}  </span></li><li><span>else</span><span> {  </span></li><li><span>return</span><span> FALSE;  </span></li><li><span>}  </span></li><li><span>?> </span></span></li></ol>
登入後複製
<ol><li><span><span>$ php -S localhost:8000 router.php </span></span></li></ol>
登入後複製
登入後複製
登入後複製

如果你希望能遠端的存取這個內建的web伺服器,你的啟動指令需要改成下面這樣:

例#6 遠端存取這個內建Web伺服器

<ol><li><span><span>$ php -S 0.0.0.0:8000 </span></span></li></ol>
登入後複製

這樣你就可以透過8000 連接埠遠端的存取這個內建的web伺服器了

以上就介紹了PHP 54 內建Web伺服器,包含了Web伺服器方面的內容,希望對PHP教學有興趣的朋友有幫助。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

五種常見的web伺服器是什麼 五種常見的web伺服器是什麼 Aug 25, 2022 pm 02:03 PM

五種web伺服器是:1、IIS,是允許在公共Intranet或Internet上發布資訊的Web伺服器;2、Apache,是Apache軟體基金會的一個開放原始碼的網頁伺服器;3、WebSphere Application Server,是一種Web應用程式伺服器;4、Tomcat,是基於Java的Web應用軟體容器;5、Lighttpsd,是開源Web伺服器軟體。

最佳實務:CentOS搭建web伺服器的效能調優指南 最佳實務:CentOS搭建web伺服器的效能調優指南 Aug 04, 2023 pm 12:17 PM

最佳實踐:CentOS搭建web伺服器的效能調優指南摘要:本文旨在為CentOS搭建web伺服器的使用者提供一些效能調優的最佳實踐,旨在提升伺服器的效能和回應速度。將介紹一些關鍵的調優參數和常用的最佳化方法,並提供了一些範例程式碼幫助讀者更好地理解和應用這些方法。一、關閉不必要的服務在CentOS搭建web伺服器時,預設會啟動一些不必要的服務,這些服務會佔用系統資

CentOS上搭建web伺服器的安全審計與事件日誌管理 CentOS上搭建web伺服器的安全審計與事件日誌管理 Aug 05, 2023 pm 02:33 PM

CentOS上建置Web伺服器的安全稽核與事件日誌管理概述隨著網際網路的發展,Web伺服器的安全稽核與事件日誌管理變得越來越重要。在CentOS作業系統上建立Web伺服器後,我們需要關注伺服器的安全性並保護伺服器免受惡意攻擊。本文將介紹如何進行安全性稽核和事件日誌管理,並提供相關程式碼範例。安全審計安全審計是指對伺服器的安全狀態進行全面的監控和檢查,及時發現潛在的

CentOS搭建web伺服器前需注意的權限與存取控制策略 CentOS搭建web伺服器前需注意的權限與存取控制策略 Aug 05, 2023 am 11:13 AM

CentOS搭建web伺服器前需注意的權限與存取控制策略在建置web伺服器的過程中,權限與存取控制策略是非常重要的一環。正確設定權限和存取控制策略可以保護伺服器的安全性,防止非授權使用者存取敏感資料或對伺服器進行不當操作。本文將介紹在CentOS系統下建置web伺服器時需要注意的權限與存取控制策略,並提供對應的程式碼範例。使用者與群組的管理首先,我們需要建立一個專

探討web伺服器為什麼不用swoole 探討web伺服器為什麼不用swoole Mar 27, 2023 pm 03:29 PM

Swoole是一個基於PHP的開源高效能網路通訊框架,它提供了TCP/UDP伺服器和客戶端的實現,以及多種非同步IO、協程等高階特性。隨著Swoole日益流行,許多人開始關心Web伺服器使用Swoole的問題。為什麼目前的Web伺服器(如Apache、Nginx、OpenLiteSpeed等)不使用Swoole呢?讓我們探討一下這個問題。

入門級教學:在CentOS上建立web伺服器的快速指南 入門級教學:在CentOS上建立web伺服器的快速指南 Aug 04, 2023 pm 06:04 PM

入門課程:在CentOS上建立web伺服器的快速指南引言:在當今網路時代,建立自己的web伺服器已經成為許多人的需求。本文將為大家介紹如何在CentOS作業系統上建置web伺服器,並提供程式碼範例幫助讀者快速實現。第一步:安裝並設定Apache開啟終端,透過以下指令安裝Apache伺服器:sudoyuminstallhttpd安裝完成後,啟動Apac

Go語言編寫Web伺服器的最佳實踐 Go語言編寫Web伺服器的最佳實踐 Jun 18, 2023 pm 07:38 PM

Go語言已經成為了一種流行的開發語言,特別是在網路程式設計方面。 Go語言編寫Web伺服器時,有許多最佳實踐來確保伺服器的安全性、可維護性和可擴展性。以下是一些建議和實踐,可以幫助你提高你的Go語言Web伺服器的效率和可靠性。使用標準庫Go語言標準庫中有很多相關於網路程式設計的套件。例如,net/http套件可以幫助你編寫HTTP伺服器,net套件可以幫助處理底層網路連接,

CentOS 7下搭建web伺服器的最佳實務及注意事項 CentOS 7下搭建web伺服器的最佳實務及注意事項 Aug 25, 2023 pm 11:33 PM

CentOS7下搭建web伺服器的最佳實務及注意事項引言:在當今網路時代,web伺服器是建置和託管網站的核心元件之一。 CentOS7是一個強大的Linux發行版,廣泛應用於伺服器環境。本文將探討在CentOS7上建立web伺服器的最佳實務和注意事項,並提供一些程式碼範例以幫助您更好地理解。一、安裝ApacheHTTP伺服器Apache是​​使用最廣泛的w

See all articles