2

我可以Moodle在本地机器上安装多个版本以用于开发目的吗?目前,我已经安装了最新的 Moodledev版本并且运行良好。我可以随意MySQL使用phpMyAdmin

多个 Moodle 包将如何影响MySQLphpMyAdmin

任何博客/帖子将不胜感激。

我正在使用 Ubuntu。

4

3 回答 3

2

是的。

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

  • 将所有文件解压到 Moodle7 中;
  • 创建moodledata7文件夹;
  • 在 phpmyadmin 中创建 moodle7 数据库;
  • 不要创建单独的用户,只需将所有权限授予与前 6 次安装相同的用户;
  • 打开 localhost/moodle7 并照常进行安装,将安装向导指向上述文件夹和数据库。

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

然后在数据库中进行搜索和替换(stackoverflow 上有一个很好的方法),以将你的 moodle 课程、论坛帖子等中的任何超链接从 moodle 更改为 moodle2。

于 2013-03-21T21:07:59.743 回答
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/main.moodle';

必须使用绝对或相对子域路径调用 Cron 任务:

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
于 2015-06-24T09:44:44.753 回答
0

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

只需将文件夹命名为不同的名称,在 PHPMyAdmin 中创建一个不同名称的数据库,并相应地命名“moodledata”文件夹。那时一切都应该没问题。

于 2013-03-21T17:14:42.973 回答