Viewing File server/web/firstrun-.php of 0.04.30a
|
1: <?php 2: /* ------------------------------------------------------------- 3: This file is part of FreeNATS 4: 5: FreeNATS is (C) Copyright 2008 PurplePixie Systems 6: 7: FreeNATS is free software: you can redistribute it and/or modify 8: it under the terms of the GNU General Public License as published by 9: the Free Software Foundation, either version 3 of the License, or 10: (at your option) any later version. 11: 12: FreeNATS is distributed in the hope that it will be useful, 13: but WITHOUT ANY WARRANTY; without even the implied warranty of 14: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15: GNU General Public License for more details. 16: 17: You should have received a copy of the GNU General Public License 18: along with FreeNATS. If not, see www.gnu.org/licenses 19: 20: For more information see www.purplepixie.org/freenats 21: -------------------------------------------------------------- */ 22: 23: require("include.php"); 24: $sn=$_SERVER['SCRIPT_NAME']; 25: $script=""; 26: for ($a=strlen($sn)-1; $a>0; $a--) 27: { 28: $c=$sn[$a]; 29: if ($c=="/") $a=-1; 30: else $script=$c.$script; 31: } 32: if ($script!="firstrun.php") 33: { 34: echo "<b>Error:</b> This script is not correctly named. In order to run it please rename "".$script."" to "firstrun.php"."; 35: echo "<br><br>"; 36: exit(); 37: } 38: if (isset($_REQUEST['stage'])) $stage=$_REQUEST['stage']; 39: else $stage=0; 40: 41: function sqlfile($file) 42: { 43: global $BaseDir; 44: $fn=$BaseDir."sql/".$file.".sql"; 45: echo "Processing ".$fn."<br><br>"; 46: $fp=fopen($fn,"r"); 47: if ($fp<=0) 48: { 49: echo "<b>ERROR: Cannot Open File!</b><br><br>"; 50: return false; 51: } 52: $q=""; 53: $qc=0; 54: $qok=0; 55: $qerr=0; 56: while ($s=fgets($fp,1024)) 57: { 58: if ($s[0]!="-") 59: { 60: for ($a=0; $a<strlen($s); $a++) 61: { 62: $c=$s[$a]; 63: if ($c==";") 64: { 65: mysql_query($q); 66: $qc++; 67: if (mysql_errno()!=0) 68: { 69: echo "<b>Warning/Error</b><br>"; 70: echo "<b>SQL:</b> ".$q."<br>"; 71: echo "<b>Error:</b> ".mysql_error()." (Code ".mysql_errno().")<br><br>"; 72: $qerr++; 73: } 74: else $qok++; 75: $q=""; 76: } 77: else 78: $q.=$c; 79: } 80: } 81: } 82: echo "Finished Processing: ".$qc." queries (".$qok." ok, ".$qerr." warnings/errors)<br><br>"; 83: fclose($fp); 84: } 85: 86: echo "<html><head><title>FreeNATS Setup</title></head><body>\n"; 87: echo "<h1>First Run Setup: Stage ".$stage."</h1>"; 88: 89: echo "Testing database connectivity...<br>"; 90: $sql=mysql_connect($fnCfg['db.server'],$fnCfg['db.username'],$fnCfg['db.password']) 91: or die("Failed to connect to database server ".$fnCfg['db.server']." with username ".$fnCfg['db.username']."<br>Details: ".mysql_error()); 92: mysql_select_db($fnCfg['db.database']) 93: or die("Connected ok but failed to select database ".$fnCfg['db.database']."<br>Details: ".mysql_error()); 94: echo "Database connection succeeded!<br><br>"; 95: 96: switch($stage) 97: { 98: case 0: 99: echo "<b style=\"color: red;\">Users Performing an Upgrade Please Note:</b><br>this will only update the database and not "; 100: echo "the files which you must do manually or with the shell-install/vm-upgrade scripts.</b><br><br>"; 101: echo "<form action=firstrun.php method=post>"; 102: echo "<input type=hidden name=stage value=1>"; 103: echo "<b>Setup Database Schema and Defaults</b><br><br>"; 104: echo "Select installation/update type...<br><br>"; 105: echo "<table border=0><tr>"; 106: echo "<td align=left valign=center>"; 107: echo "<input type=radio name=insttype value=fresh checked>"; 108: echo "</td><td align=left valign=top>"; 109: echo "<b>Fresh Install/Upgrade</b><br>"; 110: echo "First time users should select this. For upgrades this is<br>"; 111: echo "the recommended choice and should work but will loose your<br>"; 112: echo "data and configuration.<br><br>"; 113: echo "</td></tr><tr><td align=left valign=center>"; 114: echo "<input type=radio name=insttype value=upgrade>"; 115: echo "</td><td align=left valign=top>"; 116: echo "<b>Database Upgrade (highly experimental)</b><br>"; 117: echo "Select this to attempt to update your schema (add new tables<br>"; 118: echo "and fields etc keeping your data and config intact. You may<br>"; 119: echo "need to come back and do a fresh update or update the schema<br>"; 120: echo "<i>by hand</i> if it fails."; 121: echo "</td></tr></table><br>"; 122: echo "<input type=checkbox name=tracker value=1 checked> Submit Anonymous Usage Data Automatically<br>"; 123: echo "<i>This will help us track use of the product and aid future development.</i><br><br>"; 124: echo "<input type=checkbox name=example value=1 checked> Include Example Setup (Recommended) (n/a if upgrade selected)<br><br>"; 125: echo "<input type=submit value=\"Proceed With Setup\">"; 126: echo "</form>"; 127: exit(); 128: break; 129: 130: case 1: 131: if ($_REQUEST['insttype']=="fresh") 132: { 133: echo "<b>Fresh Install or Clean Update</b><br><br>"; 134: echo "<b>Setting Up Schema...</b><br><br>"; 135: sqlfile("schema.drop"); 136: echo "<b>Setting Up Defaults...</b><br><br>"; 137: sqlfile("default"); 138: if (isset($_REQUEST['example'])) 139: { 140: echo "<b>Setting Up Examples...</b><br><br>"; 141: sqlfile("example"); 142: } 143: } 144: else if ($_REQUEST['insttype']=="upgrade") 145: { 146: echo "<b>Experimental Upgrade... Expect to See Errors</b><br>"; 147: echo "Doesn't mean it hasn't worked if you see already exists/duplicate errors<br><br>"; 148: echo "<b style=\"color: red;\">Basically ignore errors: 1050, 1060, 1068 and 1054</b><br><br>"; 149: echo "<b>Importing New Schema (sans drop tables)</b><br><br>"; 150: sqlfile("schema"); 151: echo "<br><br><b>Doing Schema Upgrade</b><br><br>"; 152: sqlfile("schema.upgrade"); 153: echo "<br><br>"; 154: } 155: else echo "<b>Error: Incorrect or Unknown Installation Type!</b><br><br>"; 156: 157: if (isset($_REQUEST['tracker'])) 158: { 159: echo "<b>Enabling Usage Tracker</b><br><br>"; 160: $q="INSERT INTO fnconfig(fnc_var,fnc_val) VALUES(\"freenats.tracker\",\"1\")"; 161: mysql_query($q); 162: } 163: echo "<br><br>"; 164: echo "<b>CONGRATULATIONS!!</b><br><br>"; 165: echo "Setup should now be complete. If you saw errors etc above please see the <a href=http://www.purplepixie.org/freenats/>"; 166: echo "project homepage</a> for help.<br><br>"; 167: echo "<b>RENAME THIS FILE "firstrun.php" TO SOMETHING ELSE LIKE "firstrun-.php" TO STOP OTHERS RUNNING IT</b>"; 168: echo "<br><br>"; 169: echo "<a href=./>Click here to continue</a> - login admin password admin (click settings once logged in to change)<br><br>"; 170: 171: 172: exit(); 173: break; 174: 175: default: 176: echo "Sorry - unknown step in setup process!<br><br>"; 177: exit(); 178: } 179: 180: ?>