首先,一定要先說由 PHP 建立出來的網頁伺服器,僅適用於開發或測試環境,絕對不要拿來當做正式環境的網頁伺服器。
因為 PHP 搭建出來的網頁伺服器,和真正的網頁伺服器,還是有很大的落差。以往,想要測試 PHP 的程式,一定都會餵到 Apache 或 IIS……等網頁伺服器中執行。
一來是 Apache 或 IIS 本來就已經架好了,二來也符合真實的執行環境。
當然,還有一點是我根本不知道 PHP 還有內建一個開發用途的網頁伺服器。
根據 PHP 執行檔的說明(不論 Linux 或 Windows),要建立 PHP 的臨時網頁伺服器,基本用法是這樣:
php -S 127.0.0.1:8080
然後用瀏覽器開啟 http://127.0.0.1:8080/ 就可以看到我們的 PHP 網頁了。
如果看到其他的東西,或結果不如預期,也算是預料中的情況。
基本用法,會自動將目前所在資料夾,設定為 Document root。
在 Windows 上,如果你是在 C:\Web\phptest\ 執行基本用法,那麼你就必須要把你想測試的 PHP 放在 C:\Web\phptest\ 裡。
在 Linux 裡也是,如果你是在 /var/www/html/phptest/ 執行基本用法,那麼你就必須要把 PHP 放到 /var/www/html/phptest/ 裡。
但實際上你想測試的 PHP 都不在那些目錄裡,那麼就可以改用這樣的執行法
php -S 127.0.0.1:8080 -t D:\web\phpdev\
php -S 127.0.0.1:8080 -t /home/john/phpdev/
也就是多加一個參數 t,並指定目標資料夾路徑即可。
再更進階一點點的用法,可以這樣用
php -S 0.0.0.0:8080
重點在於 IP 的部份,指定為 0.0.0.0,這樣子的用法,是指這個網頁伺服器不綁定任何的 IP。
如果你的電腦有很多 IP,使用任何一組 IP,都可以連上這一個網頁伺服器。甚至是你的外部 IP。
但請一定要注意,不要拿它用來做為正式環境的的網頁伺服器。
最後,我們看一下用 PHP 建出來的網頁伺服器和標準的網頁伺服器的差異。
PHP 建出來的,可以看到 PHP 的版本,同時會指出這是一個 Development Server
IIS 的,可以看到 IIS 的版本