估計不少同窗都還不知道WebsitePanel是什麼東東吧,WebsitePanel簡稱wsp是微軟旗下,開源免費的虛擬主機系統,咱們機房用來作虛擬空間的的工具集,是個很強大的傢伙。
第一,咱們來看看WebsitePanel(wsp)的工做原理吧
WSP包括三個部分:
WSP Portal:WSP的門戶網站
WSP Enterprise Server:WSP的企業服務器
WSP Server:WSP服務器
如圖所示:
php
很明顯,這是個大型架構,而且模塊化設計的,這和國內的一些收費的比起來不曉得要好多少,安全性,性能,等等方面都要好很多
咱們來說一下這個架構
第一個是WSP Portal,也就是WSP門戶,這個是指針對用戶的界面,包括管理員和普通用戶,他們能夠在這裏來配置他們的虛擬機,不一樣權限固然有不一樣的設置界面,說白了這只是個界面,是個UI而已,是用戶操做後臺的一個藉口,他不涉及邏輯業務方面。她要鏈接到WSP企業服務器上(例如經過http://192.168.1.1:9002這樣來鏈接),也就是用戶和WSP企業服務器之間的一個橋樑和「媒人」。他不須要直接操做數據庫,都是經過WSP企業服務器來操做的。
第二個是WSP Enterprise Server,也就是WSP企業服務器,這個就很重要了,他負責處理用戶端數據和WSP服務器的邏輯業務,屬於這裏的主幹,他保存用戶的數據到數據庫,並調用數據庫給用戶,同時保存WSP企業服務器的信息到數據庫。
第三個是WSP Server,也就是WSP服務器,這個就是咱們要作虛擬空間的載體服務器,也就是這個纔是真正的虛擬空間的母機
固然,這三個能夠同時放在同一個服務器上,也能夠所有都分開,若是你是IDC,你的可客戶量足夠大,那麼能夠分開來,構成一個分佈式架構html
安裝部分node
系統環境:Windows Server 2008 Datacenter R2 SP2 64位系統
第一步:安裝系統環境1,安裝Windows Server 2008 Datacenter R2 SP2 64位,這個就很少說了,這個目前沒有破解工具,能夠去淘寶買個密鑰5塊錢,用來作作實驗仍是不錯的。
2,安裝系統組件:IIS 7.5 和 .net框架
打開服務器管理器,角色---添加角色
mysql
選擇web服務器IIS按照嚮導安裝完畢
注意選擇組件的時候我選擇的是所有功能,你們能夠根據本身須要自定義選擇。
打開服務器管理器,功能---添加功能
web
OK,安裝完以後能夠重啓了
3,安裝.net 4.0
到官方網站去下載獨立安裝包
http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=0A391ABD-25C1-4FC0-919F-B21F31AB88B7
接着安裝便可
4,安裝SQL SERVER 2005
下載地址:
http://bbs.ywlm.net/thread-838-1-1.html
這個我就很少說了,注意安裝用混合模式安裝,密碼我這裏是123456.cc
第二步:安裝WebsitePanel三個組件
WebsitePanel官方下載地址:http://websitepanel.codeplex.com/releases/view/69982#DownloadId=258992
安裝原理:他是經過一個安裝工具來統一安裝,安裝設置和程序更新的,只須要下載這個工具便可,其餘組件能夠經過這個工具來自動下載和安裝的
sql
第一種安裝方法:單獨安裝(推薦)數據庫
1,安裝WSP Enterprise Server 企業服務器,爲何先安裝這個呢,由於安裝WSP Portal的時候須要先安裝這個,以便在安裝WSP的時候經過http://wsp.test.com:9002來鏈接WSP Enterprise Server
下載好以後先安裝「安裝工具:WebsitePanelInstaller12.msi」
雙機他開始安裝:
windows
自定義安裝目錄,我這裏默認
安全
安裝完成後在桌面上回生存個快捷方式:WebsitePanel Installer,雙擊它
服務器
獲得一個操做界面,這要點擊「view available」,它會自動在網上搜索工具源
咱們先選擇WSP Enterprise Server
看到了吧,點擊install以後會自動下載這個組件的
檢查環境
設置安裝目錄
設置鏈接端口,這裏是給WSP Portal準備的,注意,WSP enterprise server並不能直接對其操做配置,而是要經過WSP Portal來管理的,這裏要設置留給WSP Portal來鏈接的URL,默認端口是9002,咱們就用這個吧
設置IIS容許用戶,由於WSP enterprise server也是以站點的方式來容許的,這裏會生成個站點,這個站點須要用個獨立的來賓(匿名)用戶來容許
設置鏈接數據庫信息
安裝完成後,直接訪問http://domain:9002便可,注意,這裏不要用http://IP:9002,這樣會爆400錯誤的
2,安裝WSP Portal門戶
自動下載
自動檢測環境
設置安裝目錄
設置端口,域名和IP
設置IIS運行帳戶
輸入訪問WSP enterprise server的地址和端口,到這裏應該知道他們是怎麼工做的了吧
安裝完成
點擊桌面上的快捷方式便可登陸了
輸入剛剛設置的密碼吧
進來了
咱們這裏能夠添加服務器,也就是添加WSP Server即WSP服務器
看添加服務器也是經過HTTP來添加的,所以,咱們能夠吧真實的服務器安裝在其餘服務器上,遠程鏈接便可
3,安裝WSP Server WSP服務器
這個具體安裝和上面同樣,能夠和上面的安裝在同一個服務器上也能夠在單獨的服務器安裝的,只須要在添加服務器的時候指定好URL路徑便可
注意:儘可能用域名訪問,用IP訪問會出現400錯誤
##############################################################################
第二種方法安裝:經過 WebsitePanel Standalone Server Setup來安裝
這個安裝能夠一次性都安裝完,但這個靈活性較差,極力不推薦,第一種方法搞懂了這個權且當作擴張,實際安裝通常不這樣作的
檢查環境成功
設置WSP Portal 門戶的訪問地址,域名,和端口
我這裏是9001
輸入數據庫信息,這裏簡歷WSP後臺數據庫,注意,這裏不是你給客戶用的,而是WSP虛擬機系統本身用的,用來保存用戶信息,WSP服務器配置信息等等
如圖:
依次輸入:
數據庫服務地址,這裏能夠輸入IP地址(數據庫是遠程的話)也能夠輸入計算機名(本地的話)
認證方式,用SQL自身的認證
輸入用戶名:SA
輸入密碼:123456.cc
數據庫名字,您隨意便可
下一步,若是鏈接錯誤,您看一下您的數據庫服務是否啓動了呢
輸入WSP Portal後臺管理員密碼
下一步:
安裝完成:
這裏提示有兩個用戶,serveradmin是最高權限
OK,你會發現,這三個組件同時安裝上了
測試安裝結果:
發現有訪問:http://wsp.test.com:9001報以下錯誤
Could not load type 'System.ServiceModel.Activation.HttpModule' from assembly 'System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.TypeLoadException: Could not load type 'System.ServiceModel.Activation.HttpModule' from assembly 'System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[TypeLoadException: Could not load type 'System.ServiceModel.Activation.HttpModule' from assembly 'System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.]
System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMarkHandle stackMark, Boolean loadTypeFromPartialName, ObjectHandleOnStack type) +0
System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark, Boolean loadTypeFromPartialName) +314
System.Type.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase) +95
System.Web.Compilation.BuildManager.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase) +97
System.Web.Configuration.ConfigUtil.GetType(String typeName, String propertyName, ConfigurationElement configElement, XmlNode node, Boolean checkAptcaBit, Boolean ignoreCase) +58
[ConfigurationErrorsException: Could not load type 'System.ServiceModel.Activation.HttpModule' from assembly 'System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.]
System.Web.Configuration.ConfigUtil.GetType(String typeName, String propertyName, ConfigurationElement configElement, XmlNode node, Boolean checkAptcaBit, Boolean ignoreCase) +766
System.Web.Configuration.ConfigUtil.GetType(String typeName, String propertyName, ConfigurationElement configElement, Boolean checkAptcaBit, Boolean ignoreCase) +26
System.Web.Configuration.ConfigUtil.GetType(String typeName, String propertyName, ConfigurationElement configElement, Boolean checkAptcaBit) +18
System.Web.Configuration.Common.ModulesEntry.SecureGetType(String typeName, String propertyName, ConfigurationElement configElement) +59
System.Web.Configuration.Common.ModulesEntry..ctor(String name, String typeName, String propertyName, ConfigurationElement configElement) +74
System.Web.HttpApplication.BuildIntegratedModuleCollection(List`1 moduleList) +301
System.Web.HttpApplication.GetModuleCollection(IntPtr appContext) +1372
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +152
System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +352
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +405
System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +368
[HttpException (0x80004005): Could not load type 'System.ServiceModel.Activation.HttpModule' from assembly 'System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +646
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +141
System.Web.HttpRuntime.Proce***equestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +771
--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.1
處理方法的:
這裏須要註冊一下ASP.NET 4.0
在命令窗口裏運行一下命令便可:
aspnet_regiis.exe /iru
若是'aspnet_regiis.exe' 不是內部或外部命令,也不是可運行的程序,那麼就用絕對路徑吧:
C:/Windows/Microsoft.NET/Framework/v4.0.30319/aspnet_regiis.exe -iru
在訪問試試呢,就能看到登錄界面啦,你輸入serveradmin用戶便可登錄你的虛擬空間管理系統進行設置管理了,在三樓我會相信介紹如何配置管理的
配置部分
首先咱們要配置好WSP Server(WSP服務器)部分,例如我這裏要配置的虛擬空間要支持:PHP,MYSQL,ASP,ASP.NET,.NET2.0/3.0/4.0,那麼首先要在WSP Server上配置好這些環境,那麼怎麼配置呢,下面一一道來
咱們先經過WSP Portal來看看服務器已經安裝了哪些服務:
咱們能夠看到,服務器已經安裝了
Windows Server 2008 Internet Information Services 7.0 Microsoft FTP Server 7.0 Microsoft SQL Server 2005
這些服務就是咱們之後能夠分配給用戶虛擬空間的服務器資源,那並無咱們要的PHP+MySQL資源,那麼下面咱們就來安裝唄
第一步,配置環境
咱們仍是按照老方法手動配置嗎,不用的,咱們這裏用微軟提供的一個配置面板來配置:weplatform(Web 平臺安裝程序 3.0)
1,下載:
http://www.microsoft.com/web/gallery/install.aspx?appid=websitepanel
2,安裝:
安裝完以後出現下圖所示:
這個時候不要點擊安裝,先退出,而後在開始菜單裏面找到Microsoft Web Platform Installer,如圖:
打開後
3,安裝服務,這裏我要安裝一個WMP(mysql+php)環境
因此,這裏我就用weplatform來自動安裝這個環境
按圖添加PHP和PHPcache
按圖添加mysql,windows版
點擊安裝,並接受
輸入mysql的root密碼
點擊繼續,便可到安裝界面,這裏是邊下載邊安裝,效率仍是很高的
稍等片刻便可安裝好
OK,安裝好了,咱們來測試一下環境是否沒問題了
OK,PHP和MySQL都沒有問題了
第二步:添加服務器到服務器
環境雖然配置好了,但並無添加到WSP服務器上,這是仍是不可分配給各個虛擬空間的資源,那麼這裏咱們要經過WSP enterprise server和WSP Portal來添加這些資源
PHP不用添加了,由於PHP只是IIS的一個框架,IIS已經添加了,那麼PHP天然就包括了
這裏主要講添加mysql
1,首先要安裝Connector/Net 6.5.4
官方下載地址:
http://dev.mysql.com/downloads/connector/net/