]> git.mjollnir.org Git - moodle.git/commitdiff
check suggested dataroot in install.php SC#295
authorskodak <skodak>
Mon, 28 Aug 2006 20:54:16 +0000 (20:54 +0000)
committerskodak <skodak>
Mon, 28 Aug 2006 20:54:16 +0000 (20:54 +0000)
install.php
lang/en_utf8/install.php

index 67dbab713119612177f3aa187a1cb754ee86331e..438cb9949dfd859120aae0e6590efb8b28a6000a 100644 (file)
@@ -125,6 +125,7 @@ $CFG->running_installer = true;
 
 /// Include some moodle libraries
 
+require_once('./lib/adminlib.php');
 require_once('./lib/setuplib.php');
 require_once('./lib/moodlelib.php');
 require_once('./lib/weblib.php');
@@ -145,6 +146,20 @@ $db = &ADONewConnection($INSTALL['dbtype']);
 if ($INSTALL['wwwroot'] == '') {
     list($INSTALL['wwwroot'], $xtra) = explode('/install.php', qualified_me());
     $INSTALL['wwwrootform'] = $INSTALL['wwwroot'];
+
+    // now try to guess the correct dataroot not accessible via web
+    $CFG->wwwroot = $INSTALL['wwwroot'];
+    $i = 0; //safety check - dirname might return some unexpected results
+    while(is_dataroot_insecure()) {
+        $parrent = dirname($CFG->dataroot);
+        $i++;
+        if ($parrent == '/' or $parrent == '.' or preg_match('/^[a-z]:\\?$/i', $parrent) or ($i > 100)) {
+            $CFG->dataroot = ''; //can not find secure location for dataroot
+            break;
+        }
+        $CFG->dataroot = dirname($parrent).'/moodledata';
+    }
+    $INSTALL['dataroot'] = $CFG->dataroot;
 }
 
 $headstagetext = array(WELCOME       => get_string('chooselanguagehead', 'install'),
index 83e271a0f716cf11426355ce97d59c4478e77b0d..d7cc4b67c0002f9c31beee2a874e98a2cf66d6f0 100644 (file)
@@ -92,7 +92,7 @@ Make sure the upper/lower case is correct.</p>
 <p><b>Data Directory:</b>
 You need a place where Moodle can save uploaded files.  This
 directory should be readable AND WRITEABLE by the web server user 
-(usually \'nobody\' or \'apache\'), but it should not be accessible 
+(usually \'nobody\' or \'apache\'), but it must not be accessible 
 directly via the web.</p>';
 $string['directorysettingshead'] = 'Please confirm the locations of this Moodle installation';
 $string['directorysettingssub'] ='<b>Web Address:</b>