第1步:安装Ubuntu 16.04 LTS

为什么我们更喜欢Ubuntu服务器而不是Ubuntu桌面

  • 大多数IT专业人员更喜欢使用命令行界面(CLI)服务器,因为它更安全且不易受******。

  • 业余用户可能会发现使用图形(桌面)界面更容易。

  • 如果您只是将Moodle服务器用于本地实验目的,则可能更喜欢安装桌面(64位首选)版本的Ubuntu。

  • 如果您安装仅CLI服务器并稍后后悔,则可以轻松添加图形桌面:

    • 即使大多数专家都不推荐这样做,您也可以通过发出命令'sudo tasksel'并选择(使用空格键)安装'Ubuntu桌面'安装图形用户界面(桌面)

为什么我们更喜欢(或不喜欢)Ubuntu 18.04胜过Ubuntu 16.04胜过Ubuntu 14.04

  • 所有三个包都是LTS(长期服务)版本。

  • Ubuntu Server 18.04和16.04LTS与14.04LTS有一些差异,主要是PHP 7.0

  • Moodle 3.01以后可以使用PHP 7.0

  • 本文档已更新,以反映这些更改。

  • 但请注意,如果您使用的是外部身份验证或注册插件,请注意,在Moodle 3.0.1发布时(2015年12月),php7下既没有MSSQL也没有SQLSRV。因此,任何使用SQL * Server作为主数据库或远程身份验证/注册插件的人都不应该转移到PHP 7此外,根据您的配置,可能会丢失某些扩展(可以安装 memcached ,redis,mongodb,xmlrpc ......)或正在进行分发,三重检查您的操作系统的确切可用性。

程序


服务器版amd64首选

http://www.ubuntu.com/download

http://www.t7yu.com

  • Ubuntu Server 18.04LTS amd64具有所有必需的包。

  • Ubuntu Server 18.04LTS与14.04LTS有一些细微差别,主要是PHP 7.0。本文档已更新,以反映这些更改。

  • Ubuntu有一个众所周知的问题,它的自动更新填满了/ boot目录,直到自动更新开始失败并且无法从/ boot自动删除旧的内核文件。因此,您应该考虑使用大约5Gb的/ boot目录安装Ubuntu并进行一些自动清理。更多信息可以在这里找到 - [1]

  • 你可以使用VI(轻量级编辑器)或VIM(重量级编辑器),但是,如果你想使用VIM,你需要安装它

sudo apt-get install vim

  • VI或VIM命令

要编辑文件,请按“插入”键
要完成编辑,请按“Esc”键
要编写文件,请按“:w” 
要退出编辑器,请按“:q” 
您还可以编写并退出“:wq”

  • 在Ubuntu中,标准用户(您在安装期间创建的帐户)无权安装/写入许多目录。在下面的教程中,我们将在大多数命令之前使用术语“sudo”代表“超级用户做”。

第2步:安装Apache / MySQL / PHP

注意: Moodle 3.0.1 引入了对PHP 7.0的支持,我们将在本教程中使用PHP 7.0


打开终端并安装以下内容;

添加php7 ppa:

sudo add-apt-repository ppa:ondrej / php


sudo apt-get update


sudo apt-get install apache2 mysql-client mysql-server php7.0 libapache2-mod-php7.0

它会提示你设置mysql的root密码 - 拜托,亲爱的朋友们,请写下来,给自己一些悲伤,你需要在第6步。

注意: 即使大多数专家不推荐这样做,您也可以通过发出命令'sudo tasksel'并选择(使用空格键)安装'Ubuntu桌面'安装图形用户界面(桌面)


第3步:安装附加软件

sudo apt-get install graphviz aspell ghostscript clamav php7.0-pspell php7.0-curl php7.0-gd php7.0-intl php7.0-mysql php7.0-xml php7.0-xmlrpc php7.0-ldap php7 .0-zip php7.0-soap php7.0-mbstring

重新启动Apache,以便正确加载模块

sudo service apache2 restart

我们将使用Git来安装/更新Moodle核心应用程序

sudo apt-get install git-core

第4步:下载Moodle(http://www.t7yu.com)

设置本地存储库并下载Moodle,我们将使用/ opt进行此安装。

  • Git就是所谓的“版本控制系统”。通过使用git,可以更轻松地更新moodle核心应用程序。在第5步中,我们将moodle核心应用程序代码放在/ opt目录中。

cd / opt

下载Moodle代码和索引

sudo git clone git://git.moodle.org/moodle.git

将目录更改为下载的Moodle文件夹

cd moodle


检索每个可用分支的列表

sudo git branch -a

告诉git要跟踪或使用哪个分支

sudo git branch --track MOODLE_33_STABLE origin / MOODLE_33_STABLE

最后,查看指定的Moodle版本

sudo git checkout MOODLE_33_STABLE

第5步:将本地存储库复制到/ var / www / html /

sudo cp -R / opt / moodle / var / www / html /


sudo mkdir / var / moodledata


sudo chown -R www-data / var / moodledata


sudo chmod -R 777 / var / moodledata


sudo chmod -R 0755 / var / www / html / moodle


  • 说明:


由于我们在上一步中设置了本地存储库,因此您将在任何更新和更改后将其复制到您的webroot。将您的本地存储库放在webroot之外,就像我们在/ opt中一样,您将能够以更有效的方式准备和升级您的升级。例如,您想要进行一些更改或添加一些插件,您可以下载插件并将其复制到本地moodle存储库。添加插件以及可能进行的任何其他更改后,您需要编辑位于/opt/moodle/.git/info/exclude中的文件。在那个文件中你想告诉git当您运行下一个“sudo git pull”时,当它下拉更新时要排除的文件/文件夹。一个示例条目是位于/ opt / moodle / mod / certificate中的证书mod,因此在排除文件中您要在最后一条注释下面添加“/ mod / certificate”。您可以为每个可能已更改的插件或文件添加其他条目,每行1个。如果我要更改favicon.ico文件,您只需将“favicon.ico”添加到排除文件即可。现在,当您运行“sudo git pull”将moodle更新到最新版本时,它将忽略这些文件和目录,只更新核心moodle代码。在复制到您的webroot进行升级之前,您需要确保并下载并复制您可能已添加的最新版本的插件。

第6步:设置MySQL服务器

首先,我们需要将默认存储引擎更改为innodb并将默认文件格式更改为Barracuda,这是与以前版本相比的新设置。您还需要设置innodb_file_per_table以使Barracuda正常工作。参考:https//dev.mysql.com/doc/refman/5.6/en/innodb-compression-usage.html http://www.t7yu.com

  • 你不应该让innodb成为默认的存储引擎,最新版本的Moodle会在安装过程中自动选择它。无论如何,将它设为默认始终是个好主意。但是,您需要设置默认文件格式!

  • 如果您选择使用VIM,请将vi替换为vim

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

向下滚动到[mysqld]部分,在“基本设置”下,在最后一个语句下添加以下行。如果你想添加,你必须按键盘上的“插入”按钮。这通常在“删除”按钮之上。这允许您添加一些文本。

default_storage_engine = innodb


innodb_file_per_table = 1


innodb_file_format =梭子鱼

为了使用编辑器保存my.cnf,按Esc(Escape)键,依次输入以下内容:w然后关闭编辑器:q

:W


:q

重新启动MySQL Server以使更改生效

sudo服务mysql重启

现在我们需要使用正确的权限创建Moodle数据库和Moodle MySQL用户

使用您在步骤1中创建的密码

mysql -u root -p


MySQL的>

CREATE DATABASE moodle DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

如果它显示“moodledude”和“passwordformoodledude”,您应该更改为您选择的用户名和密码。

MySQL的>

创建用户'moodledude'@'localhost'识别'passwordformoodledude';


MySQL的>

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER on moodle。* to moodledude @ localhost IDENTIFIED BY'passwordformoodledude';


MySQL的>

放弃;

注 - 如果您关心使用MySQL 5.6+并且当您发出create user并获得有关密码哈希的错误时,您需要调整密码以使用哈希值

您可以通过以下方式获得此信息

MySQL的>

SELECT password('passwordformoodledude');


这将打印密码的哈希值,如* AD51BAFB2GD003D3480BCED0DH81AB0BG1712535,您将要在IDENTIFIED BY'部分中使用它

第7步:完成安装

  • 注 - 如果您不方便使用终端创建需要在完成安装程序时创建的config.php文件,则应通过执行以下操作暂时使webroot可写:

sudo chmod -R 777 / var / www / html / moodle

运行安装程序并进行moodle设置后,您需要恢复权限,以便使用以下命令不再可写。

sudo chmod -R 0755 / var / www / html / moodle

打开浏览器并转到http://IP.ADDRESS.OF.SERVER/moodle

按照提示操作:

改变moodledata的路径

在/ var / moodledata

数据库类型

选择:mysqli

数据库设置

主机服务器:localhost

数据库:moodle

用户:moodledude(您在设置数据库时创建的用户)

密码:passwordformoodledude(您创建的用户的密码)

表前缀:mdl_

环境检查

这将指示是否尚未安装运行moodle所需的任何元素。

接下来的下一个......

按照提示并确认安装

创建站点管理员帐户

创建具有站点管理员权限的moodle用户帐户。

您选择的密码必须符合某些安全要求。

安装完成

恭喜!你现在可以开始使用Moodle了!

别忘了

如果您使webroot可写,请还原权限

sudo chmod -R 0755 / var / www / html / moodle

安装后的系统路径

安装Moodle后你应该设置系统路径,这将提供更好的性能VS不设置它们。Moodle中的每个条目都有它的解释。

在moodle网页上导航到“站点管理”>“服务器”>“系统路径”

输入以下内容;

杜的路径:/ usr / bin / du

Apsell的路径:/ usr / bin / aspell

点的路径:/ usr / bin / dot

保存更改


  • 如果您还没有AntiVirus解决方案,则可选

我们还在步骤3中安装了ClamAV,因此我们需要在Moodle中设置路径

1创建隔离目录

sudo mkdir / var / quarantine

改变所有权

sudo chown -R www-data / var / quarantine

导航到“站点管理”>“插件”>“防病毒插件”>“管理防病毒插件”

启用ClamAV防病毒软件

单击“设置”

设置正确的设置

保存更改

在之前的Moodle分支中:选中“在上传的文件上使用ClamAV”ClamAV路径:/ usr / bin / clamscan隔离目录:/ var / quarantine

保存更改

建议:启用Zend OpCache / Change Document Root

  • 由于我们已经安装了Ubuntu Server 14.04LTS,我们可以使用内置的PHP OPcache,https://docs.moodle.org/26/en/OPcache

在上面的链接中,https://docs.moodle.org/26/en/OPcache将建议的设置添加到您的05-opcache.ini文件中。再次,用vim替换vi并记住使用引言中的正确密钥序列。

sudo vi /etc/php5/apache2/conf.d/05-opcache.ini

注意:在Ubuntu 16.04中,opcache.ini位于:

/etc/php/7.0/mods-available/opcache.ini

重新启动Apache以使更改生效。

sudo service apache2 restart

这就是Zend OpCache!

您还可以安装GUI以查看Zend OpCache的状态,不建议在生产服务器上使用。

cd / var / www / html / moodle /

将PHP脚本下载到Moodle目录,您还应该将此文件添加到/opt/moodle/.git/info/exclude文件中,以便在升级安装时不会删除它。

sudo wget https://github.com/rlerdorf/opcache-status/blob/master/opcache.php

访问http://ip.address.of.server/moodle/opcache.php

访问http://www.t7yu.com

如果您不希望最终用户键入http:// yourserver / moodle并且只是希望它们导航到http:// youserver,则需要编辑Apache的站点配置,这将告诉Apache使用/ var / www / html / moodle作为根目录而不是/ var / www / html

打开Apache站点配置并更改文档根目录

sudo vi /etc/apache2/sites-available/000-default.conf

在DocumentRoot所在的行;


更改自:DocumentRoot / var / www / html 

更改为:DocumentRoot / var / www / html / moodle

:W

 

:q

重新启动Apache以使更改生效。

sudo service apache2 restart

重要的提示!

如果您已经安装了Moodle,那么您应该进行以下更改。

编辑moodle的config.php

在安装说明中,“webroot”的建议设置之一是“localhost”。如果你想要做的就是对你的新Moodle安装进行一些本地测试,这很好。但是,如果要从同一局域网中的其他计算机查看新安装,或者在Internet上查看您的站点,则必须更改此设置:

对于本地测试,'localhost'适用于webroot($ CFG-> wwwroot in config.php)。如果要从同一局域网(LAN)上的其他计算机测试您的站点,则必须使用服务计算机的私有IP地址(例如192.168.1.2/moodle)或服务的网络名称计算机(例如network_name_of_serving_machine / moodle)作为Web根目录。根据您的LAN设置,最好使用计算机的网络名称而不是其(私有)IP地址,因为IP地址可以并且将不时更改。如果您不想使用网络名称,则必须与网络管理员联系并让他们为服务机器分配永久IP地址。最后,如果您想通过互联网测试新安装,您必须使用域名或永久(公共)IP地址/ moodle作为您的Web根目录。要处理这两种类型的访问,请参阅伪装。


编辑Moodle的config.php

cd / var / www / html / moodle sudo vim config.php

点击键盘上的“插入”按钮,然后进行需要进行的更改。然后按“escape”并键入以下内容以退出并保存更改(不包括引号):“:wq”

在$ CFG- > wwwroot下更改为http://ip.address.of.server而不是http://ip.address.of.server/moodle


在一个Ubuntu服务器中托管几个Moodle分支

  • 这对语言包维护者来说非常有用,可以在几个Moodle分支中测试翻译。

  • 对于开发人员来说,在不同的Moodle分支中测试他们的插件也非常有用。

  • 只需为Web文件夹中的每个实例创建一个文件夹,这就足够了。

  • 要访问这些站点,您只需将该文件夹添加到localhost URL:http:// localhost / moodle31

  • 您可以为1.9到3.1之间的每个版本创建一个实例

  • 您确实需要为每个实例和单独的数据库创建单独的数据文件夹(您可以使用phpmyadmin设置数据库,但这不是必需的),将每个实例添加到其自己的文件夹中,并继续执行上述操作。您还可以在其单独的文件夹中托管其他服务(例如,Mahara)。

例1

  • 因此,一台Linux笔记本电脑上的一个示例文件夹树(实际服务器会更多)可能看起来像:

VAR

- 万维网

   ---- maharadata
   ---- moodlecleandata
   ---- moodlestabledata
   ---- moodlemasterdata
   ---- moodletestingdata
   ---- uswmoodledata
   ---- HTML
       ------马哈拉
       ------ moodleclean
       ------ moodlestable
       ------ moodlemaster
       ------ moodletesting
       ------ uswmoodle

例2

  • 在单个(CentOS X)服务器上有几个沙盒Moodles所有不同的版本..只有那些支持安全修复及以上的 - 2.7,2.8,2.9,3.0,现在是3.1。几乎是'股票'的Moodles,只有偶尔的插件等,用于测试。

  • 它们都有各自的代码和数据目录以及它们各自的DB。

  • 提示:使用git安装和维护它们...即使你不喜欢/喜欢命令行,这是迄今为止更新和/或升级站点的最有效方法。

/var/www/html/moodle27/version.php:$release ='2.7.14(Build:20160509)'/var/www/html/moodle28/version.php:$release = '2.8.12(Build:20160509)'/var/www/html/moodle29/version.php:$release ='2.9.6+(Build:20160520)'/var/www/html/moodle30/version.php:$release ='3.0.4+(Build:20160603)'/var/www/html/moodle31/version.php:$release ='3.1+(Build:20160603)'

  • git -b命令将站点锁定到随git命令的其余部分提供的版本中...例如,安装3.1,这是一个长期支持版本,安装了git -b选项。不要计划升级或测试升级。

git clone -b MOODLE_31_STABLE git://git.moodle.org/moodle.git moodle31

  • 我在该服务器上的所有其他moodles都是通过git安装的

git clone git://git.moodle.org/moodle.git [nameofdir]

  • 然后从nameofdir

git branch --track MOODLE_2#_STABLE origin / MOODLE_2#_STABLEgit checkout MOODLE_2#_STABLE

  • 2#是版本号。

  • 这样就可以让那个moodle向上游......更高的分支。因此,可以测试升级(而不是'更新')。

  • 第二种方法'gits'更多的代码和备份将在5+ Meg范围内,因为所有旧版本的git东西3.1更少(限于3.1分支):

  • 545M ./moodle296-code-20160604145012.tar

  • 193M ./moodle31+-code-2016060883737.tar