在龙芯电脑上架设Moodle网络教学系统
我每次开始使用龙芯电脑基本都是从建设Moodle网站开始。
一 Moodle是什么
Moodle是一个开源课程管理系统(CMS),也被称为学习管理系统(LMS)或虚拟学习环境(VLE)。它已成为深受世界各地教育工作者最为喜爱的一种建立网上动态学习网站的工具。按照Moodle官网的介绍,当前登记过使用Moodle创建的网站超过16万个,创建的学习课程超过4千万。
Moolde是一个建立在LAMP架构上的网络学习管理系统,所以要安装Moodle必须先安装好LAMP环境。
Moodle曾经在中国教育界风靡一时,催生了成千上万的学术论文,后来逐渐式微,那时候Moodle的中文名字叫魔灯。
二 什么是LAMP架构
LAMP是国际上最流行的一种网站建设架构,它是以下四个英文单词的首写字母缩写:
Linux+Apache+Mysql+PHP(有时也指python甚至perl)。Linux是操作系统,Apache是WWW服务器,现在也流行选择Nginx,那样的化LAMP架构就转变为LNMP架构。MySQL是数据库服务器,PHP和python都是用于网络编程的程序语言。
和Java/J2EE 架构相比, LAMP 具有 Web 资源丰富、轻量、快速开发等特点;与微软的.NET 架构相比,LAMP具有通用、跨平台、高性能、低价格的优势。因此 LAMP 无论是性能、质量还是价格都是互联网上搭建网站的首选平台。
三 龙芯3A-5000电脑操作系统的选择
目前龙芯电脑的操作系统主要有:
1 Loongnix系统,这是官方标配系统,当前最新版本Loongnix-20.3,可能是基于Debian还是Fedora定制的。这个系统很好用,安装好之后所有常用的软件都有了,但是问题是集成的软件版本太老,比如内核还是4.19(当前是6.2.9),PHP还是7.3,官方连7.4和8.0都已经不再支持。有些重要软件没有,比如我想用的QGIS。
Moodle的当前版本要求PHP至少是7.4之后的版本。
2 UOS系统,也是很好的系统,基本每种架构的CPU都有对应版本,目前声势浩大,有一统国产桌面操作系统的架势,应该是深度OS的商业版本。集成的软件版本太老同上,另外,它是商业软件,如何付费我还没搞清楚。
3 社区OS系统,目前所知的有大佬们做的Archlinux,CLFS等系统,我这里以Archlinux-2023.4.1版本为例。
顺便说一声,我很期待不久将发布的Debian-12能有LoongArch版本,因为早年我曾经使用Debian,相对熟悉一些。
四 龙芯3A-5000电脑操作系统的安装:
这个不重复,参照这篇就可以了:
https://bbs.loongarch.org/d/88-archlinux
有几个要注意的地方:
1 固件要在pre-beta9 及以上,否则要先行升级固件版本。
2 开机时按F2,在固件设置里设置为新世界。
3 分区的时候,记得第一个分区设置为EFI类型。
五 建设LAMP环境:
5.1 安装apache服务器
安装:#pacman -S apache
启动:#systemctl restart httpd
设置为开机启动: #systemctl enable httpd
配置文件的位置: /etc/httpd/conf/httpd.conf
缺省的主目录: /srv/http
缺省的日志文件存放目录: /var/log/httpd/
查看运行状态: #systemctl status httpd
5.2 安装php
php是世界上最好的编程语言。
安装:#pacman -S php php-apache
PHP的配置文件: /etc/php/php.ini
编写一个测试文件:
#vi /srv/http/test.php
内容简单就一行,如下:
<?php phpinfo(); ?>
这时在客户端用浏览器打开测试文件是看不到内容的,说明php解析不成功,还需要修改配置文件/etc/httpd/conf/httpd.conf,加入这行:
LoadModule php_module modules/libphp.so
AddHandler php-script php
Include conf/extra/php_module.conf
这样还不行,缺省情况下archlinux安装的apache开启的是线程化的MPM运行模式,而PHP模块确实采用线程不安全方式编译的,所以要么重新编译PHP,要么改变apache的MPM运行模式,否则无法重启apache。我这里选择相对简单的第二种方法。
在配置文件种找到以下三行:
#LoadModule mpm_event_module modules/mod_mpm_event.so
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
#LoadModule mpm_worker_module modules/mod_mpm_worker.so
确认第一和第三行被注释,而启用第二行,即prefork模式。
并且重启apache服务器以便刚才的修改生效:
#systemctl restart httpd
现在你可以在客户端的浏览器看到熟悉的php解释页面:
![](file:///C:\Users\hp\AppData\Local\Temp\ksohtml11412\wps1.jpg)
5.3 MySQL
安装: #pacman -S mysql(实际上安装的是在mariadb和percona中二选一)
启动数据库服务器: #systemctl start mysqld
电脑开机启动数据库服务器: #systemctl enable mysqld
查看运行状态 #systemctl status mysqld
如果启动MySQL遇到如下错误(一般都会遇到,涉及到读写权限问题):
Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
那么,必须:
#rm -rf /var/lib/mysql/*
# mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
再次启动就可以了。
为了提高MySQL的安全性,最后运行:
#mysql_secure_installation
至少,你要修改数据库超级用户的密码吧。
5.4 phpMyAdmin
我很多MySQL命令都记不住,所以实际使用的时候都要借助phpMyAdmin。
安装: #pacman -S phpmyadmin
激活必需的三个php模块,编辑PHP配置文件/etc/php/php.ini,找到Dynamic Extensions部分,将以下三个模块前面的注释符号去掉然后重启apache:
mysqli,pdo_mysql,iconv
现在可以在客户端浏览器中再次刷新前面提到的PHP测试页面,确认以上三个模块被激活。
将以下内容加入到apache配置文件,并再次重启apache:
Alias /phpmyadmin "/usr/share/webapps/phpMyAdmin"
<Directory "/usr/share/webapps/phpMyAdmin">
DirectoryIndex index.php
AllowOverride All
Options FollowSymlinks
Require all granted
</Directory>
现在在浏览器里输入网址:
<http://your_ip/phpmyadmin>
就可以看到龙芯服务器上的MySQL数据库操作页面了。
六 Moodle系统的安装
任何一种Linux系统的应用软件安装都有两种方式:一是通过系统自己独特的包管理程序,二就是直接源码编译安装。Archlinux的不同之处在于,重要的、常用的关键软件应用软件使用pacman直接安装,就像上面的LAMP的安装那样。而大量的应用软件则依靠社区的AUR方式安装,如果这两种方式都没有包含该软件,那么使用源码自行安装。
Archlinux的AUR中有Moodle,但是我还是采用源码安装的方式。一是AUR中的Moodle不是最新版本,二是它的安装位置我不喜欢,三是安装完之后还要自行添加apache规则。所以我采用源码安装的方式。
6.1 添加或激活必要的php模块
Moodle是个庞大的系统,使用了很多的PHP模块,还需要手动安装的至少有php-gd php-sodium,安装之后话至少要激活intl soap exif gd sodium等模块,就是编辑php.ini文件,把这些模块名字前面的注释符号去掉后重启apache就可以了。
Moodle的安装程序会自行检查是否必需的模块都已经安装,到时候缺啥补啥就可以了。
6.2 PHP配置参数的修改
当前的Archlinux缺省的PHP参数至少要修改两处才能顺利运行Moodle,一是要激活opcache.enable;二是max_input_vars至少要大于等于5000。
6.3 安装Moodle
# tar xzvf moodle-4.1.2.tgz -C /srv/http (当前最新版本,手动下载)
# chown -R http:http /srv/http/moodle
# mkdir /srv/moodledata
# chown http:http /srv/moodledata
之后在客户端使用浏览器打开http://your_ip/moodle完成后续步骤就可以了。