/install.php

http://freshdns.googlecode.com/ · PHP · 157 lines · 145 code · 10 blank · 2 comment · 0 complexity · 0c7360184f60ed82661a612c13920895 MD5 · raw file

  1. <?
  2. switch($_GET['p'])
  3. {
  4. default:
  5. echo '<form method="post" action="install.php?p=do_install">
  6. <table>
  7. <tr>
  8. <td>Database type:</td>
  9. <td><select name="db_type">
  10. <option value="mysql">MySQL</option>
  11. <option value="postgresql">PostgreSQL</option>
  12. </select></td>
  13. </tr>
  14. <tr>
  15. <td>Database host:</td>
  16. <td><input type="text" name="db_host" value="localhost"></td>
  17. </tr>
  18. <tr>
  19. <td>Database username:</td>
  20. <td><input type="text" name="db_user" value="pdns"></td>
  21. </tr>
  22. <tr>
  23. <td>Database password:</td>
  24. <td><input type="text" name="db_pass" value=""></td>
  25. </tr>
  26. <tr>
  27. <td>Database database:</td>
  28. <td><input type="text" name="db_base" value="pdns"></td>
  29. </tr>
  30. <tr>
  31. <td>&nbsp;</td>
  32. <td>&nbsp;</td>
  33. </tr>
  34. <tr>
  35. <td>Nameserver 1:</td>
  36. <td><input type="text" name="ns0" value="ns0.example.com"></td>
  37. </tr>
  38. <tr>
  39. <td>Nameserver 2:</td>
  40. <td><input type="text" name="ns1" value="ns1.example.com"></td>
  41. </tr>
  42. <tr>
  43. <td>Nameserver 3:</td>
  44. <td><input type="text" name="ns2" value="ns2.example.com"></td>
  45. </tr>
  46. <tr>
  47. <td>Hostmaster:</td>
  48. <td><input type="text" name="hostmaster" value="hostmaster@example.com"></td>
  49. </tr>
  50. <tr>
  51. <td>&nbsp;</td>
  52. <td>&nbsp;</td>
  53. </tr>
  54. <tr>
  55. <td><input type="submit" name="submit" value="Install"></td>
  56. <td>&nbsp;</td>
  57. </tr>
  58. </table></form>';
  59. break;
  60. case "do_install":
  61. echo 'Copy the following <b>over</b> the original in config.inc.php<br /><br />
  62. <b>Database settings</b>
  63. <textarea name="configsettings" cols="150" rows="15">
  64. $config[\''.$_POST['db_type'].'\'][\'use\'] = true;
  65. $config[\''.$_POST['db_type'].'\'][\'username\'] = \''.$_POST['db_user'].'\';
  66. $config[\''.$_POST['db_type'].'\'][\'password\'] = \''.$_POST['db_pass'].'\';
  67. $config[\''.$_POST['db_type'].'\'][\'database\'] = \''.$_POST['db_base'].'\';
  68. $config[\''.$_POST['db_type'].'\'][\'master_host\'] = \''.$_POST['db_host'].'\';
  69. $config[\''.$_POST['db_type'].'\'][\'slave_hosts\'] = array(\''.$_POST['db_host'].'\',\''.$_POST['db_host'].'\'); // DO NOT USE UNLESS YOU KNOW WHAT YOU ARE DOING!
  70. $config[\''.$_POST['db_type'].'\'][\'use_replication\'] = \'0\'; // DO NOT USE UNLESS YOU KNOW WHAT YOU ARE DOING!
  71. </textarea>
  72. <textarea name="configsettings2" cols="150" rows="10">
  73. $config[\'DNS\'][\'ns0\'] = \''.$_POST['ns0'].'\';
  74. $config[\'DNS\'][\'ns1\'] = \''.$_POST['ns1'].'\';
  75. $config[\'DNS\'][\'ns2\'] = \''.$_POST['ns2'].'\';
  76. $config[\'DNS\'][\'hostmaster\'] = \''.$_POST['hostmaster'].'\';
  77. </textarea>
  78. Done? Save and upload the editted file. <a href="install.php?p=install_db">Next step</a>';
  79. break;
  80. case "install_db":
  81. include_once("config.inc.php");
  82. include_once("./class/class.install.php");
  83. $install = new install ($config['database']);
  84. $install->pdns_sql();
  85. $install->padmin_sql();
  86. echo '<form method="post" action="install.php?p=do_add_admin">
  87. <table>
  88. <tr>
  89. <td>Username:</td>
  90. <td><input type="text" name="username" value=""></td>
  91. </tr>
  92. <tr>
  93. <td>Password:</td>
  94. <td><input type="password" name="password" value=""></td>
  95. </tr>
  96. <tr>
  97. <td>Name:</td>
  98. <td><input type="text" name="fullname" value=""></td>
  99. </tr>
  100. <tr>
  101. <td>E-mail address:</td>
  102. <td><input type="text" name="email" value=""></td>
  103. </tr>
  104. <tr>
  105. <td>Description:</td>
  106. <td><input type="text" name="description" value=""></td>
  107. </tr>
  108. <tr>
  109. <td>&nbsp;</td>
  110. <td>&nbsp;</td>
  111. </tr>
  112. <tr>
  113. <td><input type="submit" name="submit" value="Create admin account"></td>
  114. <td>&nbsp;</td>
  115. </tr>
  116. </table></form>';
  117. break;
  118. case "do_add_admin":
  119. include_once("config.inc.php");
  120. include_once("./class/class.install.php");
  121. try
  122. {
  123. $_SESSION['level'] = 10;
  124. $manager = new manager ($config['database']);
  125. $install = new install ($config['database']);
  126. $userId = $manager->addUser ($_POST['username'], md5($_POST['password']), $_POST['fullname'], $_POST['email'], $_POST['description'], 10, 1);
  127. // LET'S FIND SOME ZONELESS DOMAINS!
  128. $records = $install->zonelessdomains();
  129. foreach($records AS $r)
  130. {
  131. // ADD A ZONE FOR THAT SILLY DOMAIN
  132. $manager->addZone($r['id'], $userId, "");
  133. }
  134. session_destroy();
  135. echo "Admin account added. <b><font color=\"red\">Please remove install.php and ./class/class.install.php from the webserver!</font></b><br /><br />
  136. Installation done!";
  137. }catch(Exception $ex)
  138. {
  139. echo $ex->getMessage();
  140. }
  141. break;
  142. }
  143. ?>