45fan.com - 路饭网

搜索: 您的位置主页 > 电脑频道 > 电脑教程 > 阅读资讯:怎么样制作虚拟主机管理系统?

怎么样制作虚拟主机管理系统?

2016-08-31 18:52:39 来源:www.45fan.com 【

怎么样制作虚拟主机管理系统?

第二部分 技术难点及解决方案

一、技术难点
分析完整个系统的功能以后,我们来看一下关键的技术难点:
(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的虚拟站点了,这里对Adminscript下的脚本不做其他的解释了,有兴趣的朋友可以参考以下站点:
http://www.uudog.com/newscontent/IIS97.html

另外,这里事实上还有一个简单的办法,不需要经过组件一样能达到效果:
<%
Set Shell = Server.CreateObject("WScript.Shell")
cmd = "cmd.exe /c C:/Inetpub/AdminScripts/mkw3site -r ""e:/inetpub"" -c ""db"" -o 88 -i 192.168.0.3 -h db -t ""testwebSite"""
Shell.Run cmd,1, True
%>
因为有些服务器会把WSCRIPT对象禁止掉,所以就无法正常用了。


未完待续...

 

本文地址:http://www.45fan.com/dnjc/70457.html
Tags: 技术 制作 难点
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部