Gene6 FTP Server mit MySQL-Backend

da ich selbst ewig gebruacht hab um die spärlichen infos zusammen zu kratzen, um das ganze hinzubekommen, hatte ich ne kurze anleitung für meine homepage zusammen getickert. falls also tatsache jemand auf die idee kommen sollte, sowas auch zu machen. here you go ;)

How to: Gene6 FTP Server Und MySQL


Der Gene6 FTP Server lässt sich recht einfach mit MySQL verbinden. Dazu hier eine Kurze Anleitung!
Als erstes der Gene Angehalten und die Datei

Code:
accounts.ini
angelegt!

Diese sollte in etwa folgenden Aufbau haben:

Code:
[Settings]
Storage=ODBC

[ODBC]
ConnectionString=Driver={<drivername>};Server=<host>;Port=3306;Database=<dbname>;Uid=<benutzername>;Pwd=<passwort>;
UserID=<user>
Password=<pass>
; Set to 0 if your sql server doesn't support foreign keys (e.g. mysql), set
; to -1 otherwise
ForeignKeys=0
; This setting tells the server how to quote values in SQL queries
; 0 = backslashes characters that need to be quoted in queries (e.g. 'O\'reilly')
; 1 = double quotes in queries (e.g. 'O''reilly')
EscapeType=0


Die Datenbank muss folgenden Aufbau haben:

Code:
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Database: `ftp`
--

-- --------------------------------------------------------

--
-- Table structure for table `domains`
--

CREATE TABLE IF NOT EXISTS `domains` (
  `ID` int(11) NOT NULL auto_increment,
  `Name` varchar(64) NOT NULL default '',
  PRIMARY KEY  (`ID`),
  KEY `Name` (`Name`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

-- --------------------------------------------------------

--
-- Table structure for table `domains_messages`
--

CREATE TABLE IF NOT EXISTS `domains_messages` (
  `DomainID` int(11) NOT NULL default '0',
  `ConfigName` varchar(64) NOT NULL default '',
  `ConfigValue` text NOT NULL,
  PRIMARY KEY  (`DomainID`,`ConfigName`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- --------------------------------------------------------

--
-- Table structure for table `domains_settings`
--

CREATE TABLE IF NOT EXISTS `domains_settings` (
  `DomainID` int(11) NOT NULL default '0',
  `ConfigName` varchar(64) NOT NULL default '',
  `ConfigValue` text NOT NULL,
  PRIMARY KEY  (`DomainID`,`ConfigName`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- --------------------------------------------------------

--
-- Table structure for table `groups`
--

CREATE TABLE IF NOT EXISTS `groups` (
  `DomainID` int(11) NOT NULL default '0',
  `ID` int(11) NOT NULL auto_increment,
  `Name` varchar(64) NOT NULL default '',
  PRIMARY KEY  (`ID`),
  UNIQUE KEY `DomainID` (`DomainID`,`Name`),
  KEY `Name` (`Name`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

-- --------------------------------------------------------

--
-- Table structure for table `groups_settings`
--

CREATE TABLE IF NOT EXISTS `groups_settings` (
  `GroupID` int(11) NOT NULL default '0',
  `ConfigName` varchar(64) NOT NULL default '',
  `ConfigValue` text NOT NULL,
  PRIMARY KEY  (`GroupID`,`ConfigName`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- --------------------------------------------------------

--
-- Table structure for table `server_settings`
--

CREATE TABLE IF NOT EXISTS `server_settings` (
  `ConfigName` varchar(64) NOT NULL default '',
  `ConfigValue` text NOT NULL,
  PRIMARY KEY  (`ConfigName`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- --------------------------------------------------------

--
-- Table structure for table `users`
--

CREATE TABLE IF NOT EXISTS `users` (
  `DomainID` int(11) NOT NULL default '0',
  `ID` int(11) NOT NULL auto_increment,
  `Name` varchar(64) NOT NULL default '',
  PRIMARY KEY  (`ID`),
  UNIQUE KEY `DomainID` (`DomainID`,`Name`),
  KEY `Name` (`Name`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

-- --------------------------------------------------------

--
-- Table structure for table `users_settings`
--

CREATE TABLE IF NOT EXISTS `users_settings` (
  `UserID` int(11) NOT NULL default '0',
  `ConfigName` varchar(64) NOT NULL default '',
  `ConfigValue` text NOT NULL,
  PRIMARY KEY  (`UserID`,`ConfigName`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


Anschliesend den Gene6 FTP Server wieder starten
wenn Ihr probleme mit der Verbindung habt, ladet euch den OCDB Treiber von der MySQL-Homepage herrunter und installiert diesen auf eurem System. In der OCDB Datenquellen Verwaltung könnt ihr den Treiber Ablesen.
Bei mir ist es zb:

Code:
MySQL ODBC 5.1 Driver

Wenn du schon vorhande Benutzeraccounts hast, kannst du die mit folgendem php script Importieren. (welches brutal crappy fix zusammengehackt in php serviert kommt :D ) Dazu das Script in dem Users Ordner ablegen, wo sich die BenutzerIni-Datein behinden und starten (Vorher anpassen)

Code:
<?php
  $sq = mysql_connect("dbhost","dbuser","dbpass");
  mysql_select_db("db");
  
  $handle = opendir(".");
  while ($file = readdir($handle)) {
      if ($file == "." || $file == ".." || $file == "import.php") {
      
      } else {
          $name = substr($file,0,-4);
          $data = parse_ini_file($file);
          
          unset($data["TimeOfDayAccess0"]);
          unset($data["TimeOfDayAccess1"]);
          unset($data["TimeOfDayAccess2"]);
          unset($data["TimeOfDayAccess3"]);
          unset($data["TimeOfDayAccess4"]);
          unset($data["TimeOfDayAccess5"]);
          unset($data["TimeOfDayAccess6"]);
          
          $data["TimeOfDayAccess"] = '-1,07:00:00-19:00:00
-1,07:00:00-19:00:00
-1,07:00:00-19:00:00
-1,07:00:00-19:00:00
-1,07:00:00-19:00:00
-1,07:00:00-19:00:00
-1,07:00:00-19:00:00';
          
          $data["AccessList"] = $data["AccessList0"];
          if (isset($data["AccessList1"])) {$data["AccessList"] .= "\n" . $data["AccessList1"];unset($data["AccessList1"]); }
          if (isset($data["AccessList2"])) {$data["AccessList"] .= "\n" . $data["AccessList2"];unset($data["AccessList2"]);}
          if (isset($data["AccessList3"])) {$data["AccessList"] .= "\n" . $data["AccessList3"];unset($data["AccessList3"]);}
          if (isset($data["AccessList4"])) {$data["AccessList"] .= "\n" . $data["AccessList4"];unset($data["AccessList4"]);}
          if (isset($data["AccessList5"])) {$data["AccessList"] .= "\n" . $data["AccessList5"];unset($data["AccessList5"]);}
          if (isset($data["AccessList6"])) {$data["AccessList"] .= "\n" . $data["AccessList6"];unset($data["AccessList6"]);}
          if (isset($data["AccessList7"])) {$data["AccessList"] .= "\n" . $data["AccessList7"]; unset($data["AccessList7"]);}
          
          unset($data["AccessList0"]);
          
          mysql_query("INSERT INTO users (DomainID,Name) VALUES (4,'$name')");
          if (mysql_error()) die(mysql_error());
          $id = mysql_insert_id();
          
          foreach($data as $key => $value) {
              $value = mysql_real_escape_string($value);
              mysql_query("INSERT INTO users_settings (UserID,ConfigName,ConfigValue) VALUES ($id,'{$key}','{$value}')");
              if (mysql_error()) die(mysql_error());
          }
          
          
      }
  }
?>
 
Zurück
Oben