安装多个 Moodle 包
Posted
技术标签:
【中文标题】安装多个 Moodle 包【英文标题】:Installing multiple Moodle package 【发布时间】:2013-03-10 11:30:32 【问题描述】:我可以在本地机器上安装多个Moodle
版本以用于开发目的吗?目前,我已经安装了最新的 Moodle dev
版本并且运行良好。我可以随意使用mysql
和phpMyAdmin
。
多个 Moodle 包将如何影响 MySQL
或 phpMyAdmin
?
任何博客/帖子都将受到赞赏。
我正在使用 Ubuntu。
【问题讨论】:
【参考方案1】:是的。
您的第七个 Moodle 实例的安装应该如下所示:
将所有文件解压到 Moodle7 中; 创建 moodledata7 文件夹; 在phpmyadmin中创建moodle7数据库; 不要创建单独的用户,只需将所有权限授予与前 6 次安装相同的用户即可; 打开 localhost/moodle7 并照常进行安装,将安装向导指向上述文件夹和数据库。如果您想克隆现有的moodle安装,请将moodle复制到moodle2,将moodledata复制到moodledata2,将数据库moodle复制到moodle2。然后编辑moodle2文件夹根目录下的config.php
指向正确的dirroot
、wwwroot
和数据库。
然后在数据库中进行搜索和替换(*** 上有一个很好的操作方法),以将您的 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 包的主要内容,如果未能解决你的问题,请参考以下文章