コマンドラインによる管理

提供:MoodleDocs
2015年4月17日 (金) 15:24時点におけるMitsuhiro Yoshida (トーク | 投稿記録)による版 (Mits がページ「コマンドライン経由の管理」を「コマンドラインによる管理」に移動しました)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先:案内検索

あなたのウェブサーバにシェルアクセスできる場合、Moodle管理に有用な様々なCLI (command line interface コマンドライン・インターフェース) を見つけることができるでしょう。すべてのコマンドラインツールは「admin/cli/*」ディレクトリ内にあります。アクセスコントロールの問題を避けるには、ウェブサーバプロセスのオーナーとして実行してください。CLIによるインストールおよびアップグレード時に新しいファイルをmoodledataディレクトリに作成するため、ウェブサーバにディレクトリへの書き込み権限が与えてあることは特に重要です。Linuxディストリビューションでは、通常ウェブサーバを実行するユーザは「apache」または「wwrun」または「httpd」のようになっています。恐らく、あなたはrootとして次のようにMoodle CLIスクリプトを実行したいことでしょう:

   $ cd /path/to/your/moodle/dir
   $ sudo -u apache /usr/bin/php admin/cli/somescript.php --params

使用方法の詳細説明を表示するため、ほとんどのスクリプトでは一般的な --help (または -h) パラメータを使うことができます。例えば下記のように使います:

   $ sudo -u apache /usr/bin/php admin/cli/install.php --help


コマンドライン経由のインストール

バージョン2.0以降、Moodleではコマンドラインを使ってインストールすることができます。インストールには2つのモードがあります。インタラクティブモードでは、インストールスクリプトが新しいMoodleサイトをセットアップするために必要なデータすべてに関して、あなたに尋ねます。非インタラクティブモードでは、あなたはスクリプトパラメータとして、すべての必須データを提供することにより、新しいサイトが静かにインストールされます。インタラクティブモードでもパラメータを渡すことができます。渡された値はインタラクティブセッション中、デフォルト値として使用されます。

   $ sudo -u apache /usr/bin/php admin/cli/install.php --lang=cs

メンテナンスモード

あなたのサイトをCLI経由でメンテナンスモードにスイッチするには、下記コマンドを実行してください。

   $ sudo -u apache /usr/bin/php admin/cli/maintenance.php --enable

メンテナンスモードをOFFにするには、同様のスクリプトを --disable parameter オプションを付けて実行してください。

オフラインモード

場合によってはウェブ経由でアクセスできないよう、あなたのMoodleサイトをオフラインモードにスイッチしたいこともあるでしょう。しかし、ウェブサーバを完全に停止することはできません (一般的に他のページが存在しているか、他のアプリケーションが動作しているからです)。moodledataディレクトリのルートフォルダ内に「climaintenance.html」というファイル名のファイルが存在する場合、Moodleはこのファイルのコンテンツを他のページの代わりに表示します。

   $ cd /var/www/sites/moodle/moodledata/
   $ echo '<h1>Sorry, maintenance in progress</h1>' > climaintenance.html

あなたのユーザにサーバ停止を知らせるため、moodledataディレクトリ内にHTMLフォーマットで作成したclimaintenance.offのような名称のファイルを準備することができるでしょう。そして、必要に応じて、そのファイルをclimaintenance.htmlにリネームすることができます。

コマンドラインを使ったアップグレード

コマンドラインからMoodleをアップグレードすることもできます。インストールスクリプトと同じように、アップグレードにはインタラクティブおよび非インタラクティブモードがあります。スクリプト自体はサイトをメンテナンスモードにしないため、あなた自身でスイッチする必要があります。また、このスクリプトはデータをバックアップしません (恐らく、このドキュメントを読んでいるあなたはmoodledataおよびデータベースをバックアップする独自スクリプトをお持ちですよね?)。

   $ sudo -u apache /usr/bin/php admin/cli/upgrade.php --non-interactive

あなたがMoodleコードの取得にCVSまたはgitを使用している場合、コマンドライン経由でのアップグレードは非常に快適な方法です。以下の手順では、最終的なローカルのカスタマイズを保持したままgitリポジトリでトラック (追跡 track) して、あなたのサイトを数秒で最新バージョンにアップグレードする方法を記します:

   $ cd /var/www/sites/moodle/htdocs/
   $ git fetch
   $ sudo -u apache /usr/bin/php admin/cli/maintenance.php --enable
   $ git merge origin/cvshead
   $ sudo -u apache /usr/bin/php admin/cli/upgrade.php
   $ sudo -u apache /usr/bin/php admin/cli/maintenance.php --disable

コマンドライン経由でのアップグレードの問題

あなたのconfig.phpが複数のMoodleインスタンスの情報を含んでいる場合 (同じコードを共有している異なるMoodleウェブサイトおよびデータベース)、このスクリプトは静かに実行失敗となります。

解決用法は、あなたがアップグレードしたいインスタンス以外、すべてのインスタンスをconfig.phpから一時的に取り除くことです。

これが他のインスタンス (実運用サイト) の問題である場合、config.phpのコピー (1つのMoodleインスタンスのみ含むよう編集したconfig.php) を指すよう、cliスクリプトを修正してください。

カスタムサイトデフォルト

CLI経由でのインストールおよびアップグレード中、Moodleは管理変数をデフォルトに設定します。あなたは異なるデフォルト値を使用することができます。詳細は、 MDL-17850をご覧ください。手短に言えば、あなたがやるべきことはlocal/defaults.phpファイルをインストール済みMoodleのディレクトリに入れることです。ファイルのフォーマットは下記のようになります:

<?php $defaults['pluginname']['settingname'] = 'settingvalue'; // プラグイン $defaults['moodle']['settingname'] = 'settingvalue'; // コア設定

デフォルト値はインストールおよびアップグレード中に使用されます。また、サイト管理ページにデフォルト値として表示されます。

ユーザパスワードをリセットする

あなたが自分の管理者パスワードを忘れてしまった場合、またはあなたのMoodleサイトのユーザのパスワードを設定したい場合、reset_password.phpスクリプトを使用することができます。指定したユーザに対して、正しくSALTしたパスワードが設定されます。

   $ sudo -u apache /usr/bin/php admin/cli/reset_password.php

MySQLストレージエンジンの移管

あなたのMoodleサイトのバックエンドにMySQLデータベースを使用して、テーブルのストレージエンジンにデフォルトのMyISAMを使用している場合、さらに信頼性のあるInnoDBのようなエンジンに移管してください (実際には、PostgreSQLにスイッチした方が良いのですが ;-))。

   $ sudo -u apache /usr/bin/php admin/cli/mysql_engine.php --engine=InnoDB

コマンドライン経由でcronを実行する

バージョン1.xにおいて、あなたはadmin/cron.phpをコマンドラインまたはウェブ経由で実行することができていました。Moodle 2.0以降、コマンドライン経由でのみ、admin/cli/cron.phpスクリプトを実行することができます。