如何在 Ubuntu 12.04 VPS 上通过 git 与 Postgres、Nginx 和 PHP 安装 Moodle

金钱(警告)

** 状态:** 被贬值

如果您目前正在运行运行 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

保存并返回自己的壳通过键入退出

这是教程的尽头,你的情绪平台现在应该是惊人的快。

Submitted by: burningTyger
Published At
Categories with 技术
comments powered by Disqus