2013-03-21 73 views
1

我可以在本地机器上安装多个Moodle版本用于开发目的吗?目前,我已经安装了最新的Moodle dev版本,它工作正常。我可以按照我的意愿使用MySQLphpMyAdmin安装多个Moodle包

多个Moodle包如何影响MySQLphpMyAdmin

任何博客/职位将不胜感激。

我使用的是Ubuntu。

回答

2

是的。

安装您的Moodle第七实例应该是这样的:

  • 打开所有文件到Moodle7;
  • 创建moodledata7文件夹;
  • 在phpmyadmin中创建moodle7数据库;
  • 不会创建一个单独的用户,只需授予与先前6次安装相同的用户的所有权限;
  • 打开本地主机/ moodle7并继续安装正常,点安装向导到上述文件夹和数据库。

如果要克隆现有的moodle安装,请将moodle复制到moodle2,将moodledata复制到moodledata2,将数据库moodle复制到moodle2。然后在moodle2文件夹的根目录中编辑config.php以指向正确的dirrootwwwroot和数据库。

然后做一个搜索和替换数据库中(有计算器上的一个很好的HOWTO)在您的Moodle课程,论坛帖子等改变任何链接从Moodle自己moodle2。

0

我不知道ubuntu,但是,可以在同一台服务器上的系统中安装多个Moodle版本。

只要命名不同的文件夹,在PHPMyAdmin中创建一个不同名称的数据库,并相应地命名'moodledata'文件夹。一切都应该很好。

1

的Moodle +多实例+的cron:

我有更多的 “Moodle的” 虚拟域的我的目录结构是:

/var/www/html/main.moodle (directory with moodle installation) 
/var/www/html/sub1.moodle.site -> symlink to main.moodle 
/var/www/html/sub2.moodle.site -> symlink to main.moodle 
/var/www/html/sub3.moodle.site -> symlink to main.moodle 

这里是我的config.php与多个站点的cron功能。

define('MOODLE_NO_DOMAIN', 'none'); 
$domain = MOODLE_NO_DOMAIN; 

if (defined('CLI_SCRIPT') && CLI_SCRIPT == true) { 
     // CALLED FROM COMMANDLINE - cron.php etc .. 
     preg_match('/^(.*\/)*(.*\.moodle\.site)\/.*$/',$_SERVER['PHP_SELF'],$matches); 
     if (count($matches) > 0) { 
       $domain = $matches[count($matches) - 1]; 
     } 
} else { 
     // CALLED FROM BROWSER 
     $domain = $_SERVER['HTTP_HOST']; 
} 

//这里以上内容来自THOMAS VAN DEN HEUVEL

switch ($domain) { 
    // configuration for subdomain 1 
    case 'sub1.domain.com': 
     $CFG->dbname = 'sub1_moodle'; // if your database is called sub1_moodle for this subdomain 
     $CFG->wwwroot = 'http://sub1.moodle.site'; // no trailing slash 
     $CFG->dataroot = '/path/to/sub1data/'; // depends on where you put your datadir 
     break; 
    // configuration for subdomain 2 
    case 'sub2.domain.com': 
     $CFG->dbname = 'sub2_moodle'; // if your database is called sub2_moodle for this subdomain 
     $CFG->wwwroot = 'http://sub2.moodle.site'; // no trailing slash 
     $CFG->dataroot = '/path/to/sub2data/'; // depends on where you put your datadir 
     break; 
    // et cetera 
    default: 
     // ... redirect to info page with moodle links 
} 

$ CFG-> dirroot =“在/ var/www/html等/主。Moodle的“;

的后台任务必须以绝对或相对的子域路径被称为:

php /var/www/html/sub1.moodle.site/admin/cli/cron.php 

php sub1.moodle.site/admin/cli/cron.php 

我呼吁所有的子域crons用一个非常简单的脚本:

#! /bin/bash 
WWW_ROOT="/var/www/html" 
DIRS="sub1.moodle.site sub2.moodle.site sub3.moodle site" 
for dir in $DIRS 
do 
     echo "$WWW_ROOT/$dir" 
     php "$WWW_ROOT/$dir/admin/cli/cron.php" 
done 
+1

考虑编辑您的帖子与指导从[这里](http://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-链接,其他地方,真的很好答案)和[这里](http://stackoverflow.com/help/how-to-answer) – 2015-06-24 10:05:52