制作虚拟主机管理系统

yoken 阅读:1199 2007-10-09 07:58:00 评论:0
第一部分 虚拟主机管理系统规划

程序需要的功能有:
(1)订单提交方式多样:非会员可以直接提交产品订单,实时开通产品可以定义为手工开通。
(2)试用时间自由设定:可以针对某一具体产品设定试用时间,以天为单位。
(3)管理界面操作简化:比其它同类产品而言,该系统操作界面灵活,特别体现在财务上。
(4)域名接口选择更多:可以同时容纳多个域名实时注册管理接口。
(4)独有产品赠送功能:每一产品可以定义最多三个赠送品,如买主机送域名送邮局。
(5)独有套餐定义功能:可以定义5个产品以内的任意组合套餐。
(6)系统查询功能强大:管理员后台拥有众多查询功能,能迅速定位到所需记录上。
(7)代理系统无限开设:利用系统递归,可以开设无限级别的下级代理系统。
(8)支持后台在线重启服务器
系统模块可分为:
(1)顶级域名实时注册管理模块
(2)虚拟主机实时开设管理模块
(3)企业邮局实时开设管理模块
(4)MSSQL数据库开设管理模块
(5)非实时产品的订单提交模块(包括中文域名、通用网址、网站推广、租用托管、网站建设)
(6)财务管理模块
(7)日志查询模块(包括订单查询、操作查询以及登录查询)
(8)会员管理模块
(9)系统设置模块
(10)服务器重要服务重启模块(包括FTP/SMTP/POP3/IIS/DNS/MSSQL等服务重启)
(11)信息通讯管理(包括行业新闻发布管理、本站通知发布管理、以及邮件自动发送模版)
(12)英文域名、虚拟主机、企业邮局以及MSSQL具备独立的控制面板
第二部分 技术难点及解决方案

一、技术难点
分析完整个系统的功能以后,我们来看一下关键的技术难点:
(1)在线实时开通FTP帐号;
(2)在线实时开通虚拟站点;
(3)在线实时开通EMAIL帐号;
(4)操作IIS/MSSQL/FTP/MAIL系统的启动、停止;

除以上难点以外,其他的功能无非就是简单的数据库录入、查询、修改、删除操作,所以,只要解决以上难点,系统即实现基本功能。

二、解决方案
(1)在线实时开通FTP帐号:
在这里,我们使用的FTP服务器端系统为Serv-U 6.0版,通过改写ServUDaemon.ini文件来增加、删除、修改用户。以下是增加FTP用户的原代码:
<% 
''************************************************** 
''* 原作者:awaysrain(绝对零度) * 
''* 完成时间:2003-10-10 * 
''* 修改时间:2005-01-11 * 
''* 测试环境:WIN2000SERVER,SERV-U 6.0beta版 * 
''************************************************** 
Dim iniPath,iniFileName,iniStr,tmpStr,n 
Dim userName,passWord,tmp 

userName = "myfso222" ''用户名 
passWord = "awaysrain" ''密码 
''tmp = "ai" ''随机生成两个小写字母,(应该是随机生成的,但是我这里省略了) 
''passWord = tmp & UCase(md5(passWord)) ''密码,是MD5加密过的,用动网的MD5加密程序,具体算法是随机生成两位小写字母,然后和你的密码连接后进行MD5加密,把随机生成的密码和MD5加密后的结果作为密码存放,举个例子来说比如下面的awaysrain用户,我的密码为awaysrain先随机生成两位小写字母ai,和我的密码awaysrain连接得到aiawaysrain把aiawaysrain进行MD5加密得到9118BFD94A9CE9CF37AE5BAA947ED596把随机生成两位小写字母ai和MD5加密后的结果9118BFD94A9CE9CF37AE5BAA947ED596连接得到密码ai9118BFD94A9CE9CF37AE5BAA947ED596 

iniPath="D:\Program Files\Serv-U" ''ini文件的路径 
iniFileName = "ServUDaemon.ini" ''ini的文件名 

Set fso=Server.CreateObject("Scripting.FileSystemObject") 
Set ServUIni = fso.OpenTextFile(iniPath & "\" & iniFileName,1,false) 

iniStr = "" 
n = 0 
addedUserList = false 

Set tf = fso.CreateTextFile(iniPath & "\" & iniFileName & "._awaysrain.tmp", True) 
''生成新的临时INI文件 

Do While not ServUIni.AtEndOfStream 
tmpStr = ServUIni.ReadLine 

If Instr("awaysrain||" & tmpStr,"awaysrain||User")>0 Then 
''记录用户原来的数量 
n = n+1 
End If 

If Instr("awaysrain||" & tmpStr,"awaysrain||[USER=")>0 and not addedUserList Then 
''往用户列表的部分添加现在的用户 
n = n +1 
tf.WriteLine("User" & n & "=" & userName & "|1|0") 
addedUserList = true 
End If 
tf.WriteLine(tmpStr) 
Loop 
ServUIni.Close 

''添加新用户的信息,具体内容可以在SERV-U中新建用户并对照INI文件 

tf.WriteLine("[USER=" & userName & "|1]") ''用户名 
tf.WriteLine("Password=" & passWord) ''密码 
tf.WriteLine("HomeDir=D:\temp") ''主目录 
tf.WriteLine("RelPaths=1") ''是否锁定用户于主目录 
tf.WriteLine("MaxUsersLoginPerIP=1") ''相同IP同时登录数 
tf.WriteLine("SpeedLimitDown=102400") ''最大下载速度 
tf.WriteLine("TimeOut=600") ''空闲超时时间(秒) 
tf.WriteLine("Access1=D:\Temp|RLP") ''可访问目录,可以不是一个,比如 ''Access2=E:\Temp1|RLP'' 

tf.Close 
''--------------------备份原来的INI文件-------------------------- 
Set f1 = fso.GetFile(iniPath & "\" & iniFileName) 
f1.Copy (iniPath & "\" & iniFileName & "._awaysrain.bak") 
f1.Delete 
''--------------------把生成的临时INI文件改为正式的INI-------------------------- 
Set f1 = fso.GetFile(iniPath & "\" & iniFileName & "._awaysrain.tmp") 
f1.Copy (iniPath & "\" & iniFileName) 
f1.Delete 

Set fso = nothing 
%>

这里我对原作者的程序进行了一点修改,把原有的对密码的加密去了,这样,存在INI文件中的密码是直接看见的,为什么要这样呢……因为6.0和4.2的加密算法好象不大一样(如果有知道加密算法的朋友请告诉我),而且,我们现在做虚拟主机管理系统的重点也不在这里,所以把这一部分舍去了。此处的SERV-U的设置有以下几点需要注意的:
1 必须已经有一个域,且有至少一个用户存在的情况下,才能成功。
2 因为去除了对密码的加密算法,所以在域的设置里的高级选项中的“将密码存储于加密的窗体中”选项去除。

(2)在线实时开通虚拟站点:
为了将来能满足域名转向功能,所以,我们这里要求在线实时开通“虚拟站点”,而不是开通“虚拟目录”,目录是不能控制转向的。
网上找了一些资料可以建立虚拟站点的,可是都失败了……不知道为什么,比如通过“ADSI修改IIS信息”,不行,提示“权限不够”。后来查了些资料,发现基本上都是通过c:\Inetpub\adminscript下的VBS脚本来实现对IIS的管理的,我通过ASP来调用时,出现了权限不够的问题,所有就换个思路,通过组件来调用这些脚本来控制IIS。
首先先些了个VB的组件:
一、建立一个ActiveX DLL工程
二、更改工程名ServerShell
三、更改类名:Cmd
四、修改类代码:
Public Function ServerCmd(strCMD)
Shell strCMD, vbHide
''就这么简单就行了!
End Function
五、生成并注册DLL文件

然后在ASP中调用这个组件
<%
set CMD = server.createobject("ServerShell.Cmd")
CMD.ServerCMD("cmd.exe /c C:\Inetpub\AdminScripts\mkw3site -r ""e:\inetpub"" -c ""db"" -o 88 -i 192.168.0.3 -h db -t ""testwebSite""")
''创建虚拟 Web 站点 
''要创建虚拟 Web 站点,请在命令提示符下键入以下命令: 
''Mkw3site -r 根目录 驱动器盘符:\文件夹名 -t 新服务器名 -h 主机名 www.我的新 Web 站点.com
%>

OK,现在可以通过“Internet 服务管理器”发现已经增加了一个testwebSite的虚拟站点了

转载保留链接!网址:http://80920140.com/post/75.html

标签:赶集
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源; 2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任; 3.作者投稿可能会经我们编辑修改或补充。

发表评论
搜索
排行榜
关注我们

扫一扫关注我们,了解最新精彩内容