安装环境:
ODBC 32位,5.3unicodeServ-U Windows-v15.1.2MySql 5.7.21(WAMP安装)操作系统 Windows 10 / Windows Server 2008
ODBC介绍:
开放数据库连接(Open Database Connectivity,ODBC)是为解决异构数据库间的数据共享而产生的,现已成为WOSA(The Windows Open System Architecture ),Windows开放系统体系结构)的主要部分和基于Windows环境的一种数据库访问接口标准ODBC 为异构数据库访问提供统一接口,允许应用程序以SQL 为数据存取标准,存取不同DBMS管理的数据;官网下载:http://dev.mysql.com/downloads/connector/odbc/
MySql安装:
这里使用的是WampServer来安装Apache+MySql+PHP,本教程只使用到MySql。
安装教程:https://jingyan.baidu.com/article/4b52d702cb7792fc5c774bed.html
官网下载:http://www.wampserver.com/
ODBC安装:
ODBC的安装还是比较简单的,一直Next就行,如果安装过程中报错的话可以看下本文档最下边的常见错误处理。
ODBC配置:
ODBC安装完毕后,打开“控制面板“->”管理工具“->”ODBC数据源”
这里使用的是32位操作系统,如果是64位的就使用64的ODBC。在ODBC数据源的弹出界面中点击“系统DSN“->”添加“,选择“Mysql ODBC 5.3 Unicode Driver ”
在弹出的窗口我们填写相关信息,如下图所示:
Data Source Name”填写完毕后一定要记住,因为这个我们在后边还要使用,在这我们填写的是Serv-u。而“TCP/IP Server”填写的是Mysql数据库所在的服务器,现Sern-U与Msql数据库在同一台服务器上,所以我们填写的是127.0.0.1。“User”填写的数据库用户,在此我们填写的是root用户。当然你也可以填写Mysql数据库的其他用户。“Database”是选择对应的数据库。
Serv-u配置:
在域的配置里边选择数据库一项,然后填上刚刚在ODBC数据源配置的数据源名称Serv-U,再填上数据库的登陆id和登陆密码,如下图所示:
此时,数据库用户一处就可以添加新用户了,而且对应的usipb数据库也自动添加了一些新的表,表的内容比较多,用于存储用户信息的是suusers。
这个时候PHP就可以通过添加数据库信息来添加Serv-U用户了。
通过数据库添加FTP用户:
添加数据库用户用到两个表:suusers和userdiraccess
Suusers表中记录的内容主要是用户信息,如下图
Suusers表的字段很多,但我们只用到其中几个而已。
/*********************************创建FTP用户*******************************/$member_ftp = array('StatisticsStartTime' => strtotime('now'),'RtServerStartTime' => strtotime('now'),'RtDailyCount' => '0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0','LoginID' => $member_data['student_ID'],'PasswordChangedOn' => strtotime('now'),'PasswordEncryptMode' => '1','PasswordUTF8' => '1','Password' => "qm".strtoupper(md5("qm".$member_data['ftp_password'])),'FullName' => $member_data['name'],'AllowWebClientPro' => '1','HomeDir' => 'C:\\2511FTP\实验室成员文件目录\\'.$member_data['major_class'].' '.$member_data['name'],'IncludeRespCodesInMsgFiles' => '1',//'ODBCVersion' => '3','Quota' => '0');
Userdiraccess表中记录的内容主要是目录访问权限,如下图
这个表中我们只需要写四个字段就行
/*配置目录访问权限*/$member_diraccess = array('LoginID' => $member_ftp['LoginID'],'SortIndex' => '1','Dir' => $member_ftp['HomeDir'],'Access' => '7967','MaxSize' => null,'NTUser' => null,'NTPassword' => null,'NTDomain' => null,);
然后将配置好的数据写入Mysql,下例是CI框架的数据库写操作。
/*FTP数据库写入*/$member_ftpbase = $this->db->insert('suusers', $member_ftp);$member_diraccessbase = $this->db->insert('userdiraccess', $member_diraccess);if (!is_bool($member_ftpbase) || !is_bool($member_diraccessbase)){echo '成员FTP添加失败!<br>';var_dump($member_ftpbase);return;}else if(($member_ftpbase != 'trun') || ($member_diraccessbase != 'trun')){echo '成员FTP添加失败!';return;}
常见问题:
一、在Server2008上面安装MySQL ODBC 5.3,安装过程中出现如下错误
Error 1918.Error installing ODBC driver Mysql ODBC 5.3 ANSI Driver,ODBC error 13: 不能加载安装或转换器。Verify that the file MySQL ODBC 5.3 ANSI Driver exists and that you can accessit
解决方法:下载安装Microsoft Visual C++2010和Microsoft Visual C++2013即可
二、点击系统DSN时候提示您使用非管理权限登陆,无法创建和修改系统DSN
解决方法:开始----运行,输入:Control Userpasswords2
如果只有一个Administrator用户的话就添加一个新的管理员用户,如果已经存在有其他用户的画就选择该用户后点击属性,在组成员里边查看该用户是否是管理员用户。
三、数据库用户的中文路径是乱码。
解决方法:该问题是由数据库的suusers表里边的HomeDir字段的字符集类型错误引起的。只需要把该字段修改为utf8字符集即可。同样,如果是数据库用户的其他地方也出现中文乱码的话也是这个修改方法。
四、设置了数据库用户后Serv-U有时候无法进入控制台
当Serv-U关联到数据库后,在启动Serv-U之前需要将数据库软件启动。