iT邦幫忙

0

[ASP] IIS設定 + 把網站專案新增到IIS的站台

IIS可以掛網站
IIS可以掛FTP

IIS設定

1.啟用IIS服務
控制台 -> 程式集 -> 程式和功能 -> 開啟或關閉 Windows 功能來啟用IIS功能
IIS 管理主控台 & World Wide Web服務
測試 : http://127.0.0.1 成功應該會看見IIS歡迎畫面
https://ithelp.ithome.com.tw/upload/images/20180327/20106764e6VSui85Fq.png

2.IIS 點首頁的ASP,設定啟用上層路徑 = true
https://ithelp.ithome.com.tw/upload/images/20180327/20106764tKsZk4STih.png
https://ithelp.ithome.com.tw/upload/images/20180327/20106764S8wBBb1awB.png

把網站專案新增到IIS的站台

1.新增虛擬目錄.權限新增everyone (允許 讀取和執行/列出資料夾內容/讀取)
https://ithelp.ithome.com.tw/upload/images/20180327/20106764FL3n4iUV6i.png
https://ithelp.ithome.com.tw/upload/images/20180327/20106764ym1HlgKtns.png
https://ithelp.ithome.com.tw/upload/images/20180327/20106764lfN4wW4z9L.png

2.在虛擬目錄下放hello.asp
https://ithelp.ithome.com.tw/upload/images/20180327/201067643AgXh2yWtc.png

<html>
<body>
<%=now()%>
<%="Hello World!"%>
<%
response.write("Hello World!")
%>
</body>
</html>

3.查看localhost/ASP/hello.asp
https://ithelp.ithome.com.tw/upload/images/20180327/20106764JgjMoP58yf.png

ref
http://isvincent.pixnet.net/blog/post/30715336-%E5%9C%A8iis-7%E4%B8%AD%E4%BD%BF%E7%94%A8asp%E7%A8%8B%E5%BC%8F

網頁資料呈現方式(HTML版)

  1. 使用者透過瀏覽器向Server端要求一份html文件。
  2. Server找出該份html文件,Server把這份文件回傳給瀏覽器。
  3. 瀏覽器接到這份文件之後,發現這份文件內含Client Side Script(例如Java Script)。
  4. 瀏覽器執行Script後,再把html轉成美觀的格式顯示給使用者看。

網頁資料呈現方式(動態頁面)

  1. 使用者透過瀏覽器向Server端要求一份文件。
  2. Server找出該份文件發現這是一份php文件。於是把它送到php執行引擎去執行。
  3. php執行引擎回傳一份html文件,Server把這份文件回傳給瀏覽器。
  4. 瀏覽器接到這份文件之後,發現這份文件內含Client Side Script(例如Java Script)。
  5. 瀏覽器執行Script後,再把html轉成美觀的格式顯示給使用者看。
    https://ithelp.ithome.com.tw/upload/images/20180613/20106764TGppOWhCf0.jpg

所以Server端環境建置,需有
1.webservice :IIS
2.後端語言解譯器 : ASP
3.DB : SQLServer
https://ithelp.ithome.com.tw/upload/images/20180613/20106764vnQqxYgBx9.png
ref
http://ezgo.cajh.chc.edu.tw/course/php/1php.html

網頁資料呈現方式(動態頁面-進階版)
ref
http://bluelove1968.pixnet.net/blog/post/222280096-cgi---html---web-server

PHP解析器 / ASP解析器 都依CGI協定
它是個協定.但什麼是協定?

web server(比如說nginx)只是內容的分發者。比如,如果請求/index.html,那麼web server會去文件系統中找到這個文件,發送給瀏覽器,這裡分發的是靜態數據。好了,如果現在請求的是/index.php,根據配置文件,nginx知道這個不是靜態文件,需要去找PHP解析器來處理,那麼他會把這個請求簡單處理後交給PHP解析器。 Nginx會傳哪些數據給PHP解析器呢? url要有吧,查詢字符串也得有吧,POST數據也要有,HTTP header不能少吧,好的,CGI就是規定要傳哪些數據、以什麼樣的格式傳遞給後方處理這個請求的協議。仔細想想,你在PHP代碼中使用的用戶從哪裡來的。

比如說,如果請求 index.html,web server會去找到這個文件再丟給瀏覽器,但這個只限於靜態文件而已,如果是index.php呢,就需要去找php解析器來處理了,接下來web service就會把這個請求交給php 解析器處理,那會傳那一些資料呢?像是 post或是url還有http header等,CGI就是規定要傳哪些資料、以及怎麼樣的格式
*CGI是規定,就像規定紅燈停,綠燈走.而紅綠燈(PHP Praser)實作了這個規定,看到紅燈停,看到綠燈走.

CGI
在許多的資料庫系統裡,我們必須定義一個標準介面來結合資料庫和 HTML 之間的連接,以期不同的資料庫系統都能提供標準介面的連接方式,使用 HTML 所製作的程式就很容易連結到各種資料庫系統,甚至程式設計師不需要去考慮到底使用何種資料庫統,皆可使用標準模式發展應用程式。
這個標準介面稱之為『共通閘門介面』(Common Gateway Interface, CGI),凡是具有 CGI 介面的程式也稱為 CGI 程式。CGI 程式可由 Perl、C 、或 Java 等程式語言發展。當瀏覽器執行到 CGI 程式時,它會透過 CGI 介面查詢資料庫系統
https://ithelp.ithome.com.tw/upload/images/20200828/2010676438Llmwey3w.png
http://www.tsnien.idv.tw/Network_WebBook/chap6/6-8%20Web-based%20%E7%B6%B2%E8%B7%AF%E6%87%89%E7%94%A8%E6%9E%B6%E6%A7%8B.html
CGI
當web server收到/index.php這個請求後,會啟動對應的CGI Process,這裡就是PHP的解析器。接下來PHP解析器會解析php.ini文件,初始化執行環境,然後處理請求,再以規定CGI規定的格式返回處理後的結果,結束Process。 web server再把結果返回給瀏覽器。
*傳統的CGI接口方式安全性也很差,現在已經很少被使用了。

又模糊了
*CGI是interface (有這樣的說法)
*cgi 是網頁伺服器(用以發放網頁予瀏覽器)和其他伺服器/伺服器上其他程式(用以作其他資料處理工作)之間的中介,因此命名為「Interface」。
*以Perl編寫cgi + cgi可以做到javascript能做的(又模糊了)
*微軟公司開發了一種功能與 cgi 類似的技術,也須在伺服器上處理資料,稱為「ASP (Active Server Page)」,有些人把 ASP 也視作 cgi 的一種,然而,二者技術其實完全不同,不應混為一談。

FastCGI
好了,CGI是個協定,跟Process什麼的沒關係。那fastcgi又是什麼呢? Fastcgi也是個協定,但改善CGI的缺點,提高了CGI Process效能。

提高效能,那麼CGI 的效能問題在哪呢? "PHP解析器會解析php.ini文件,初始化執行環境",就是這裡了。標準的CGI對每個請求都會執行這些步驟(不嫌累啊!啟動Process很累的說!),所以處理每個時間的時間會比較長。這明顯不合理嘛!那麼Fastcgi是怎麼做的呢?首先,Fastcgi會先啟一個master,解析配置文件,初始化執行環境,然後再啟動多個worker。當請求過來時,master會傳遞給一個worker,然後立即可以接受下一個請求。這樣就避免了重複的勞動,效率自然是高。而且當worker不夠用時,master可以根據配置預先啟動幾個worker等著;當然空閒worker太多時,也會停掉一些,這樣就提高了效能,也節約了資源。這就是fastcgi的對Process的管理。

PHP-FPM
那PHP-FPM又是什麼呢?是一個實現了Fastcgi的軟體,被PHP官方收了。

大家都知道,PHP的解析器是php-cgi。 php-cgi只是個CGI Process,他自己本身只能解析請求,返回結果,不會Process管理(皇上,臣妾真的做不到啊!)所以就出現了一些能夠調度php-cgi Process的程式,比如說由lighthttpd分離出來的spawn-fcgi。好了PHP-FPM也是這麼個東東,在長時間的發展後,逐漸得到了大家的認可(要知道,前幾年大家可是抱怨PHP-FPM穩定性太差的),也越來越流行。

所以最後才會造成如果修改php.ini檔案之後,才需要重新啟動php-fpm,原因就是這個樣子

*解析器Praser


https://ithelp.ithome.com.tw/upload/images/20180613/20106764PEQjj8zpG1.png
https://ithelp.ithome.com.tw/upload/images/20180613/20106764i7UDWmGHHf.png
https://ithelp.ithome.com.tw/upload/images/20180613/201067648cl11txWXh.png
https://ithelp.ithome.com.tw/upload/images/20180613/20106764fIo6QwTRXw.png

*web server網路伺服器
一台提供服務的電腦
一台負責提供網頁的電腦,主要是HTML檔案,透過HTTP協定傳給客戶端(一般是指網頁瀏覽器)。
一個提供網頁的伺服器程式。
每一台網頁伺服器(??)會執行最少一個網頁伺服器程式(??)。

● Apache軟體基金會的Apache HTTP伺服器
● Microsoft的Internet Information Server(IIS)
● Google的Google Web Server
● nginx公司的nginx
● lighttpd公司的lighttpd

ref
https://www.newscan.com.tw/all-knowledge/knowledge-detail-6.htm

ref
https://www.astralweb.com.tw/what-is-differences-between-fastcgi-php-fpm/
王者的解釋
https://segmentfault.com/q/1010000000256516


尚未有邦友留言

立即登入留言