❶ php伺服器和WEB伺服器有什麼區別
PHP僅僅是一個解釋程序,嚴格說沒有PHP伺服器的說法,只有WEB伺服器,就是能夠讓別人輸入你的地址作為網站訪問的功能。
你的PHP伺服器可能是指能支持PHP的伺服器,實際上就是WEB伺服器上添加一個PHP解釋程序,以及配置WEB伺服器支持PHP。
❷ 為什麼 PHP 必須依賴 web 伺服器
因為php不是應用程序,是cgi,必須依賴web伺服器調用他。
❸ 什麼是安裝了PHP的web伺服器
你主要要理解web伺服器,安裝了php的伺服器,那麼說明你的web伺服器支持php頁面運行,一般用的是apache當然IIS經過配置是可以運行php程序的。如有問題接著再聊。
❹ 如何設置PHP 5.4內置的web伺服器
PHP是一種腳本語言,它需要PHP解釋器來分析運行PHP文件。當把PHP做為CGI服務Web請求時,它需要被嵌入到某種Web伺服器里,最常 見的是集成到Apache或IIS里,這就是說,在使用PHP前,你需要安裝Apache或IIS,並且正確的配置它們和PHP集成的參數。雖然這種配置 已經很規范,文檔非常豐富,但我們還是經常在安裝Apache和PHP集成時遇到問題,而且,有時候我們只想測試一個簡單的PHP特徵,不想就為此安裝、 啟動Apache服務。
但據官方文檔上說,這個內置的Web伺服器只是提供開發測試使用,不推薦使用中生產環境中。因為這個伺服器接受處理請求時順序執行的,不能並發處理。
這個內置的web伺服器使用起來非常的方便,你只需要執行下面的命令:
?
1
$ php -S localhost:8000
然後就可以訪問了。這樣啟動後,默認的web服務目錄是執行命令的當前目錄,如果不想使用當前目錄,你需要使用 -t 參數來指定。
例 #1 啟動Web伺服器
?
1
2
$ cd ~/public_html
$ php -S localhost:8000
終端輸出信息:
?
1
2
3
4
PHP 5.4.0 Development Server started at Thu Jul 21 10:43:28 2011
Listening on localhost:8000
Document root is /home/me/public_html
Press Ctrl-C to quit
當請求了 http://localhost:8000/ 和 http://localhost:8000/myscript.html 地址後,終端輸出類似如下的信息:
?
1
2
3
4
5
6
7
8
9
PHP 5.4.0 Development Server started at Thu Jul 21 10:43:28 2011
Listening on localhost:8000
Document root is /home/me/public_html
Press Ctrl-C to quit.
[Thu Jul 21 10:48:48 2011] ::1:39144 GET /favicon.ico - Request read
[Thu Jul 21 10:48:50 2011] ::1:39146 GET / - Request read
[Thu Jul 21 10:48:50 2011] ::1:39147 GET /favicon.ico - Request read
[Thu Jul 21 10:48:52 2011] ::1:39148 GET /myscript.html - Request read
[Thu Jul 21 10:48:52 2011] ::1:39149 GET /favicon.ico - Request read
例 #2 啟動web伺服器時指定文檔的根目錄
?
1
2
$ cd ~/public_html
$ php -S localhost:8000 -t foo/
終端顯示信息:
?
1
2
3
4
PHP 5.4.0 Development Server started at Thu Jul 21 10:50:26 2011
Listening on localhost:8000
Document root is /home/me/public_html/foo
Press Ctrl-C to quit
如果你在啟動命令行後面附加一個php腳本文件,那這個文件將會被當成一個「路由器」腳本。這個腳本將負責所有的HTTP請求,如果這個腳本執行時返回FALSE,則被請求的資源會正常的返回。如果不是FALSE,瀏覽里顯示的將會是這個腳本產生的內容。
例 #3 使用路由器腳本
在這個例子中,對圖片的請求會返回相應的圖片,但對HTML文件的請求會顯示「Welcome to PHP」:
?
1
2
3
4
5
6
7
8
<?php
// router.php
if (preg_match('/\.(?:png|jpg|jpeg|gif)$/', $_SERVER["REQUEST_URI"])) {
return false; // serve the requested resource as-is.
} else {
echo "<p>Welcome to PHP</p>";
}
?>
執行:
?
1
$ php -S localhost:8000 router.php
例 #4 判斷是否是在使用內置web伺服器
通過程序判斷來調整同一個PHP路由器腳本在內置Web伺服器中和在生產伺服器中的不同行為:
?
1
2
3
4
5
6
7
<?php
// router.php
if (php_sapi_name() == 'cli-server') {
/* route static assets and return false */
}
/* 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之後才支持的。
❺ 如何使用內建的 PHP Web 伺服器
從 PHP 5.4 版本以來,CLI SAPI 就帶有內置的 web 伺服器 Apache 或者 php.net) 作為參數。當命令還在產品或者是其它開發環境中執行時,已經有一個這樣的「路由器」腳本參數傳遞給了 Symfony。可以在任何環境或者路由器腳本中使用路由器選項:
$ php app/console server:start --env=test --router=app/config/router_test.php
如果您的程序的根文檔和標準的目錄布局不同,那麼您需要通過使用 --docroot 選項來傳遞正確的位置:
$ php app/console server:start --docroot=public_html
停止伺服器
當您完成了工作,您可以通過 server:stop 命令來停止伺服器:
$ php app/console server:stop
就像使用啟動伺服器命令一樣,如果省略了套接字信息, Symfony 會停止 localhost:8000 下的伺服器。所以,當您的伺服器監聽的不是默認地址或者埠的時候,請在執行命令的時候加上套接字信息:
$ php app/console server:stop 192.168.0.1:8080
❻ 簡述在web伺服器中,Apache和PHP的工作流程
那麼php的運行原理就是Apache、PHP、瀏覽器之間的協作過程:
①當用戶在瀏覽器地址中輸入要訪問的PHP頁面文件名,然後回車就會觸發這個PHP請求,並將請求傳送化支持PHP的WEB伺服器(apache)。
②WEB伺服器(apache)接受這個請求,並根據其後綴進行判斷如果是一個PHP請求,WEB伺服器(apache)從硬碟或內存中取出用戶要訪問的PHP應用程序,並將其發送給PHP引擎程序。
③PHP引擎程序將會對WEB伺服器(apache)傳送過來的文件從頭到尾進行掃描並根據命令從後台讀取,處理數據,並動態地生成相應的HTML頁面。
④PHP引擎將生成HTML頁面返回給WEB伺服器(apache)。WEB伺服器(apache)再將HTML頁面返回給客戶端瀏覽器,最後一個完整的頁面基於通過瀏覽器展現在我們眼前。
❼ 如何架設Nginx+Php Web伺服器
由於每個過程較繁瑣,所以這里說說具體步驟,每個步驟的具體內容可以網路搜索。
安裝步驟
一、 編譯安裝PHP5.2.9所需的支持庫
二、編譯安裝MySQL 5.1.34擴展庫
三、編譯安裝PHP(FastCGI模式)
四、修改php-fpm配置文件
五、創建www用戶組及www用戶
六、編譯安裝Nginx
七、創建fcgi.conf文件
八、編輯Nginx配置文件
九、配置開機自動啟動Nginx + PHP
十、優化Linux內核參數
❽ 簡單說明php程序運行過程性,php預處理web伺服器和資料庫伺服器的功
我們大家都知道PHP的強大之處,最近看到了關於PHP
WEB伺服器的相關知識,下面我們就這個問題和大家一起討論一下。WAP(無線通訊協議)是在數字行動電話、個人手持設備(PDA等)及計算機之間進行通訊的開放性全球標准。由於靜態的WAP頁面在很多方面不能滿足用戶個性化的服務請求,因此通過WAP伺服器端語言產生動態的WML頁面,具有很廣泛的應用價值和很高的商業價值。
- 淺析使用PHP邏輯運算符
- 關於Windows PHP配置應用程序伺服器步驟
- 經驗之談:PHP安裝設置技巧總結
- 演示PHP substr函數使用
- 關於Windows下安裝PHP5配置詳細介紹
WAP
應用結構非常類似於Internet,一個典型的WAP應用請求是這樣的:首先,具有WAP用戶代理功能的移動終端(WAP手機等)通過內部運行的微瀏覽器(Micro
Browser)對某一網站以無線方式發送WAP服務請求。該請求先由WAP網關截獲,對信息內容進行編碼壓縮,以減少網路數據流量,同時根據需要將WAP協議轉換成HTTP協議,然後將處理後的請求轉送到相應WAP伺服器。在WAP伺服器端,根據頁面擴展名等性質,被請求的頁面直接或由伺服器端腳本解釋後輸出,再經網關傳回用戶。
從上述WAP應用流程可以看到,生成動態WAP頁面與動態產生Web網頁的過程非常類似。但是由於WAP應用使用的WML語言來源於語法嚴格的XML,因此要求輸出的格式必須按WAP網頁的規范輸出。同時,由於WAP協議的應用范圍、移動客戶端的軟硬體水平等特殊性,對每次輸出的頁面的大小、圖像的格式及容量都有一定限制。下面我們以PHP腳本語言為例,看看如何動態輸出WAP頁面。
一、設置PHP WEB伺服器
首先你的 Web伺服器要安裝好PHP,即能處理PHP腳本程序。其次,為使PHP WEB伺服器能同時識別和處理PHP、WML、WBMP等文件,Web
伺服器的MIME表需添加以下的幾種文件類型。
- text/vnd.wap.wml .wml
- image/vnd.wap.wbmp .wbmp
- application/vnd.wap.wmlc .wmlc
- text/vnd.wap.wmls.wmls
- application/vnd.wap.wmlsc .wmlsc
二、用PHP輸出簡單動態WAP頁面
下面有一個最簡單的PHP生成WAP頁面的例子。注意由於需要PHP解釋器來解釋該程序,並輸出WAP頁面,因此所有類似程序應以.php為擴展名。
- <?php
- header(″Content-type: text/vnd.wap.wml″);
- echo (″<wml> <card> <p>″);
- echo date( ″l dS of F Y h:i:s A″ );
- echo (″</p></card></wml>″);
- ?>
該例子在WAP手機模擬器中可以瀏覽,輸出當前日期時間,而在普通的瀏覽器中無法識別,甚至會被認為是錯誤下載。這是因為在程序開頭就聲明了該輸出文檔為WML類型,該類型只有WAP設備能夠識別並解釋。值得注意的是,我們常見的HTML語言對規范性要求不嚴,大多數瀏覽器能「容忍」其中相當多的編寫錯誤,而WML規范相當嚴格,一點失誤都可能導致無法輸出所需頁面。
一旦我們知道了用PHP腳本輸出WAP頁面的標准過程,我們就能夠使用PHP強大的功能配合以WML語言的交互處理以及WML s
cript的簡單腳本,開發出適合我們需要的應用系統了。
三、用PHP動態生成圖像
WAP應用使用一種特殊黑白的圖像格式WBMP。我們可以用一些工具來將已有圖像轉換成WBMP格式,然後在WML文檔中使用。但是在WAP站點上如果能動態地生成所需圖像如K線圖等,將會有廣闊的應用前景。幸運的是,PHP的GD庫(版本1.8以上)已經提供了相應函數。
- <?PHP
- Header(″Content-type: image/vnd.wap.wbmp″);
- Sim = ImageCreate(50, 50);
- Swhite = ImageColorAllocate(Sim,255,255,255);
- Sblack = ImageColorAllocate(Sim,0,0,0);
- ImageRectangle(Sim, 5, 5, 20, 20, Sblack);
- ImageWBMP(Sim); ImageDestroy(Sim);
- ?>
該文件將在WAP模擬器中顯示一個黑色矩形框。注意要使用GD的圖像函數庫,必須在PHP WEB伺服器配置中載入PHP_GD.DLL庫文件。
四、在PHP中處理漢字
WAP作為一種全球應用,選擇了UNICODE
2.0作為其標准字元集編碼,以便能同時處理包括英文、中文、日文、法文等多種文字。而我們平常處理漢字使用的是GB2312編碼,不同的內碼標准勢必不能通用,因此如果不在兩種編碼之間通過碼表進行轉換,就會出現漢字亂碼現象。現在已經有較成熟的GB-2312與UNICODE編碼轉換的程序和函數,並在ASP、PHP、JSP等系統中使用,我們可以在一些技術站點上找到它們。
目前的大多數WAP手機(Nokia7110、愛立信
R320S等等)都是使用UTF-8編碼的,也就是採用UNICODE來編碼。這樣,如果我們直接在WML使用中文字元(GB2312編碼),將會產生亂碼,手機用戶無法識別,所以我們在輸出中文之前,要使用程序或函數對中文進行UNICODE的編碼。而在少數支持GB2312編碼的手機或WAP終端設備中,我們可以在程序中定義好文檔的內碼類型後即可直接正確顯示漢字,例如:
- <?php
- header(″Content-type: text/vnd.wap.wml; charset=gb2312″);
- echo (″<wml><card><p>″);
- echo (″中文測試″);
- echo (″</p></card></wml>″);
- ?>
❾ 在php中,有應用伺服器+web伺服器組合的應用嗎
lamp:伺服器為apache,php作為apache的一個模塊被載入到apache進程中,apache接受的動態請求通過SAPI與php進行交互,即php的Apache 2.0 Handler模式
lnmp:web伺服器為nginx,接受到動態請求通過socket轉發給後端php-fpm,進行處理並返回給webserver,此時php的運行模式為PHP-CGI,fpm為PHP fast-cgi的協議的實現!
❿ php伺服器和WEB伺服器有什麼區別
PHP僅僅是一個解釋程序,嚴格說沒有PHP伺服器的說法,只有WEB伺服器,就是能夠讓別人輸入你的地址作為網站訪問的功能。
你的PHP伺服器可能是指能支持PHP的伺服器,實際上就是WEB伺服器上添加一個PHP解釋程序,以及配置WEB伺服器支持PHP。