Ubuntu12.04VPSにPostgres、Nginx、PHPを使用してgit経由でMoodleをインストールする方法
ステータス:非推奨
この記事では、サポートされなくなったバージョンのUbuntuについて説明します。 現在Ubuntu12.04を実行しているサーバーを運用している場合は、サポートされているバージョンのUbuntuにアップグレードまたは移行することを強くお勧めします。
理由: Ubuntu 12.04は2017年4月28日に保守終了(EOL)に達し、セキュリティパッチまたはアップデートを受信しなくなりました。 このガイドはもう維持されていません。
代わりに参照してください:このガイドは参照として役立つ場合がありますが、他の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プラットフォームは非常に高速になります。 楽しみ。