金钱(警告)
** 状态:** 被贬值
如果您目前正在运行运行 Ubuntu 12.04 的服务器,我们强烈建议升级或迁移到支持的 Ubuntu 版本:
** 原因:** Ubuntu 12.04 已于 2017 年 4 月 28 日到期(EOL)并且不再收到安全补丁或更新。
** 相反,请参见:** 本指南可能仍然有用作为参考,但可能不会在其他Ubuntu版本上工作. 如果可用,我们强烈建议使用为您正在使用的Ubuntu版本撰写的指南。
关于这个指南
Moodle是一个非常受欢迎和经验丰富的学习平台,由许多机构使用。虽然设置一个工作心态平台很容易,但对于许多同时使用者来说,运行它更难。
旋转一个Dropplet并创建用户
设置您的VPS
使用Ubuntu 12.04 LTS创建一个新的 dropplet,并设置一个新的用户,该用户将完成大部分服务器侧的工作。
通过 ssh 登录您的服务器(这取决于您的 IP 地址以及您是否已启用 ssh 的根证书):
1ssh -l root your_server_ip
现在创建一个新的用户,并将其添加到sudo
组(我在本教程中将用户称为工作者
):
1adduser worker
2usermod -a -G sudo worker
现在退出并尝试作为新用户登录:
1exit
2
3ssh -l worker your_server_ip
更新您的VPS
是时候更新您的系统,并确保它运行在最新版本:
1sudo apt-get update
2sudo apt-get upgrade
在接下来的步骤中,我们将安装必要的包,然后将其配置为我们的需求。
安装 nginx:
1sudo apt-get install nginx
** 安装php,以及一些 moodle 喜欢的模块:**
1sudo apt-get install php5-fpm php-apc php5-curl php5-gd php5-xmlrpc php5-intl
** 安装 Postgres 作为您的数据库服务器(以及其 PHP 依赖):**
1sudo apt-get install postgresql postgresql-contrib php5-pgsql
** 安裝 git**
Git 对于 moodle 来说很棒,因为它将帮助您保持网站的更新,并且没有更新。
1sudo apt-get install git
在本教程中,我们将使用大多数预先配置的设置,使其简单易于复制。
配置您的VPS
Nginx 已经决定 wwwroot 在 /usr/share/nginx/www
下,这对我们来说很好。
1cd /usr/share/nginx
该目录尚未准备好被任何人访问,因此我们将允许我们的用户独自访问它; moodle 不会写入自己的目录,它将使用我们将在稍后设置的moodledata
目录:
1chown -R $USER:$USER www
2cd www
3
4git clone https://github.com/moodle/moodle.git
这将克隆 github moodle repository在一个名为 moodle 的目录中。现在你可以做很多事情更容易。例如,如果你从另一个托管提供商迁移到DigitalOcean,你可以简单地检查
你上次使用的版本,然后检查最新版本。或者你可以只是坚持稳定版本。有一个简单的代码管理的整个世界为你开放。对于本教程,我们将简单地检查在git中标记
的最新稳定版本。
1cd moodle
2git tag
你会得到一个长的标签列表,迄今为止最新的是v2.5.2. 所以我只会检查这个标签,因为我们正在开始一个干净的安装:
1git checkout v2.5.2
一旦 git 完成了工作,我们处于一个模糊的目录中,它复制了版本 2.5.2 稳定。
如果您需要更新,您可以在几个简单的步骤中做到这一点:
1git fetch
2git merge
3git checkout v2.6.0
在此示例中,您将加载一个 git 树,它提供了 v.2.6.0 标签(目前还不存在)。
调整
在您的 moodle 目录中有一个名为 config-dist.php 的文件。
1nano config-dist.php
有几个值需要更改,以便在您的服务器上工作(为了简单性,评论被删除):
1<?PHP
2unset($CFG);
3global $CFG;
4$CFG = new stdClass();
5$CFG->dbtype = 'pgsql';
6$CFG->dblibrary = 'native';
7$CFG->dbhost = 'localhost';
8$CFG->dbname = 'moodle';
9$CFG->dbuser = 'moodle';
10$CFG->dbpass = 'password';
11$CFG->prefix = 'mdl_';
12$CFG->dboptions = array(
13 'dbpersist' => false,
14 'dbsocket' => false,
15 'dbport' => '',
16);
17$CFG->wwwroot = 'http://domain_or_ip';
18$CFG->dataroot = '/usr/local/moodledata';
19$CFG->directorypermissions = 02777;
20$CFG->admin = 'admin';
21require_once(dirname(__FILE__) . '/lib/setup.php');
一旦您更改了值,您可以将其保存为 config.php 到您的 moodle 目录(请确保使用自己的密码和自己的 wwwroot)。
进一步步骤
刚刚进行的更改为下一个步骤设置了步伐,您需要设置一个 moodle 数据目录和一个缓存目录:
1sudo mkdir /usr/local/moodledata
2sudo mkdir /var/cache/moodle
让它们属于 www-data 用户,简而言之 nginx:
1sudo chown www-data:www-data /usr/local/moodledata
2sudo chown www-data:www-data /var/cache/moodle
第一种是存储用户上传,会话数据和其他东西,只有MODLE需要访问,而不应该从网络上访问。
现在是时候为 moodle 设置数据库的时间了. 要做到这一点,请使用 postgres 用户创建一个名为 moodle 的新角色,然后可以处理您即将创建的 moodle 数据库:
1sudo su - postgres
2pgsql
这将启动一个新的postgres控制台:
1CREATE USER moodle WITH PASSWORD 'password';
2CREATE DATABASE moodle;
3GRANT ALL PRIVILEGES ON DATABASE moodle to moodle;
4\q
使用这些命令,您创建了一个名为moodle
的新数据库用户,您授予了管理您创建的 moodle 数据库所需的所有权限。
退出用户邮件,然后在最后一步中告诉 nginx 如何服务您的文件。
1exit
2
3sudo nano /etc/nginx/sites-available/moodle
它应该看起来像这样:
1server {
2 listen 80;
3 root /usr/share/nginx/www/moodle;
4 server_name example.com;
5 # put your real site address here
6 rewrite ^/(.*\.php)(/)(.*)$ /$1?file=/$3 last;
7
8 location ^~ / {
9 try_files $uri $uri/ /index.php?q=$request_uri;
10 index index.php index.html index.htm;
11
12 location ~ \.php$ {
13 fastcgi_split_path_info ^(.+\.php)(/.+)$;
14 fastcgi_pass unix:/var/run/php5-fpm.sock;
15 include fastcgi_params;
16 }
17 }
18}
启用您的 moodle 网站并删除默认的 symlink:
1sudo rm /etc/nginx/sites-enabled/default
2sudo ln -s /etc/nginx/sites-available/moodle /etc/nginx/sites-enabled/moodle
测试您的 Moodle 平台
在我们终于可以启动我们的服务器之前,有一个小小的变化需要修复,涉及您的nginx配置:
1sudo nano /etc/php5/fpm/pool.d/www.conf
在此文件中,查找Listen = 127.0.0.1:9000
并将其更改为:
1listen = /var/run/php5-fpm.sock
现在开始您的 nginx 服务器和 PHP:
1sudo service nginx start
2sudo service php5-fpm start
此最后一步后,您可以测试您的新的 moodle 平台. 将您的浏览器指向您的域或服务器的 IP 地址。
Moodle在安装时会问你几个问题。
优化您的虚拟服务器
最后,你会想精心调节几件更多的事情。
Cronjobs对于 moodle 来说非常重要,并且在外部运行它们并不像在本地运行它们那么有效。
1sudo su www-data
2crontab -e
添加以下行,它将为您每10分钟运行Cron脚本:
1*/10 * * * * php -q -f /usr/share/nginx/www/moodle/admin/cli/cron.php
保存并返回自己的壳通过键入退出
这是教程的尽头,你的情绪平台现在应该是惊人的快。