check suggested dataroot in install.php SC#295

This commit is contained in:
skodak
2006-08-28 20:54:16 +00:00
parent 57e35f328a
commit add47d44d0
2 changed files with 16 additions and 1 deletions
+15
View 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'),
+1 -1
View 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>