目前在win32系统中使用的最多的FTP服务就是ServU了,功能强大,稳定,目前已经出到了6.x版本了。
新建FTP帐户的界面也很简单,很明了,但是在我最近的一个项目中要设置上百个FTP帐号,这时每个帐户的点就显得相当烦琐也容易出错,这时就需要用到Serv-U的ODBC数据库连接的功能了。
ODBC不用多介绍了,是一个已经淘汰的数据库的连接技术,虽然将要淘汰了,但是这个给Serv-U使用已经足够了。下面介绍一下如何使用ODBC连接的方式将用户信息存入数据库中。
首先创建一个域,前面的都按照普通方式,该填什么填什么,到第四步时选择“存储于ODBC数据库中”。
创建完成后会直接出现这个域的“ODBC”选项卡,看看,哇!很夸张,这么多项要填!这时你要做的就是关掉Serv-U,别迟疑。
打开浏览器,输入如下地址 http://www.serv-u.com/addons.asp 这个是Serv-U的官方地址,打开后就可以看到很多的数据库例程:“MS Access ODBC Example”“MS SQL Server ODBC Example”“My SQL ODBC Example ”“Oracle database for use with Serv-U”基本上涵盖了主流数据库的全部例程,尽管下吧,点那个绿色的向下的箭头就好了,反正后面都写了个很大“FREE”这点老外貌似比老里要好点,不会动不动就要钱啊什么的……
我下载了“MS SQL Server ODBC Example”,是一个压缩包,解开以后3个文件:一个SQL脚本,一个.doc的说明文档(我没看),还有一个Add-to-Ini.txt文件。
首先使用SQL的脚本文件,这个很简单,用查询分析器连上你的数据库,然后运行这个脚本就可以了,运行完后数据库中会多了6个“FTP_”打头的数据库,这个就是刚才的脚本添加的数据表。
完事以后再来处理那个“Add-to-Ini.txt”文件,首先找到Serv-U的文件目录,里面有一个“ServUDaemon.ini”文件(名字比较长的那个),打开它,读过ini文件的应该很好理解了,没读过也不要紧,很简单,首先找到“[DOMAINS]”项,可以在里面找到你在Serv-U中刚才添加的域,比如我添加的“本地测试”就可以找到对应的内容“Domain4=127.0.0.1||25|本地测试|4|0|1”然后再找到我这里的对应的值“Domain4”对应的项“[Domain4]”应该可以看到:
[Domain4]
CacheTTL=60
ODBCSource=||
ODBCTables=|||||
ODBCColumns=||||||||||||||||||||||||||||||||
直接使用“Add-to-Ini.txt”中提供的值替换掉“ODBCTables”和“ODBCColumns”中的内容,注意不要把[Domain4]替换了,然后保存并关闭掉ini文件。重新启动Serv-U,不是简单的打开,是重启。重启以后再看,刚才新建的域中的ODBC选项卡中的内容基本上都填的差不多了吧,下面建立ODBC的连接。
打开“数据源(ODBC)”在“用户DSN”选项卡中点击“添加”按钮添加数据源,注意要选择好准备存放用户信息的数据库。完成前测试一下能不能连接成功。数据源建立好了后再回到刚才在Serv-U中添加的域的ODBC选项卡,在“ODBC源名称”中添加刚才建立的ODBC源的名称,就是最开始填的那个,然后在“ODBC帐号名”和“ODBC帐号密码”中响应的填写帐号名和帐号密码,如果建立数据源的时候是建立的本地的“使用网络登录ID的windowsNT验证”就不用填用户名和密码了。然后,大功告成了!其实还有两项没填,因为我们下到的例子貌似年代稍微久远了点,少了“上次更改密码日期的列名”和“帐号到期类型的列名”,有心的同学只有看帮助了,里面貌似都写了。
下面就简单了,将新建立的域上线,后面该怎么操作怎么操作,添加啊修改什么的,即能从Serv-U的界面中添加也能从数据库直接写,主要的用户信息都在表“ftp_users”表中,如果域无法上线或者用户数据写不到数据库中可以在Serv-U文件目录下查看“ServUStartUpLog.txt”文件,里面记录了部分ODBC的连接记录。
到此
Serv-U的ODBC连接就都设置完成了,用的密码在缺省状态下是加密存放的,其实把这个弄到数据库中就没必要密文存放了,只用在域的“设置”项目的“高级”选项卡中不选择“将密码存储与加密的窗体中”即可将密码明文存放在数据库中了。