第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