PHP 5 4 內建web伺服器

2021-07-26 14:52:30 字數 2390 閱讀 6669



php是一種指令碼語言,它需要php直譯器來分析執行php檔案。當把php做為cgi服務web請求時,它需要被嵌入到某種web伺服器裡,最常見的是整合到apache或nginx或iis等等web容器裡,這就是說,在使用php前,你需要安裝apache或nginx或iis,並且正確的配置它們和php整合的引數。雖然這種配置已經很規範,文件非常豐富,www.ttlsa.com**內有大量的這些配置例項,可以參考參考。但我們還是經常在web服務如nginx與php整合時遇到問題,而且,有時候我們只想測試乙個簡單的php特徵,不想就為此安裝、啟動相關web服務,如nginx。

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

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

# php -s localhost:8000

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

例1: 啟動web伺服器 1

或# php -s localhost:8000 -t /data/webroot/www.ttlsa.com/webroot

如果在啟動命令列後面附加乙個php指令碼檔案,那這個檔案將會被當成乙個「路由器」指令碼。這個指令碼將負責所有的http請求,如果這個指令碼執行時返回false,則被請求的資源會正常的返回。如果不是false,瀏覽裡顯示的將會是這個指令碼產生的內容。 1

例3: 判斷是否是在使用內建web伺服器

通過程式判斷來調整同乙個php路由器指令碼在內建web伺服器中和在生產伺服器中的不同行為: 1

2

3

4

5

6

7

<?php

// router.php

if(php_sapi_name()

=='cli-server')

/* go on with normal index.php operations */

?>

1

# php -s localhost:8000 router.php

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

例4: 處理不支援的檔案型別

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

2

3

4

5

6

7

8

9

10

11

<?php

// router.php

$path

=pathinfo

($_server

["script_filename"])

; if(

$path

["extension"]==

"ogg")

else

?>

1

# php -s localhost:8000 router.php

例5: 遠端訪問這個內建web伺服器 1

# php -s 0.0.0.0:8000

這樣就可以通過8000埠遠端的訪問這個內建的web伺服器了。

PHp5 4自帶的web伺服器

php是一種指令碼語言,它需要php直譯器來分析執行php檔案。當把php做為cgi服務web請求時,它需要被嵌入到某種web伺服器裡,最常 見的是整合到apache或iis裡,這就是說,在使用php前,你需要安裝apache或iis,並且正確的配置它們和php整合的引數。雖然這種配置 已經很規範,...

php 內建Web伺服器

至php5.4.0起,php又多了乙個隱藏功能 內建web伺服器,不過內建伺服器不應該出現在生產環境中,但對本地開發卻是乙個很好的工具。所以我們無需安裝mamp,lamp或大型web伺服器,就能在本地編寫或預覽html。伺服器啟動 內建web伺服器啟動十分容易,只需要在當前專案根目錄開啟終端應用,輸...

PHP內建伺服器

php在安裝的時候會內建了伺服器的功能,我們在使用的過程中如果只是除錯,可以選擇啟動php內建的伺服器,下面是windows下php內建伺服器的啟動步驟 1 將php的d phpstudy php54 即php.exe所在目錄 新增到環境變數path中。2 開啟dos命令視窗輸入 其中d phpst...