站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
建站程序
开发
服务器
办公软件
开发教程
服务器教程
软件使用教程
运营教程
热门电子书
WordPress教程
宝塔面板教程
CSS教程
Shopify教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
Xlight FTP/使用ODBC用户数据库
”
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
{{Xlight FTP}} ==使用Xlight FTP服务器的ODBC功能== [[Xlight FTP]]服务器可以使用外部的用户数据库获得用户参数.注意: 只有专业版本的Xlight FTP服务器有这个功能, 用户在30-天试用期也可以试用这个功能.使用外部用户数据库方便系统管理员管理大量用户. 使用外部用户数据库需要配置ODBC数据源. 下面以MySQL数据库为例. 对于其他数据库,设置方法很类似. 使用这个功能之前, 你首先需要设置ODBC数据源. 1. [[MySQL]] ODBC数据源可以在网址http://www.mysql.com/downloads/api-myodbc.html下载.在运行[[Xlight FTP]]服务器的机器上安装MySQL ODBC数据源. 2. 安装完mysql ODBC数据源后你需要到[[Windows]]"控制面板-管理工具"中在"系统[[DSN]]"标签内添加MySQL数据源. 3. 选择"系统DSN"内的"添加(D)..."按键,选择"MySQL ODBC Driver",按"完成"按键. 4. 在这个例子里, 我们使用 "Xlight FTP Server" 作为数据源名字. 你可以使用任何数据源名字. 这里假定MySQL数据库在远端192.168.11.2的LINUX服务器上. 我们现要在其中创建一个名字是"ftp_user_db"的空数据库. 这里你可以使用任何数据库名字. 在机器192.168.11.2上, 在MySQL命令提示符 mysql>, 键入命令"create database ftpd_user_db;" 创建一个名字是 "ftpd_user_db" 的数据库. [[Image:9.png]] 5. 你需要在Xlight FTP服务器的 [全局选项]->[高级]->[ODBC 数据库设置] 中配置外部数据库". 你需要填入数据库用户和密码,以及ODBC数据源. 如果你想手工创建数据库表, 你可以跳到步骤 7. 在这个例子里,我们假定数据库用户"test"对数据库"ftpd_user_db"有完全的访问权限. 你可以点击"创建"键,让Xlight FTP服务器替你在数据库里创建需要的数据库.你也可以点击"测试"键,检查你是否已正确创建数据表. 注意: 对于64bit系统, 你需要用32bit ODBC管理程序设置DNS. 32bit ODBC管理程序在C:\Windows\sysWOW64\odbcad32.exe. [[Image:10.png]] 6. 通过ODBC使用外部用户数据库认证, 你需要到 [虚拟服务器设置]->[通用]->[虚拟服务器], 选择选项"启用外部用户鉴权" . 单击"设置..."键, 在虚拟[[服务器]]的"鉴权类型" 中必须选择ODBC, 如下图所示: [[Image:11.png]] 7. 这个步骤只是用于手工创建[[数据库]]表. 如果你已经在第5步完成数据库表的创建,你可以忽略这个步骤. 手工创建数据库表,在数据库中需要两个表: acct_table and acct_param_table. 你可以在Xlight FTP服务器的安装目录中的odbc目录下找到文件 "odbc_tables.sql". 你可以用这个文件手工创建数据库表. 8. 为了安全的数据库访问, 创建上面两个表之后, 你可以在数据库中创建一个只读用户,他对"ftp_user_db"的数据库只有SELECT的权限,如下所示: 在MySQL命令提示符 mysql>, 键入命令 grant select on ftpd_user_db.* anon@'192.168.11.%' Identified by "ftpd"; 这里你创建了一个新的数据库用户"anon",他的密码是"ftpd",他对数据库"ftpd_user_db"只有SELECT的访问权限. 这个命令也限制用来查询数据库的访问只能来自网段"192.168.11.0". 然后你可以将Xlight FTP服务器的外部ODBC数据库配置中的用户和密码改成这个只读用户. 现在你完成了ODBC设置步骤. ODBC功能是在每个虚拟服务器中单独启用的. 在同一个Xlight FTP服务器,你可以有一些虚拟服务器使用ODBC外部用户数据库, 而一些不使用. 如果你选择选项 "忽略 host_id 列" 或 "忽略 host_port 列", 在数据库查询时, Xlight FTP服务器将会忽略 "host_id" 或 "host_port" 列. 因为 "host_id" 列可以用来表示不同的机器, 而 "host_port" 列可以用来表示在同一台机器上的不同的虚拟服务器. 这两个选项可以用来在不同运行Xlight FTP服务器的机器间共享用户数据库,也可以在同一个机器的不同虚拟服务器间共享用户数据库. 如果你只用数据库鉴权用户, 你可以选择选项 "只检查用户名和密码", 使用这个选项你需要在本地FTP服务器创建同名的用户. 数据库只是用来检查用户存在数据库中的密码. 当这个选项启用, 所有的用户设置都是从本地服务器中同名的用户设置里获得. ===在数据库中创建用户=== 你可以使用外部的数据库工具连接到[[数据库]]并创建用户. 这只是用于测试目的. 在实际的生产环境里, 你可以使用 PHP 或 其他 CGI 脚本创建基于网页的界面,用于添加,删除或允许用户通过网页更改密码等等.这种方式便于管理大量的用户.你也可以和你现有的数据库应用结合. 因为[[Xlight FTP]]服务器只需要读取用户数据库, 但不写入用户数据库, 你不需要担心和你其他数据库应用冲突. 在数据库创建用户之前, 你最好先阅读 Xlight 帮助文档中, "ODBC 数据库表结构" 这一节. 用户的密码可以是以 MD5/SHA1 Hash或明码的形式存放在数据库. 默认是使用MD5 hash. 你可以在虚拟服务器的外部用户认证,ODBC设置中更改密码类型. 如果使用 MD5 hash, 你可以通过搜索"MD5 calculator" 很容易在[[Google]]找到MD5计算的工具. 在我们的例子里用户名是 "test" 他的密码也是 "test" , 密码的MD5 hash值是"098f6bcd4621d373cade4e832627b4f6". 如下图所示: [[Image:12.png]] 注意: 如果用户的主目录不存在, 当他第一次登录时, Xlight FTP服务器会自动在本地创建目录. 例如, 当用户名是"test" 的主目录"c:\wutemp"不存在. 当这个名字是"test"的用户登录时, Xlight FTP服务器会自动为他创建这个目录. 如果你想使用更多的用户参数, 你可以在数据表 "acct_param_table" 中创建 "param_index" 列. 在这一行中填入你想使用的参数, 并且将这个参数放到这个用户在"acct_table"表中的"param_index"列. 列"param_index"的值可以在不同用户间共享, 因此如果你有很多用户有同样的参数, 在数据表 "acct_param_table" 中你不需要创建很多不同的"param_index"行. [[Image:13.png]] 对于你不使用的数据库表中的那些列, 你可以让它们的值为空. 但列 "host_id", "host_port", "username" 是必须的值, 你必须填写. 另外如果使用"home_path"列,"home_perm"列也必须填写. "virtual_path_table" 被用来设置用户的虚拟目录. 一个用户在数据库中可以有多个虚拟目录. 这些虚拟目录在"virtual_path_table"表中有不同或相同的"virtual_path_index". 在"acct_table"中的"virtual_path_indexes"列通过"virtual_path_index"列链接到"virtual_path_table"的一个或多个行. 如果他包含多个"virtual_path_index", 它们之间必须通过","(逗号)分隔. [[Image:14.png]] 参数%username%可以用于"virtual_path_table"里的real path. %username%将会被替换成实际登录的用户名. 如果用户登录时real path不存在, Xlight FTP服务器将会自动创建目录. ===查找并解决数据库认证问题=== 通过选中选项"在错误日志显示调试跟踪信息",可以帮助你查找并解决数据库认证的问题,这个选项可以在[虚拟服务器设置]->[启用外部用户鉴权]找到. 启用这个选项后, 你可以在错误日志看到Xlight FTP服务器数据库查询过程. ===使用其他数据库=== 当用户登录Xlight服务器时,服务器会通过ODBC连接,用SQL语句分两次查询数据库。 第一个数据库的SQL查询用于在数据库中找到与用户登录时输入的用户名,密码相匹配的纪录,并且获得关于这个用户的一些基本配置参数,如"home_path", "home_perm" 等等. 在这次查询中返回的"param_index"值将会同时用在第二次数据库查询。 第二次数据库的SQL查询将会用第一次查询返回的"param_index"值,查询数据库的"acct_param_table",以得到更多的用户参数设置。 Xlight服务器使用的"acct_table"和"acct_param_table"数据库表可以不实际存在与数据库里. Xlight服务器并不知道"acct_table"和"acct_param_table"是否存在于数据库中. 它只是通过察看两个SQL查询的返回结果. 如果第一条SQL查询替换语句从数据库中返回一行, Xlight服务器就认为用户登录验证成功,同时它会从返回的行中,获得用户的基本配置参数. 如果数据库没有返回结果,它认为用户登录验证失败。 所以数据库如果不想让用户访问服务器,就不要返回SQL查询结果. 在第一条查询返回的"param_index"值,将会用在第二条SQL查询语句中. Xlight服务器允许管理员替换上面两个SQL查询语句,以支持高级的数据库应用,如数据库的"存储过程"(Stored Procedure), 你可以看这个例子如何使用数据库存储过程 替换第一条内部SQL查询语句 - 在第一条SQL替换语句中,可以使用下面的变量: $USER - 这个变量将以用户的登录名替换 $PASS - 这个变量将以用户的密码(MD5或Text)替换 $ID - 这个变量将以"本地主机ID"替换 $PORT - 这个变量将以虚拟服务器的端口替换 $USERIP - 这个变量将以用户的[[IP]]地址替换 $SERVERIP - 这个变量将以虚拟[[服务器]]的IP地址替换 例如, 如果用语句 "EXEC proc_getuser '$USER', '$PASS', $ID, $PORT" 作为第一条SQL语句的替换, 当用户是"test"的用户以密码"hello"登录到FTP服务器21端口, 本地主机ID是1, 经过替换最后送到数据库的SQL语句是 "EXEC proc_getuser 'test', 'hello', 21, 0". 替换第二条内部SQL查询语句 - 在第二条SQL替换语句中,可以使用下面的变量: $INDEX - 这个变量将会替换为第一条SQL替换查询语句返回的"param_index"值. $PORT - 这个变量将以虚拟服务器的端口替换 $SERVERIP - 这个变量将以虚拟服务器的IP地址替换 ==参考来源== *http://www.xlightftpd.com/cn/ {{Xlight FTP导航}} [[category:Xlight FTP]]
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)
本页使用的模板:
模板:Xlight FTP
(
编辑
)
模板:Xlight FTP导航
(
编辑
)