radius DB install

This commit is contained in:
Ibnu Maksum 2023-09-29 14:11:44 +07:00
parent dc19583d95
commit d002ed2286
No known key found for this signature in database
GPG Key ID: 7FC82848810579E5
3 changed files with 246 additions and 45 deletions

169
install/radius.sql Normal file
View File

@ -0,0 +1,169 @@
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
CREATE TABLE `nas` (
`id` int(10) NOT NULL,
`nasname` varchar(128) COLLATE utf8mb4_general_ci NOT NULL,
`shortname` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL,
`type` varchar(30) COLLATE utf8mb4_general_ci DEFAULT 'other',
`ports` int(5) DEFAULT NULL,
`secret` varchar(60) COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'secret',
`server` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL,
`community` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL,
`description` varchar(200) COLLATE utf8mb4_general_ci DEFAULT 'RADIUS Client'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
CREATE TABLE `radacct` (
`radacctid` bigint(21) NOT NULL,
`acctsessionid` varchar(64) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
`acctuniqueid` varchar(32) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
`username` varchar(64) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
`realm` varchar(64) COLLATE utf8mb4_general_ci DEFAULT '',
`nasipaddress` varchar(15) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
`nasportid` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL,
`nasporttype` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL,
`acctstarttime` datetime DEFAULT NULL,
`acctupdatetime` datetime DEFAULT NULL,
`acctstoptime` datetime DEFAULT NULL,
`acctinterval` int(12) DEFAULT NULL,
`acctsessiontime` int(12) UNSIGNED DEFAULT NULL,
`acctauthentic` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL,
`connectinfo_start` varchar(128) COLLATE utf8mb4_general_ci DEFAULT NULL,
`connectinfo_stop` varchar(128) COLLATE utf8mb4_general_ci DEFAULT NULL,
`acctinputoctets` bigint(20) DEFAULT NULL,
`acctoutputoctets` bigint(20) DEFAULT NULL,
`calledstationid` varchar(50) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
`callingstationid` varchar(50) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
`acctterminatecause` varchar(32) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
`servicetype` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL,
`framedprotocol` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL,
`framedipaddress` varchar(15) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
`framedipv6address` varchar(45) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
`framedipv6prefix` varchar(45) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
`framedinterfaceid` varchar(44) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
`delegatedipv6prefix` varchar(45) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
`class` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
CREATE TABLE `radcheck` (
`id` int(11) UNSIGNED NOT NULL,
`username` varchar(64) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
`attribute` varchar(64) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
`op` char(2) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '==',
`value` varchar(253) COLLATE utf8mb4_general_ci NOT NULL DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
CREATE TABLE `radgroupcheck` (
`id` int(11) UNSIGNED NOT NULL,
`groupname` varchar(64) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
`attribute` varchar(64) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
`op` char(2) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '==',
`value` varchar(253) COLLATE utf8mb4_general_ci NOT NULL DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
CREATE TABLE `radgroupreply` (
`id` int(11) UNSIGNED NOT NULL,
`groupname` varchar(64) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
`attribute` varchar(64) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
`op` char(2) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '=',
`value` varchar(253) COLLATE utf8mb4_general_ci NOT NULL DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
CREATE TABLE `radpostauth` (
`id` int(11) NOT NULL,
`username` varchar(64) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
`pass` varchar(64) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
`reply` varchar(32) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
`authdate` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
`class` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
CREATE TABLE `radreply` (
`id` int(11) UNSIGNED NOT NULL,
`username` varchar(64) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
`attribute` varchar(64) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
`op` char(2) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '=',
`value` varchar(253) COLLATE utf8mb4_general_ci NOT NULL DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
CREATE TABLE `radusergroup` (
`id` int(11) UNSIGNED NOT NULL,
`username` varchar(64) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
`groupname` varchar(64) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
`priority` int(11) NOT NULL DEFAULT '1'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
ALTER TABLE `nas`
ADD PRIMARY KEY (`id`),
ADD KEY `nasname` (`nasname`);
ALTER TABLE `radacct`
ADD PRIMARY KEY (`radacctid`),
ADD UNIQUE KEY `acctuniqueid` (`acctuniqueid`),
ADD KEY `username` (`username`),
ADD KEY `framedipaddress` (`framedipaddress`),
ADD KEY `framedipv6address` (`framedipv6address`),
ADD KEY `framedipv6prefix` (`framedipv6prefix`),
ADD KEY `framedinterfaceid` (`framedinterfaceid`),
ADD KEY `delegatedipv6prefix` (`delegatedipv6prefix`),
ADD KEY `acctsessionid` (`acctsessionid`),
ADD KEY `acctsessiontime` (`acctsessiontime`),
ADD KEY `acctstarttime` (`acctstarttime`),
ADD KEY `acctinterval` (`acctinterval`),
ADD KEY `acctstoptime` (`acctstoptime`),
ADD KEY `nasipaddress` (`nasipaddress`),
ADD KEY `class` (`class`);
ALTER TABLE `radcheck`
ADD PRIMARY KEY (`id`),
ADD KEY `username` (`username`(32));
ALTER TABLE `radgroupcheck`
ADD PRIMARY KEY (`id`),
ADD KEY `groupname` (`groupname`(32));
ALTER TABLE `radgroupreply`
ADD PRIMARY KEY (`id`),
ADD KEY `groupname` (`groupname`(32));
ALTER TABLE `radpostauth`
ADD PRIMARY KEY (`id`),
ADD KEY `username` (`username`),
ADD KEY `class` (`class`);
ALTER TABLE `radreply`
ADD PRIMARY KEY (`id`),
ADD KEY `username` (`username`(32));
ALTER TABLE `radusergroup`
ADD PRIMARY KEY (`id`),
ADD KEY `username` (`username`(32));
ALTER TABLE `nas`
MODIFY `id` int(10) NOT NULL AUTO_INCREMENT;
ALTER TABLE `radacct`
MODIFY `radacctid` bigint(21) NOT NULL AUTO_INCREMENT;
ALTER TABLE `radcheck`
MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;
ALTER TABLE `radgroupcheck`
MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;
ALTER TABLE `radgroupreply`
MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;
ALTER TABLE `radpostauth`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
ALTER TABLE `radreply`
MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;
ALTER TABLE `radusergroup`
MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

View File

@ -58,6 +58,11 @@
<input type="text" class="form-control" id="dbname" name="dbname"> <input type="text" class="form-control" id="dbname" name="dbname">
</div> </div>
<div class="form-group">
<label for="dbname"><input type="checkbox" class="form-control" id="radius" name="radius" value="yes"> Install Radius Table?</label>
</div>
<button type="submit" class="btn btn-primary">Submit</button> <button type="submit" class="btn btn-primary">Submit</button>
</fieldset> </fieldset>
</form> </form>

View File

@ -1,4 +1,5 @@
<?php <?php
/** /**
* PHP Mikrotik Billing (https://github.com/hotspotbilling/phpnuxbill/) * PHP Mikrotik Billing (https://github.com/hotspotbilling/phpnuxbill/)
**/ **/
@ -10,17 +11,19 @@ $db_password = $_POST['dbpass'];
$db_name = $_POST['dbname']; $db_name = $_POST['dbname'];
$cn = '0'; $cn = '0';
try { try {
$dbh = new pdo( "mysql:host=$db_host;dbname=$db_name", $dbh = new pdo(
"mysql:host=$db_host;dbname=$db_name",
"$db_user", "$db_user",
"$db_password", "$db_password",
array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)
);
$cn = '1'; $cn = '1';
} } catch (PDOException $ex) {
catch(PDOException $ex){
$cn = '0'; $cn = '0';
} }
if ($cn == '1') { if ($cn == '1') {
if ($_POST['radius'] == 'yes') {
$input = '<?php $input = '<?php
define(\'APP_URL\', \'' . $appurl . '\'); define(\'APP_URL\', \'' . $appurl . '\');
@ -48,17 +51,40 @@ if($_app_stage!=\'Live\'){
ini_set(\'display_startup_errors\', 0); ini_set(\'display_startup_errors\', 0);
} }
'; ';
} else {
$input = '<?php
define(\'APP_URL\', \'' . $appurl . '\');
$_app_stage = \'Live\';
// Database PHPNuxBill
$db_host = \'' . $db_host . '\';
$db_user = \'' . $db_user . '\';
$db_password = \'' . $db_password . '\';
$db_name = \'' . $db_name . '\';
if($_app_stage!=\'Live\'){
error_reporting(E_ERROR);
ini_set(\'display_errors\', 1);
ini_set(\'display_startup_errors\', 1);
}else{
error_reporting(E_ERROR);
ini_set(\'display_errors\', 0);
ini_set(\'display_startup_errors\', 0);
}
';
}
$wConfig = "../config.php"; $wConfig = "../config.php";
$fh = fopen($wConfig, 'w') or die("Can't create config file, your server does not support 'fopen' function, $fh = fopen($wConfig, 'w') or die("Can't create config file, your server does not support 'fopen' function,
please create a file named - config.php with following contents- <br/>$input"); please create a file named - config.php with following contents- <br/>$input");
fwrite($fh, $input); fwrite($fh, $input);
fclose($fh); fclose($fh);
$sql = file_get_contents('phpnuxbill.sql'); $sql = file_get_contents('phpnuxbill.sql');
$qr = $dbh->exec($sql); $qr = $dbh->exec($sql);
if ($_POST['radius'] == 'yes') {
$sql = file_get_contents('radius.sql');
$qrs = $dbh->exec($sql);
}
} else { } else {
header("location: step3.php?_error=1"); header("location: step3.php?_error=1");
exit; exit;
@ -67,6 +93,7 @@ $wConfig = "../config.php";
?> ?>
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<title>PHPNuxBill Installer</title> <title>PHPNuxBill Installer</title>
<link rel="shortcut icon" type="image/x-icon" href="img/favicon.ico"> <link rel="shortcut icon" type="image/x-icon" href="img/favicon.ico">
@ -101,7 +128,7 @@ $wConfig = "../config.php";
} elseif ($cn == '2') { } elseif ($cn == '2') {
?> ?>
<p> MySQL Connection was successfull. An error occured while adding data on MySQL. Unsuccessfull <p> MySQL Connection was successfull. An error occured while adding data on MySQL. Unsuccessfull
Installation. Please refer manual installation in the website github.com/ibnux/phpnuxbill or Contact phpnuxbill@ibnux.com for Installation. Please refer manual installation in the website github.com/ibnux/phpnuxbill/wiki or Contact Telegram @ibnux for
helping on installation</p> helping on installation</p>
<?php <?php
} else { } else {
@ -115,5 +142,5 @@ $wConfig = "../config.php";
<div class="footer">Copyright &copy; 2021 PHPNuxBill. All Rights Reserved<br /><br /></div> <div class="footer">Copyright &copy; 2021 PHPNuxBill. All Rights Reserved<br /><br /></div>
</body> </body>
</html>
</html>