1、IIS服務器的搭建php
IIS全稱Internet Information Service,中文名:Internet信息服務,專用於微軟操做系統平臺,兼容微軟的各項Web技術,尤爲是ASP.NET(其實也就在IIS上能跑),除此以外,IIS還支持CGI,IIS7之後的版本對Fast-CGI支持更好,因此PHP 5.3可使用Fast-CGI和Zend來優化在IIS上的性能,固然早期的ASP也是能夠支持的,JSP的支持相對麻煩,並且性能很差,因此基本沒人拿IIS跑JSP。css
如今,IIS8已經伴隨着Windows Server 2012 R2和Windows 8.1的發佈而出如今最新的Windows版本中,因此本文就不拿IIS7之前的古董說事了,IIS7之後的版本,變化幅度很小,應該是在優化性能、增長穩定性和添加新的MIME等一些雜項上的處理。html
好了,如今讓咱們開始!web
基本步驟以下:數據庫
啓用功能 -> 設置網站路徑和端口 -> 設置權限 -> 設置雜項 -> 正式發佈瀏覽器
1.啓用功能:安全
首先,咱們以Windows 桌面版系統爲例,進入Windows的「控制面板」,如圖所示服務器
(Windows 桌面版控制面板)網絡
進入「程序」,而後點「啓用或關閉Windows功能」,而後就能看到一下選項,找到Internet Information Services(在Windows 7爲Internet信息服務,下同),如圖所示框架
(Windows 桌面版的 Windows 功能)
在Internet Information Services以前的選項框上打勾,會發現有些內容是方塊型的,意思是沒有徹底啓用其中的功能,建議按照圖片上的介紹把「應用程序開發功能」中的內容所有勾選,要不IIS搭好之後只能掛HTML這種靜態網頁。勾選完成後,如還須要其餘方面的功能,如ODBC日誌、動態內容壓縮、HTTP重定向等功能,也能夠再次勾選,固然如今不勾選之後再加也沒問題。
(關閉 Windows 防火牆)
完成後,點擊肯定,Windows自動安裝IIS功能,安裝完成後,建議在「系統和安全」中,徹底關閉防火牆,保證IIS的其餘端口可被訪問,在IE或其餘瀏覽器中,打開http://localhost,出現以下界面,則說明搭建成功
(IIS8 歡迎界面)
接下來,咱們來看看在Windows Server 2012 R2上的IIS搭建過程
首先,打開「服務器管理器」,在右上角找到「管理」->「添加角色和功能」,如圖所示
(Windows Server 2012 R2 服務器管理器添加角色和功能)
接着,一直點擊「下一步」,直到「服務器角色」一項,在右側列表中找到「Web 服務器(IIS)」一項,如圖所示
(Windows Server 2012 R2 添加服務器角色)
成功添加角色後,會提示你選擇所需的功能,相似前面Windows 桌面版的介紹,選擇本身所需的功能,推薦將「應用程序開發」中的全部選項所有勾選!若是做爲真正的服務器使用,最好把功能所有配齊,免得再次配置。勾選完後,一路「下一步」等待安裝完成便可。
(Windows 7和Windows Server 2008 R2的配置相似對應的桌面版和服務器版,可參照上面的介紹配置)
安裝完成後,查看Windows服務,能夠發現多出一項名爲「World Wide Web Publishing Service」的服務,這個服務用於啓動和管理IIS進程,保證Windows開機啓動時,自動運行,而不須要某一個用戶登陸。
(IIS的服務)
2.設置網站路徑和端口
雖然服務器功能啓用完畢,雖然咱們能夠在局域網內經過IP地址或者在本機用localhost進行訪問,但咱們只是瀏覽了微軟給咱們的示例,咱們須要讓IIS展現咱們本身寫好的網站,此時就須要將網站相關的文件,如:aspx、html、dll等,這裏,咱們用ASP.NET中最簡單的WebForm形式單頁面演示如何部署一個真正的動態網站。
首先,假設咱們的網站已經在VS中徹底開發完成,如圖所示,網站基本目錄文件以下:
(一個基本的WebForm網站)
提早說明一點:這個網站就是一個基本的Web API,根據參數id(GET或POST提交),從數據庫中取出對應ID的數據,當id爲0或不能轉換爲int型數據時,返回全部數據,超出範圍則返回空數據。
若是直接運行或者調試,會看到下面的畫面,其中,瀏覽器地址是localhost+一個隨機的端口號,這是VS將網站掛在了自帶的IIS Express上,但IIS Express僅容許本地調試使用,若是在局域網測試或者把VS的調試關閉,則會發現網站不能訪問。
(IIS Express展現結果)
因而,咱們如今能夠有兩種方式整理網站須要的文件,第一是本身手動去複製,第二是用VS自動打包。若是不是網站特別大,文件特別多,仍是建議本身複製。如圖所示,打開項目的源文件夾,咱們會看到許多文件,有.cs、.vscxproj、.config等,其中,咱們須要的只有如下幾種類型:
第一,網站的視圖或頁面文件,WebForm爲aspx,MVC爲cshtml或aspx,WebService爲asmx等等
第二,網站的資源文件,如js腳本、圖片、css文件等
第三,網站的動態連接庫,即整個bin文件夾,及及其中的dll文件
第四,網站的配置文件,Web.config
(網站源碼文件夾)
剩下的文件,無論以什麼後綴名結尾,所有均可以不要,可是不要刪,都是你本身的心血!
把這些文件複製到你須要掛網站的地方,若是是服務器系統,只要不是系統目錄,你能夠任意放,若是是桌面版系統,別放在桌面上、系統目錄就行,推薦放在如下幾種路徑:
第一,IIS默認路徑,C:\inetpub\wwwroot\
第二,非C盤的其餘路徑,如D:\xxx
第三,非網絡路徑的其餘可讀寫、腳本可執行路徑
接着,咱們要在IIS裏進行網站路徑設置。打開IIS,在左邊的列表中看到「網站」一項,如圖所示,這裏列出了全部在本機IIS服務器上掛載的站點
(IIS中的網站列表)
如今要考慮是將網站掛在本機的另外一個TCP端口(Default Web Site默認綁定80端口,能夠將本身的網站掛在8080等端口上)上,仍是將網站掛在80端口下的一個虛擬目錄中,這裏分別介紹。
首先,若是咱們將網站掛在8080端口上,咱們須要在「網站」中新建一個網站,大體操做爲:右鍵「網站」->「添加網站」->輸入信息->點擊「肯定」便可,其中,「網站名稱」任意填寫,「物理路徑」選擇上面放了網站相關文件的目錄路徑,剩下端口改成8080或者其餘未佔用端口都行,點擊肯定,訪問http://localhost:8080/或者IP地址便可看到本身的網站了,如圖所示
(添加一個新網站)
其次,咱們來看一下虛擬路徑的添加方法,所謂虛擬路徑,就是相似http://www.xiyoumobile.com/admin/等訪問方法,看似訪問了網站中的另外一個文件夾,實際上訪問了另一個網站,在IIS中能夠選擇「添加虛擬目錄」和「添加應用程序」兩種方法實現,我的推薦後者,由於不用由於新建一個虛擬目錄而考慮.dll文件的放置位置。具體操做:對着要添加虛擬目錄的網站右鍵->"添加應用程序"->填寫「別名」和「路徑」->肯定,在瀏覽器中輸入網站便可訪問到網站,其中,「別名」請填寫但願被訪問的虛擬目錄名,如http://www.xiyoumobile.com/admin/中,別名就應該填「admin」,而「路徑」則按照新建網站的方法填寫便可,如圖
(添加虛擬目錄)
3.設置權限
Windows NT系統出於安全性的考慮,設置了用戶組和權限的劃分,尤爲在普通桌面版或者說家庭版的系統中體現的更爲明顯,服務器上常常對Administrator賦予了最高權限,有童鞋說,按照上面的方法,搭建完成服務器了之後,Web頁面能打開,可是會報錯,500或者401等等,基本上是由於權限,若是401就是壓根兒啥權限都沒有,500有多是在寫本地數據庫的時候,文件禁止寫入所形成的服務器錯誤,因而乎,就請各位童鞋仔細查看網站目錄的權限是否給夠了。
如何檢查呢,很簡單,打開IIS,在左邊的列表中選擇一個網站或者虛擬目錄,而後在右邊的「操做」一欄中,選擇「編輯權限」->「安全」,如圖所示
(在IIS編輯網站目錄權限)
在這裏能夠看到,個人網站目錄權限中有「Everyone」、「Authenticated Users」、「SYSTEM」、「Administrators」等幾個用戶組或者用戶名,並容許「Everyone」用戶組進行讀取和執行、列出等操做,因此網站的腳本、內容都是容許任何人進行訪問或者說獲取的,有些童鞋的硬盤中沒有設置過權限,有可能就沒有Everyone的這個權限,因此有可能訪問出現以下狀況
(因爲權限不夠而形成訪問失敗)
遇到這種狀況有就能夠在剛纔(網站目錄文件夾)的「安全」中,添加Everyone或者IIS_IUSRS訪問權限,若是須要文件上傳,能夠將某個文件夾設爲可讀可寫可執行,只要在須要的權限上打上勾便可,如圖
(設置IIS_IUSRS的權限)
4.設置雜項
童鞋們該等急了,這下網站應該能夠算正式發佈了吧,別急,還有點東西要說!!
第一,默認文檔
有些童鞋說,安裝你說的方法都配置好,怎麼打開仍是報錯啊,就像下面的錯誤:
HTTP 錯誤 403.14 - Forbidden
Web 服務器被配置爲不列出此目錄的內容。
(網站未找到默認文檔報錯)
可是你會發現若是打http://localhost:8080/Default.aspx又能夠訪問了,這是由於:IIS默認的默認文檔爲如下幾個:Default.htm、Default.asp、index.htm、index.html、iisstart.htm、default.aspx(在此說明一下,因爲Windows系統在路徑上不區分大小寫,因此IIS上發佈的網站也是不區分大小寫的),若是你的主頁文件不在上述文件以內,不輸文檔名,默認是沒法訪問到的(這裏我故意刪除了Default.aspx),因此,針對這種狀況,請自行設置默認文檔,方法以下(這裏假設要掛php網站):
(添加默認文檔)
添加默認文檔之後,直接敲域名或者IP及端口號便可方法默認頁面了!
第二,數據庫鏈接字符串
有些童鞋由於在本機測試時,SQL Server使用的是Windows身份驗證,因此VS自動生成到Web.config中的鏈接字符串以下所示
而若是直接將這個鏈接字符串使用在網站上時,會發現網頁提示:
沒法打開登陸所請求的數據庫 "Example"。登陸失敗。
用戶 'IIS APPPOOL\DefaultAppPool' 登陸失敗。
如圖所示:
(數據庫異常)
因此,必定要注意,在將網站掛載到真正的IIS服務器上前,請將修改Web.config中的字符串,確保數據庫使用SQL Server身份驗證,且若是數據庫裝在本機,那麼Data Source最好設爲localhost,1433,以下面的代碼所示:
第三,.NET Framework版本
尤爲是在Windows 7版本中,默認只支持.NET Framework 3.5,若是.NET Framework 4和IIS的安裝順序不一樣,還會形成.NET沒有在IIS中註冊的問題,因此建議無論先裝.NET Framework,仍是先裝IIS,都在掛網站前,以管理員身份運行cmd,而後進X:Windows\Microsoft.NET\Framework\v4.0.30319(64位:X:Windows\Microsoft.NET\Framework64\v4.0.30319,X表明系統安裝盤,如C),而後執行命令aspnet_regiis.exe -i,這樣能夠保證.NET4被註冊到IIS,IIS才能正常運行.NET4版本以上的程序。
再者,若是應用開發時選擇了.NET4,而網站應用程序選擇的是.NET2,也是不行的。
這二者都屬於運行框架異常,必須配置正確,不然就會報錯!
(選擇正確的應用程序池)
第四,禁用調試信息
調試信息通常在本地開發時有用,正式發佈後若是讓訪問者看到,也會暴露一些網站信息,同時顯得開發者很業餘,因此請在正式部署後,關閉調試信息,具體操做以下:
修改Web.config,將下面的內容修改
修改後
這樣就關閉了遠程訪問時的調試信息
第五,添加MIME類型
若是須要讓網站提供一些新文件訪問的服務,必須在IIS中添加一些文件的後綴名和MIME類型,尤爲是IIS7,默認沒有.mp4格式文件的支持,若是不添加MIME類型,HTML5就不容易實現,還有其餘的文件,如apk、ipa等安裝包,因爲不經常使用,在IIS上也須要手動添加進來,若是不添加,就會報「404 Not Found」的錯誤,添加方法以下:
(添加MIME類型)
第六,其餘設置
其餘的設置包括訪問控制、IP地址過濾、反向代理、SSL、日誌、CGI等等,這個根據我的須要來配置,並且都不是很困難,除非你要在IIS上跑Java。關於IIS的反向代理,童鞋們能夠戳個人另外一篇博文:《IIS上的方向代理》,之後我會繼續寫面向新手的Web服務器搭建教程,涵蓋Nginx、Apache和IIS上的PHP等等,感謝你們的關注!
轉載自:http://blog.csdn.net/yuanguozhengjust/article/details/25747729