安装多个 Moodle 包

Posted

技术标签:

【中文标题】安装多个 Moodle 包【英文标题】:Installing multiple Moodle package 【发布时间】:2013-03-10 11:30:32 【问题描述】:

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

多个 Moodle 包将如何影响 MySQLphpMyAdmin

任何博客/帖子都将受到赞赏。

我正在使用 Ubuntu。

【问题讨论】:

【参考方案1】:

是的。

您的第七个 Moodle 实例的安装应该如下所示:

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

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

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

【讨论】:

【参考方案2】:

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

【讨论】:

考虑使用here 和here 的指南编辑您的帖子【参考方案3】:

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

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

【讨论】:

以上是关于安装多个 Moodle 包的主要内容,如果未能解决你的问题,请参考以下文章

基于Saml协议的Moodle单点登录的配置与实现

基于Saml协议的Moodle单点登录的配置与实现

基于Saml协议的Moodle单点登录的配置与实现

基于Saml协议的Moodle单点登录的配置与实现

安装moodle出现问题!建立了数据库,开始一切顺利,但是第一张图片之后就成了第二张图片。页面无任何显示

Moodle安装指导手册