ステータス:非推奨

この記事では、サポートされなくなったバージョンのUbuntuについて説明します。 現在Ubuntu12.04を実行しているサーバーを運用している場合は、サポートされているバージョンのUbuntuにアップグレードまたは移行することを強くお勧めします。

理由:
Ubuntu 12.04は2017年4月28日に保守終了(EOL)に達しました and no longer receives security patches or updates. This guide is no longer maintained.

代わりに参照してください:このガイドは参照として役立つ場合がありますが、他のUbuntuリリースでは機能しない場合があります。 可能な場合は、使用しているUbuntuのバージョン用に作成されたガイドを使用することを強くお勧めします。 ページ上部の検索機能を使用して、より新しいバージョンを見つけることができます。

このガイドについて


Moodle は、多くの教育機関で使用されている非常に人気のある経験豊富な学習プラットフォームです。 動作するmoodleプラットフォームをセットアップするのは簡単ですが、多くの同時ユーザーにとってスムーズに実行するのは非常に困難です。 したがって、このガイドで採用されている設計上の選択のいくつかは、この問題を解決し、一般的な使用例に対してクリーンで高速なソリューションを提供しようとします。

ドロップレットを回転させてユーザーを作成する


VPSの設定


Ubuntu 12.04 LTSで新しいドロップレットを作成し、サーバー側の作業のほとんどを実行する新しいユーザーを設定します。

ssh経由でサーバーにログインします(これはIPと、sshのルート証明書を有効にしたかどうかによって異なります)。

ssh -l root your_server_ip

次に、新しいユーザーを作成し、それをsudoグループに追加します(このチュートリアルでは、ユーザーをworkerと呼びます)。

adduser worker
usermod -a -G sudo worker

次に、ログアウトして、新しいユーザーとしてログインしてみます。

exit

ssh -l worker your_server_ip

VPSを更新する


システムを更新し、最新のリリースで実行されることを確認します。

sudo apt-get update
sudo apt-get upgrade

次の手順では、必要に応じてパッケージを構成する前に、必要なパッケージをインストールします。

nginxをインストールします:

sudo apt-get install nginx

moodleが利用できるようにしたいいくつかのモジュールと一緒にphpをインストールします:

sudo apt-get install php5-fpm php-apc php5-curl php5-gd php5-xmlrpc php5-intl

Postgresをデータベースサーバー(およびそのphp依存関係)としてインストールします。

sudo apt-get install postgresql postgresql-contrib php5-pgsql

gitをインストールします

Gitは、更新の手間をほとんどまたはまったくかけずにサイトを最新の状態に保つのに役立つため、moodleに最適です。

sudo apt-get install git

これで、すべてのパッケージを実行する準備が整いました。 このチュートリアルでは、ほとんどの事前構成された設定を使用して、シンプルで簡単に再現できるようにします。

VPSの設定


Nginxは、wwwroot/usr/share/nginx/wwwの下にあると判断しました。これは私たちにとっては問題ありません。 ここにmoodleをインストールします:

cd /usr/share/nginx

ディレクトリには誰もアクセスする準備ができていないため、ユーザーのみがディレクトリにアクセスできるようにします。 moodleはそれ自身のディレクトリに書き込みません、それは後の段階でセットアップするmoodledataディレクトリを使用します:

chown -R $USER:$USER www 
cd www  

git clone https://github.com/moodle/moodle.git

これにより、githubmoodleリポジトリmoodleというディレクトリに複製されます。 これで、多くのことがはるかに簡単になります。 たとえば、別のホスティングプロバイダーからDigitalOceanに移動した場合は、最後に使用したバージョンを「チェックアウト」してから、最新バージョンをチェックアウトできます。 または、安定したリリースに固執することもできます。 シンプルなコード管理の全世界があなたに開かれています。 このチュートリアルでは、gitで「タグ付け」された最新の安定バージョンを確認するだけです。 最新のバージョンを見つけるには、次のようにします。

cd moodle
git tag

タグの長いリストが表示されます。この日付までの最新のものはv2.5.2です。 クリーンインストールから始めているので、このタグをチェックアウトします。

git checkout v2.5.2

これでgitマジックが発生します。 gitがその仕事を終えると、バージョン2.5.2の安定版を複製するmoodleディレクトリに移動します。 完全。

更新が必要な場合は、いくつかの簡単な手順で更新できます。

git fetch
git merge
git checkout v2.6.0

この例では、タグv.2.6.0を提供するgitツリーをロードします(この時点ではまだ存在していません)。 次に、moodle管理ページに移動してデータベースの更新を続行します。

調整


あなたのmoodleディレクトリにconfig-dist.phpというファイルがあります。 開いて編集します。

nano config-dist.php

サーバーで動作するために変更する必要のある値がいくつかあります(簡単にするためにコメントは削除されています)。

<?PHP
unset($CFG);
global $CFG;
$CFG = new stdClass();
$CFG->dbtype    = 'pgsql';
$CFG->dblibrary = 'native';
$CFG->dbhost    = 'localhost';
$CFG->dbname    = 'moodle';
$CFG->dbuser    = 'moodle';
$CFG->dbpass    = 'password';
$CFG->prefix    = 'mdl_';
$CFG->dboptions = array(
    'dbpersist' => false,
    'dbsocket'  => false,
    'dbport'    => '',   
);
$CFG->wwwroot   = 'http://domain_or_ip';
$CFG->dataroot  = '/usr/local/moodledata';
$CFG->directorypermissions = 02777;
$CFG->admin = 'admin';
require_once(dirname(__FILE__) . '/lib/setup.php');

これは完全な構成ファイルです。 値を変更した後、それを config.php としてあなたのmoodleディレクトリに保存することができます(あなた自身のパスワードとあなた自身のwwwrootを使用することを忘れないでください)。

さらなるステップ


実行したばかりの変更により、これらの次のステップのペースが決まります。 あなたはmoodleデータディレクトリとキャッシュディレクトリを設定する必要があります:

sudo mkdir /usr/local/moodledata
sudo mkdir /var/cache/moodle

それらをwww-dataユーザー(略してnginx)に属するようにします。

sudo chown www-data:www-data /usr/local/moodledata    
sudo chown www-data:www-data /var/cache/moodle

1つ目は、ユーザーのアップロード、セッションデータ、およびmoodleのみがアクセスする必要があり、Webからアクセスできないその他のものを保存することです。 キャッシュストアは、ファイルを保存してキャッシュを高速化するのに役立ちます。

それでは、moodle用のデータベースをセットアップしましょう。 これを行うには、 postgres ユーザーを使用して、moodleと呼ばれる新しいロールを作成します。これにより、作成しようとしているmoodleデータベースを処理できるようになります。

sudo su - postgres
pgsql

これにより、新しいpostgresコンソールが起動します。

CREATE USER moodle WITH PASSWORD 'password';
CREATE DATABASE moodle;
GRANT ALL PRIVILEGES ON DATABASE moodle to moodle;
\q

これらのコマンドを使用して、「moodle」と呼ばれる新しいデータベースユーザーを作成し、これも作成したmoodleデータベースを管理するために必要なすべての権限を付与しました。 シェルに戻るには、\qコマンドを使用します。

ユーザーpostgresを終了し、最後のステップで、nginxにファイルの提供方法を指示します。 これを行うには、nginxホストファイルを作成します。

exit

sudo nano /etc/nginx/sites-available/moodle

次のようになります。

server {
    listen 80;
    root /usr/share/nginx/www/moodle;
     server_name example.com;
     # put your real site address here
     rewrite ^/(.*\.php)(/)(.*)$ /$1?file=/$3 last;

     location ^~ / {
         try_files $uri $uri/ /index.php?q=$request_uri;
         index index.php index.html index.htm;

         location ~ \.php$ {
             fastcgi_split_path_info ^(.+\.php)(/.+)$;                 
             fastcgi_pass unix:/var/run/php5-fpm.sock;
             include fastcgi_params;
         }
     }
}    

moodleサイトを有効にして、デフォルトのシンボリックリンクを削除します。

sudo rm /etc/nginx/sites-enabled/default
sudo ln -s /etc/nginx/sites-available/moodle /etc/nginx/sites-enabled/moodle

Moodleプラットフォームをテストする

最終的にサーバーを起動する前に、nginx構成に関連して修正する必要のある小さな変更が1つあります。

sudo nano /etc/php5/fpm/pool.d/www.conf

このファイルでlisten = 127.0.0.1:9000を見つけて、次のように変更します。

listen = /var/run/php5-fpm.sock        

次に、nginxサーバーとphpを起動します。

sudo service nginx start
sudo service php5-fpm start

この最後のステップの後、新しいmoodleプラットフォームをテストできます。 ブラウザでドメインまたはサーバーのIPアドレスを指定します。

Moodleはインストール中にいくつか質問をします。

仮想サーバーの微調整


最後に、さらにいくつかのことを微調整する必要があります。

cronジョブはmoodleにとって非常に重要であり、オフサイトで実行することはローカルで実行するほど効果的ではありません。 www-dataユーザーのcronタブに短いコマンドを追加できます。

sudo su www-data
crontab -e

これにより、エディターが開きます。 次の行を追加します。これにより、10分ごとにcronスクリプトが実行されます。

    */10 * * * * php -q -f /usr/share/nginx/www/moodle/admin/cli/cron.php

「exit」と入力して、保存して独自のシェルに戻ります

これでチュートリアルは終了です。 これで、moodleプラットフォームは非常に高速になります。 楽しみ。

提出者:http: //farhang.im