【转】在Ubuntu 16.10 Server 上部署 Moodle
第一步 安装 Ubuntu 16.10 Server LTS
Moodle 的官方文档肯定了Ubuntu Server LTS 是适合运维Moodle平台的。
1、使用纯代码交互的服务器Ubuntu更加安全、稳定,不容易被黑客攻击。
2、即便在部署了服务器版本的Ubuntu后发现无法适应,也可以自行添加图形界面。
使用Ubuntu 16.* 的优势和需要注意的地方:
1、Ubuntu 16.* 支持 PHP7.0。
2、Moodle 3.01 以及之后的版本都可以使用 PHP7.0。
3、需要注意的是, Moodle3.0.1版本在使用PHP7.0的环境下不支持使用 MSSQL 和 SQLSRV。
Ubuntu 16.10 Server的下载地址:ubuntu官方下载页
Ubuntu 16.10 Server的安装和基本部署教学:Ubuntu 16.10 Server 安装及基本部署
Moodle官方更加推荐使用 amd64的版本 (64位版本)的Ubuntu Server。
第二步 安装LAMP (Linux/Apache/Mysql/PHP)环境
在终端输入以下指令:
sudo apt-get update #更新软件源
sudo apt-get install apache2 mysql-client mysql-server php7.0 libapache2-mod-php7.0
在mysql-server的安装过程中,会出现需要填写密码的对话框,如果你对数据库有安全性需求,建议输入密码并牢记。

第三步 安装其它所需的软件
在终端输入:
sudo apt-get install graphviz aspell 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
graphviz: 是AT&T Labs Research开发的图形绘制工具,他可以很方便的用来绘制结构化的图形网络,支持多种格式输出,生成图片的质量和速度都不错。
aspell:Vim 下拼写检查工具。用于代码拼写检查。
php7.0-pspell : 针对php语言的拼写检查工具。
php7.0-curl:php语言下,使用URL语法在命令行方式下工作的开源文件传输工具。
php7.0-gd: php处理图形的扩展库,提供一系列用来处理图片的API。
php7.0-intl : 国际化扩展,是ICU库的一个包装器。
php7.0-mysql : php 7.0 的 MySQL扩展,用于php与MySQL的连接和通信。
php7.0-xml : php 7.0 的 xml 扩展库。
php7.0-xmlrpc : php 7.0 的 XML-RPC 扩展。用于实现应用的分布式计算。
php7.0-ldap : php 7.0 的轻量目录访问协议 (Lightweight Directory Access Protocol)。用于目录检索和LDAP认证。
php7.0-zip : php 7.0 的 zip 扩展,用于解压缩文件。
php7.0-soap :php 7.0 的 soap 扩展 (Simple Object Access Protocol)。它是一种基于 XML 的,可扩展的通信协议。SOAP 提供了一种标准,使得运行在不同平台上并使用不同的编程语言编写的应用程序可以互相进行通信。
php7.0-mbstring :php 7.0 的 mbstring 扩展(Multi-Byte String)。使php 能够支持更多的字符类型,和多种语言编码。主要是unicode。
sudo service apache2 restart #重启Apache服务器,载入新安装的模块。
sudo apt-get install git-core #使用Git 来安装和更新 Moodle应用。
第四步 下载Moodle
我们准备将Moodle放在 /opt (Optional Application Software Packages 可选的应用安装包)目录下。在终端中输入:
cd /opt # 定位到 /opt 目录下
sudo git clone git://git.moodle.org/moodle.git #将moodle 从git库中克隆到本地目录 (根据网络情况,可能会出现克隆失败)
cd moodle #定位到 moodle目录下
sudo git branch -a #检索可用的每个Moodle版本分支列表
sudo git branch --track MOODLE_32_STABLE origin/MOODLE_32_STABLE #选择将要使用的Moodle版本号
sudo git checkout MOODLE_32_STABLE # 将选择的Moodle版本下载到本地

第五步 部署本地存储库到网页服务器上
在终端中输入:
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
第六步 设置 MySQL 服务器
首先,我们需要将默认存储引擎更改为innodb,并将默认文件格式更改为Barracuda。同时还需要设置innodb_file_per_table以便Barracuda能够正常工作。
在终端中输入:
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf # 用vim编辑mysql的配置文档,也可以用vi打开。
在新打开的文档中,找到 【mysqld】小结,在 【Basic Setting】下加入以下语句。(在Vim或者Vi环境下,需要在键盘上按下Insert键才能进行输入操作,或者按下字母I)。
default_storage_engine = innodb
innodb_file_per_table = 1
innodb_file_format = Barracuda

然后保存文档:
Ctrl + C 或者 Esc
:w #保存文档
:q #退出文档
重启MySQL服务器,在终端输入:
sudo service mysql restart
接下来,我们将在MySQL中创建Moodle的依赖数据库,并给予Moodle用户以正确的操作权限。
在终端输入:
mysql -u root -p #进入mysql的管理模式
输入你之前创建的管理员密码
接下来,在MySQL的管理模式下,输入:
mysql > CREATE DATABASE moodle DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
这样我们就在MySQL中创建了叫moodle的数据库并定义了数据库字符集的相关参数。
mysql > CREATE USER '用户名'@'localhost' IDENTIFIED BY '密码';
创建用户,在 ‘用户名’处填入你所要创建的用户名称,并在 '密码'处填入你想设置的密码。例如:
mysql > CREATE USER 'moodle123'@'localhost' IDENTIFIED BY '123456';
mysql > GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodle.* TO 用户名@localhost IDENTIFIED BY '密码';
把以上一些列的操作权限授予我们刚创建的用户。
mysql > quit; #退出MySQL管理界面
第七步 完成设置
在终端输入:
sudo chmod -R 777 /var/www/html/moodle #临时开放webroot目录的读写权限
打开你的浏览器,在地址栏输入 http://你的服务器IP地址/moodle. 首次打开会显示如下界面:选择简体中文或者根据你的需求来定制。

第二步,部署Moodle路径。这里只需要将数据目录修改为 /var/moodledata 就可以。

注意,点击向后之后,部分用户可能会出现中文语言包无法下载而导致只能使用英语的提示性文字。可以通过终端的 wget 命令手动下载所需的语言包,并解压到 /var/moodledata/lang 目录下。以中文语言包为例:
wget -c https://download.moodle.org/download.php/langpack/3.2/zh_cn.zip
unzip zh_cn.zip
sudo mv zh_cn /var/moodledata/lang
(由于网络问题,也可能出现 wget 方法无法下载语言包的问题。可以通过windows平台的浏览器把语言包下载好,再通过PSFTP (PuTTY) 工具将文件传到你的服务器上。)
接下来,选择数据库驱动,选择改进的MySQL(native/mysql)并点击向后。并对数据库进行设置,填入之前在MySQL管理模式下设置的moodle数据库的用户名和密码,并点击向后。


接下来,阅读版权申明并点击继续。
环境检查,只有在服务器满足所有最低需求的情况下才能继续安装。

接下来就等待安装完成,提示创建你的Moodle平台的管理员账户。
至此,Moodle平台的安装就全部结束了。别忘记在安装完成后,在终端输入:
sudo chmod -R 0755 /var/www/html/moodle #收回写权限,保证平台的安全。
最后,祝你使用魔灯愉快。

作者:蒋承爱拖延
链接:http://www.jianshu.com/p/f303ba56ce9e
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
【转】在Ubuntu 16.10 Server 上部署 Moodle的更多相关文章
- 在 Ubuntu 14.10 Server 上安装 Jetty
Jetty提供了一个Web服务器和javax.servlet容器,为SPDY.WebSocket.OSGi.JMX.JNDI.JAAS以及许多其它集成套件添加了支持.这些组件都是开源的,也可用于商业用 ...
- [【转】ubuntu 16.10 Server 安装及基本部署
一.Ubuntu Server 16.10 LTS 系统安装 Ubuntu 16.10 分为 桌面版 (desktop)和服务器版(Server).两者对于用户而言,最大的区别在于桌面版有图形操作界面 ...
- Ubuntu 16.10 server 相关
1)安装图形化界面 sudo apt-get install xinit sudo apt-get install gnome 2)启用root账号 ① sudo passwd root ② 修改/e ...
- Ubuntu 11.10 Server下搭建Maven私服
安装Nexus服务的文档可以参考官方站点:http://www.sonatype.com/books/nexus-book/reference/install-sect-install.html ...
- Ubuntu 16.10 Apache PHP Server
/******************************************************************************************* * Ubunt ...
- 在VMware Workstation上安装Ubuntu 16.04 Server操作系统
Ubuntu 16.04 Server的下载 http://www.ubuntu.org.cn/download/server 按空格键(Space)选中第一个ssh服务 成功!
- 在 Ubuntu 14.04 服务器上部署 Hexo 博客
版权声明:本文由宋秉金 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/241080001487926962 来源:腾云阁 ...
- Docker - 在Ubuntu 14.04 Server上的安装Docker
在 Ubuntu 14.04 Server 上安装过程是最简单的, 其满足了安装 Docker的所有要求,只需要执行如下安装脚本即可. 如果你有可能,请使用14.04版本的Ubuntu, 避免给自己挖 ...
- 记一次Ubuntu 16.04 server安装中的坑
最近博主搞了一台迷你主机,又刚好有时间去折腾,所以我打算把这台机子打造成一台迷你服务器,用来跑跑爬虫.挂挂网站 介于我我这台机子的配置比较垃圾(intel J1900+4G+64G),跑起Window ...
随机推荐
- 描边时消除锯齿SetSmoothingMode
SmoothingModeAntiAlias 指定消除锯齿的呈现. SmoothingModeDefault 指定默认模式. SmoothingModeHighQuality 指定高质量.低速度呈现. ...
- SONA Topology
N多年以前就有有人设计传了一种类似“房子”状结构的拓扑图,在Cisco的文档中可以查到这种叫SONA.这是个非常神奇的设计,适合用于中小型网络,之所以这么讲,是因为在这个结构下,但凡任何一台接入层或者 ...
- 谣言粉碎机 - 极短时间内发送两个Odata request,前一个会自动被cancel掉?
背景 有时我们能在Chrome开发者工具的Network tab里观察到SAP UI5应用会发出某些状态为"取消"的OData请求.如下图第五个请求. 之前有一种似是而非的说法:极 ...
- ubuntu 可以加速播放的播放器SMPlayer 16.4安装
直接贴命令 sudo apt-add-repository ppa:rvm/smplayer sudo apt-get update sudo apt-get install smplayer smp ...
- 数字(int)转字符串和字符串转数字(int)
室友去面试,问了一个字符串转成数字的算法题,室友没搞出来,我心想,这个不是很简单的吗?于是动手在纸上画了画代码.画完后,总感觉哪里不对,最后一个个挖掘,才发现,尼玛,这到处都是坑啊---特此记录一下中 ...
- 【[SDOI2010]粟粟的书架】
第一问的做法好像不太一样 首先第二问非常简单,直接在主席树上二分就好了,单次查询的复杂度\(O(logn)\) 第一问并没有想到有二分这种神仙操作,依旧用的是主席树 我们可以对矩阵建出主席树,也就是像 ...
- 2017.9.1 Java中的程序方法
今日内容介绍 1.方法基础知识 2.方法高级内容 3.方法案例 01方法的概述 * A: 为什么要有方法 * 提高代码的复用性 * B: 什么是方法 * 完成特定功能的代码块. 02方法的定义格式 * ...
- H5中的微信支付、支付宝支付
微信支付的申请: 公众号支付.扫码支付等在微信公众平台.移动端的申请在微信开放平台 公众号支付流程:申请微信公众号(服务号并完成微信认证)——申请微信支付商户号(申请微信支付,资料审核通过以后,请前往 ...
- PAT (Basic Level) Practise (中文)-1040. 有几个PAT(25)
1040. 有几个PAT(25) http://www.patest.cn/contests/pat-b-practise/1040 字符串APPAPT中包含了两个单词“PAT”,其中第一个P ...
- 【luogu P3884 [JLOI2009]二叉树问题】 题解
题目链接:https://www.luogu.org/problemnew/show/P3884 对方不想和你说话并向你扔了一个lca模板. #include <cstdio> #incl ...