Moodle 安裝與配置完整指南
概述
Moodle 是一個開源的在線學習管理系統(LMS),廣泛應用於教育機構和企業培訓。本文將詳細介紹如何在 Linux 系統上安裝和配置 Moodle。
系統要求
- Linux 操作系統(Ubuntu)
- Apache Web 服務器
- MySQL/MariaDB 數據庫
- PHP 7.4 或更高版本
安裝步驟
1. 環境準備
首先更新系統並安裝必要的軟件包:
# 更新系統包
sudo apt-get update
sudo apt-get upgrade -y
# 安裝基礎軟件包
sudo apt-get install php libapache2-mod-php -y
# 安裝 Moodle 所需的 PHP 擴展
sudo apt install -y graphviz aspell ghostscript clamav php7.4 \
php7.4-pspell php7.4-curl php7.4-gd php7.4-intl php7.4-mysql \
php7.4-xml php7.4-xmlrpc php7.4-ldap php7.4-zip php7.4-soap \
php7.4-mbstring
2. 下載 Moodle
訪問 Moodle 安全版本下載頁面,選擇與你的 PHP 版本兼容的 Moodle 版本。
# 創建安裝目錄
sudo mkdir -p /home/moodle_install
cd /home/moodle_install
# 下載 Moodle(請替換為實際下載鏈接)
wget https://download.moodle.org/download.php/direct/stable404/moodle-4.4.4.tgz
# 解壓文件
tar -xzf moodle-*.tgz
3. 數據庫配置
在 MySQL 中創建 Moodle 數據庫和用户:
-- 登錄 MySQL
sudo mysql -u root -p
-- 創建數據庫
CREATE DATABASE moodle CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 創建用户並設置密碼
CREATE USER 'moodleuser'@'%' IDENTIFIED WITH mysql_native_password BY 'test_moodle';
-- 授予權限
GRANT ALL PRIVILEGES ON moodle.* TO 'moodleuser'@'%';
-- 刷新權限
FLUSH PRIVILEGES;
-- 退出 MySQL
EXIT;
4. 部署 Moodle 文件
# 複製 Moodle 文件到 Web 目錄
sudo cp -r moodle/ /var/www/html/
# 設置正確的權限
sudo chown -R www-data:www-data /var/www/html/moodle
sudo chmod -R 755 /var/www/html/moodle
# 創建 Moodle 數據目錄
sudo mkdir /var/moodledata
sudo chown -R www-data:www-data /var/moodledata
sudo chmod -R 755 /var/moodledata
5. 通過 Web 界面安裝
現在可以通過瀏覽器訪問 Moodle 安裝界面:
http://你的服務器IP/moodle
按照安裝嚮導完成以下步驟:
- 選擇安裝語言
- 確認路徑設置(Web 路徑和數據路徑)
- 選擇數據庫類型(MySQL)
- 輸入數據庫連接信息
- 配置管理員賬户
- 完成安裝
-
配置 Apache
修改默認端口
# 編輯 Apache 端口配置
sudo vi /etc/apache2/ports.conf
將內容修改為:
Listen 10090
配置虛擬主機
# 編輯默認站點配置
sudo vi /etc/apache2/sites-available/000-default.conf
修改為:
<VirtualHost *:10090>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# Moodle 相關配置
<Directory /var/www/html/moodle>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
重啓 Apache
# 啓用重寫模塊
sudo a2enmod rewrite
# 重啓 Apache 服務
sudo systemctl restart apache2
Nginx 反向代理配置
如果你的前端使用 Nginx,可以添加以下配置:
server {
listen 443 ssl;
server_name your-domain.com;
ssl_certificate /path/to/your/certificate.crt;
ssl_certificate_key /path/to/your/private.key;
# Moodle 代理配置
location /moodle/ {
proxy_pass http://192.168.3.220:10090/moodle/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Connection "";
# 防止 Moodle 重定向到內網地址
proxy_redirect http://192.168.3.220:10090/moodle/ /moodle/;
}
# 其他配置...
}
重啓 Nginx:
sudo systemctl restart nginx
配置 Moodle
編輯 Moodle 配置文件:
sudo vi /var/www/html/moodle/config.php
確保包含以下配置:
<?php
unset($CFG);
global $CFG;
$CFG = new stdClass();
$CFG->dbtype = 'mysqli';
$CFG->dblibrary = 'native';
$CFG->dbhost = 'localhost';
$CFG->dbname = 'moodle';
$CFG->dbuser = 'moodleuser';
$CFG->dbpass = 'uni_moodle';
$CFG->prefix = 'mdl_';
$CFG->dboptions = array(
'dbpersist' => 0,
'dbport' => '',
'dbsocket' => '',
'dbcollation' => 'utf8mb4_unicode_ci',
);
// 網站 URL 配置
$CFG->wwwroot = 'https://your-domain.com/moodle';
// 如果使用 HTTPS 和反向代理
$CFG->sslproxy = true;
// 數據目錄
$CFG->dataroot = '/var/moodledata';
$CFG->directorypermissions = 0777;
require_once(__DIR__ . '/lib/setup.php');
?>
安全配置
文件權限檢查
# 檢查 Moodle 文件權限
sudo -u www-data /usr/bin/php /var/www/html/moodle/admin/cli/check_database_schema.php
設置 Cron 任務
Moodle 需要定期執行維護任務:
# 編輯 crontab
sudo crontab -u www-data -e
# 添加以下行(每5分鐘執行一次)
*/5 * * * * /usr/bin/php /var/www/html/moodle/admin/cli/cron.php > /dev/null
故障排除
常見問題
- PHP 擴展缺失
- 確保安裝了所有必需的 PHP 擴展
- 使用
php -m檢查已加載的模塊
- 權限問題
- 確保 Web 服務器用户對 Moodle 文件和數據目錄有適當的讀寫權限
- 數據庫連接錯誤
- 檢查數據庫服務是否運行
- 驗證數據庫用户權限
- 重定向循環
- 檢查
config.php中的wwwroot設置 - 確認 SSL 代理配置正確
日誌檢查
bash
# Apache 錯誤日誌
sudo tail -f /var/log/apache2/error.log
# Moodle 日誌
sudo tail -f /var/moodledata/log.txt
總結
通過以上步驟,你已經成功安裝並配置了 Moodle 學習管理系統。現在可以通過你的域名訪問 Moodle 並開始創建在線課程了。
記得定期備份 Moodle 數據和數據庫,並保持系統更新以確保安全。