【转】在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 ...
随机推荐
- 如何清理Windows缩略图缓存?
从Win95的IE4开始就有缩略图缓存了,缩略图缓存作用主要是用于存储Windows资源管理器缩略图图像文件.这加快了图像的显示速度,因为每次用户查看文件夹时都不需要重新生成这些较小的图像.缩略图缓存 ...
- Visual Studio 2012 未找到与约束 ContractName问题,及printf unsafe问题
1.用VS 2012 创建c++项目失败,提示未找到与约束 ContractName .............的错误 解决办法:下载VS 2012 补丁,很小的一个补丁,不过很管用 地址:http: ...
- python:常用模块二
1,hashlib模块---摘要算法 import hashlib md5 = hashlib.md5() md5.update('how to use md5 in python hashlib?' ...
- GetClassLoader和GetCallerClass的使用
GetClassLoader是JAVA中用来得到ClassLoader的 JAVA中有以下几种ClassLoader. 1. Bootstrap ClassLoader - GetClassLoad ...
- 【洛谷P1774】最接近神的人
最接近神的人_NOI导刊2010提高(02) 用类似于桶的方法,树状数组记录原序列的某位置之前已经插入了多少个数, 插入时树状数组单点加1即可 先排一遍序,从大到小插入所有数在原序列的位置, 统计每次 ...
- bootstrap-table表格导出
在bootstrap-table官网->拓展模块中有导出模块的详细介绍.网址:http://bootstrap-table.wenzhixin.net.cn/zh-cn/extensions/ ...
- svn使用过程中遇到的问题
前言:记录一下svn使用的过程中遇到的问题 最近的公司使用的svn来管理项目,因为这个项目接手过来已经有至少一年多的工龄了,所以暂且还是也用svn来处理吧,如果要是做新项目的话,真心地希望使用Git来 ...
- vue源码解读1
前言 vue是一个非常典型的MVVM框架,它的核心功能一是双向数据绑定系统,二是组件化开发系统.那么本文是以一种通俗易懂的的角度来实现一个简单 的双向数据绑定系统,如果你用过vue却对vue的实现原理 ...
- spring入门(八) spring mvc设置默认首页
1.web.xml配置如下 <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3// ...
- js的事件流你真的弄明白了吗?
当浏览器发展到第四代时候,浏览器开发团队遇到了一个有意思的问题:页面的哪一部分会拥有某个特地的事件?要明白这个问题问的是什么,可以想象画在纸上的一组同心圆,如果你把手指放在圆心上,那么你的手指指向的不 ...