「コマンドラインによる管理」の版間の差分

提供:MoodleDocs
移動先:案内検索
編集の要約なし
 
(2人の利用者による、間の24版が非表示)
1行目: 1行目:
作成中です - [[利用者:Mitsuhiro Yoshida|Mitsuhiro Yoshida]]
{{Moodleのインストール}}
== CLIスクリプトの実行==
Webサーバへのシェルアクセスがある場合、Moodleの管理中にさまざまなCLI(コマンドラインインターフェース)スクリプトが役立つ場合があります。コア管理CLIツールは<code>admin/cli/*</code>フォルダにあります。他のプラグインは、独自のcliフォルダ内のスクリプトを介してCLI機能を提供します。たとえば、enrol_db同期スクリプトは<code>enrol/db/cli/</code>にあります。


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


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


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


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


{{Note|これらのスクリプトは、WebサーバユーザのIDで実行されることになっています。このページの例では、説明のためにapacheユーザを使用しています。特定の値は、OSのディストリビューションとローカルセットアップによって異なります。一般的な値は、 <tt>apache</tt> 、 <tt>www-data</tt>、または<tt>httpd</tt>です。}}


== コマンドライン経由のインストール ==
==アップグレード==


バージョン2.0以降、Moodleではコマンドラインを使ってインストールすることができます。インストールには2つのモードがあります。インタラクティブモードでは、インストールスクリプトが新しいMoodleサイトをセットアップするために必要なデータすべてに関して、あなたに尋ねます。非インタラクティブモードでは、あなたはスクリプトパラメータとして、すべての必須データを提供することにより、新しいサイトが静かにインストールされます。インタラクティブモードでもパラメータを渡すことができます。渡された値はインタラクティブセッション中、デフォルト値として使用されます。
Moodleはコマンドラインからアップグレードできます。インストールスクリプトと同様に、アップグレードには対話型モードまたは非対話型モードのいずれかがあります。スクリプト自体はサイトをメンテナンスモードにしません。自分で行う必要があります。また、スクリプトはデータをバックアップしません(このページを読んだ場合、おそらくmoodledataとデータベースをバックアップするための独自のスクリプトがいくつかありますよね?)


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


== メンテナンスモード ==
MoodleソースコードのGitチェックアウトを使用する場合、コマンドラインからのアップグレードはMoodleアップグレードの非常に快適な方法です([[管理者用Git]]を参照)。 gitリポジトリで追跡された最終的なローカルカスタマイズを保持しながら、数秒以内にサイトを最新バージョンにアップグレードする方法については、次の手順を参照してください。
 
あなたのサイトをCLI経由でメンテナンスモードにスイッチするには、下記コマンドを実行してください。


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


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


== オフラインモード ==
コマンドラインからMoodleをインストールする方法は2つあります。インタラクティブモードでは、インストールスクリプトは新しいMoodleサイトを適切にセットアップするために必要なすべてのデータを要求します。非対話型モードでは、必要なすべてのデータをスクリプトパラメータとして指定する必要があります。そうすると、新しいサイトがサイレントインストールされます。パラメータは、インタラクティブモードでも渡すことができます。提供された値は、対話型セッション中にデフォルト値として使用されます。


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


    $ cd /var/www/sites/moodle/moodledata/
必要に応じて、config.phpを入力するだけで、データベースのインストールをスキップできます。
    $ echo '&lt;h1&gt;Sorry, maintenance in progress&lt;/h1&gt;' &gt; climaintenance.html


あなたのユーザにサーバ停止を知らせるため、moodledataディレクトリ内にHTMLフォーマットで作成した<code>climaintenance.off</code>のような名称のファイルを準備することができるでしょう。そして、必要に応じて、そのファイルを<code>climaintenance.html</code>にリネームすることができます。
  $ sudo -u apache /usr/bin/php admin/cli/install.php --skip-database


== コマンドラインを使ったアップグレード ==
==メンテナンスモード==


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


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


あなたがMoodleコードの取得に[[管理者用CVS|CVS]]または[[Git|git]]を使用している場合、コマンドライン経由でのアップグレードは非常に快適な方法です。以下の手順では、最終的なローカルのカスタマイズを保持したままgitリポジトリでトラック (追跡 track) して、あなたのサイトを数秒で最新バージョンにアップグレードする方法を記します:
メンテナンスモードをオフにするには、-disableパラメーターを指定して同じスクリプトを実行します。


    $ 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
     $ sudo -u apache /usr/bin/php admin/cli/maintenance.php --disable


===コマンドライン経由でのアップグレードの問題===
メンテナンスモードをすぐに有効にしたくないが、ユーザにカウントダウンを表示する場合は、-enablelaterパラメーターとカウントダウンを実行する分数を指定して同じスクリプトを実行します。
 
    $ sudo -u apache /usr/bin/php admin/cli/maintenance.php --enablelater=10
 
このスクリプトは、''オフライン'' モードのclimaintenance.htmlファイルも作成および削除します。
 
==オフラインモード==


あなたのconfig.phpが複数のMoodleインスタンスの情報を含んでいる場合 (同じコードを共有している異なるMoodleウェブサイトおよびデータベース)、このスクリプトは静かに実行失敗となります。
状況によっては、Moodleサイトをオフラインモードに切り替えて、Web経由でアクセスできないようにしたい場合がありますが、Webサーバを完全に停止することはできません(通常、他のWebページやアプリケーションが実行されているため)。 <code>climaintenance.html</code>というファイルがmoodledataディレクトリのルートフォルダに存在する場合、Moodleは他のページの代わりにそのファイルの内容を自動的に表示します。


解決用法は、あなたがアップグレードしたいインスタンス以外、すべてのインスタンスをconfig.phpから一時的に取り除くことです。
    $ cd /var/www/sites/moodle/moodledata/
    $ echo '&lt;h1&gt;Sorry, maintenance in progress&lt;/h1&gt;' &gt; climaintenance.html


これが他のインスタンス (実運用サイト) の問題である場合、config.phpのコピー (1つのMoodleインスタンスのみ含むよう編集したconfig.php) を指すよう、cliスクリプトを修正してください。
あなたはダウンしているサーバについてユーザに通知するための適切な形式のHTMLページを準備し、moodledataディレクトリに<code>climaintenance.off</code>のような名前で保持し、必要に応じて名前を<code>climaintenance.html</code>に変更できます。


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


CLI経由でのインストールおよびアップグレード中、Moodleは管理変数をデフォルトに設定します。あなたはことなるデフォルト値を使用することができます。詳細は、 MDL-17850をご覧ください。Shortly, all you need to do is to add a file <code>local/defaults.php</code> into your Moodle installation. The format of the file is like
CLIを介したインストールおよびアップグレード中に、Moodleは管理変数をデフォルト値に設定します。さまざまなデフォルトを使用できます。詳細については、MDL-17850を参照してください。間もなく、あなたがする必要があるのは、ファイル<code>local/defaults.php</code>をMoodleインストールに追加することです。ファイルの形式は次のようになります


<code php>
<code php>
67行目: 73行目:
</code>
</code>


These defaults are used during install, upgrade and are also displayed as defaults at the Site administration pages.
これらのデフォルトは、インストール、アップグレード中に使用され、サイト管理ページにもデフォルトとして表示されます。


== Reset user password ==
==ユーザパスワードをリセット==


If you happen to forget your admin password (or you want to set a password for any other user of your Moodle system), you can use reset_password.php script. The script sets the correctly salted password for the given user.
管理者パスワードを忘れた場合(またはサイト上の他のユーザのパスワードを設定したい場合)は、reset_password.phpスクリプトを使用できます。スクリプトは、指定されたユーザに正しくソルトされたパスワードを設定します。


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


== MySQL storage engine conversion ==
== MySQLストレージエンジンの変換==


If you run your Moodle site with MySQL database backend and use the default MyISAM as the storage engine for your tables, you may want to convert them to use some more reliable engine like InnoDB (actually, you should want to switch to PostgreSQL ;-) anyway).
MySQLデータベースバックエンドでMoodleサイトを実行し、テーブルのストレージエンジンとしてデフォルトのMyISAMを使用する場合は、InnoDBなどのより信頼性の高いエンジンを使用するように変換することをお勧めします(実際には、PostgreSQLに切り替える必要があります;-)とにかく)。


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


== Running cron via command line ==
== InnoDBテーブルをBarracudaに変換する==
 
ファイル形式としてAntelopeを使用するデータベーステーブルでMySQLを使用しているサイトでは、テーブルをBarracudaファイル形式に変換することをお勧めします。
 
これは、ファイル形式としてAntelopeを使用するテーブルは、10を超えるテキスト列を処理できないためです。このファイル形式は、下位互換性の理由から、 ''コンパクト'' および ''冗長'' 行フォーマットのみをサポートします。これにより、コースをリストアするときに大規模なサイトで問題が発生する可能性があります。その場合、次のエラーが表示されます。
 
Row size too large (>8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help.
 
Barracudaは、最新のinnoDBファイル形式です。バラクーダは、''コンパクト'' および''冗長'' 行フォーマットをサポートすることに加えて、 ''圧縮'' および ''動的'' 行フォーマットもサポートします。
 
ただし、すべてのMySQLユーザが影響を受けるわけではないため、テーブルをBarracudaに変換することは推奨されるだけであり、必須ではありません。 (これは、大規模なサイトでのみ問題になる可能性があります。)
 
===テーブルを変換するためのツール===
 
テーブルをBarracudaに変換するためのコマンドラインツールがMoodleに含まれています。
 
変換が必要なテーブルを表示するには、リストオプションを使用します。
 
$ php admin/cli/mysql_compressed_rows.php --list
 
出力例を次に示します。
 
mdl_data                            Compact    (needs fixing)
mdl_data_fields                    Compact    (needs fixing)
mdl_enrol_paypal                    Compact    (needs fixing)
 
変換を続行するには、修正オプションを使用してコマンドを実行します。
 
$ php admin/cli/mysql_compressed_rows.php --fix
 
成功したテーブル変換は、出力で報告されます。次に例を示します。
 
mdl_data                  ... Compressed
mdl_data_fields            ... Compressed
mdl_enrol_paypal          ... Compressed
 
コマンドはmoodleディレクトリで実行する必要があることに注意してください。テーブルが修正されると、警告メッセージは表示されなくなります。
 
InnoDBファイル形式の詳細については、[http://dev.mysql.com/doc/innodb/1.1/en/glossary.html#glos_antelope MySQL InnoDBグロッサリー-Antelope]および[http://dev.mysql.com/doc/innodb/1.1/en/glossary.html#glos_barracuda MySQL InnoDB用語集-バラクーダ]を参照してください。
 
これらのコマンドを実行するための十分なパーミッションがないためにエラーが発生した場合(これは非常に可能性が高いです)、最も簡単な解決策は、を使用して必要なSQLコマンドを生成することです。
 
$ php admin/cli/mysql_compressed_rows.php --showsql
 
次に、生成されたSQLを 'root' ユーザとして実行されているmysqlクライアントにコピーできます。
 
==新しい文字セットと照合順序への変換==
 
$ php admin/cli/mysql_collation.php --collation=utf8mb4_unicode_ci
 
==コマンドラインからcronを実行する==
 
バージョン1.xでは、コマンドラインまたはWeb経由でadmin/cron.phpを実行できました。 Moodle 2.0以降、コマンドラインから実行できるのはadmin/cli/cron.phpスクリプトのみです。
 
==スケジュールされたタスク==
 
スケジュールされたタスクはcronスクリプトによって自動的に実行されますが、各cron反復で実行される特定のタスクは、スケジュールされたタスクの構成によって決定されます。 admin/tool/task/cli/schedule_task.phpスクリプトを使用して、スケジュールされたタスクの構成を上書きし、単一のスケジュールされたタスクをすぐに実行することができます。
 
このスクリプトは、次の引数を受け入れます。
 
--list - list all the known scheduled tasks. The tasks are listed by the class name used to run the task. This class name is required as the argument to the next option in order to run a specific task immediately.
 
--execute=<task> - Runs a single scheduled task immediately - regardless of scheduling settings. This will even run disabled tasks. Tasks will still use locking to prevent concurrent execution of the same task - even on clusters. The format of the <task> argument must be the same as returned by the --list option above.
 
--showsql - Shows sql queries before they are execute
 
--showdebugging - Shows developer debugging info
 
'''注:''' --executeコマンドを使用する場合は、追加の\を使用して "\"をエスケープする必要があります。たとえば、次のようにします。
 
<pre>php admin/tool/task/cli/schedule_task.php --list</pre>
 
次のようなものが返されます:
 
<pre>
== List of scheduled tasks (http://yourserver.com/moodle) ==
\enrol_imsenterprise\task\cron_task                10 * * * * *      ASAP
\logstore_legacy\task\cleanup_task                * 5 * * * *      ASAP
\logstore_standard\task\cleanup_task              * 4 * * * *      Wednesday, November 12, 2014, 4:35 AM
\mod_forum\task\cron_task                          * * * * * *      ASAP
\core\task\automated_backup_task                  50 * * * * *      ASAP
 
...
</pre>
 
そのリストの最初のタスクを実行するには、次を実行します
 
php admin/tool/task/cli/schedule_task.php --execute='\enrol_imsenterprise\task\cron_task'
 
一重引用符に注意してください。それらがないと、シェルによるエスケープを回避するために、二重のバックラッシュを使用する必要があります。
 
==データベース移行==
 
[[データベース移行]]のコマンドラインスクリプトは、''admin/tool/dbtransfer/cli/migrate.php'' です。
 
==キャッシュを削除==
 
次のスクリプトを使用して、キャッシュをパージできます。
 
  php admin/cli/purge_caches.php
 
==すべてのセッションを強制終了します==
管理上の理由で必要な場合は、次のスクリプトを使用してすべてのユーザセッションを強制終了できます。
 
php admin/cli/kill_all_sessions.php
 
その結果、すべてのユーザがMoodleからログアウトされます。
 
==コース/モジュールシーケンスの修正==
 
まれに(非常に古いバージョンのMoodleからアップグレードした後など)、コース/セクション/モジュールのシーケンスデータが同期していない可能性があります。これにより、セクションが表示されない、バックアップが失敗する、ページが表示されないなど、影響を受けるコースにさまざまな問題が発生する可能性があります。この問題によって引き起こされるエラーをチェックし、見つかった場合はデータベース内のデータを修正するための特定のチェックがあります。このスクリプトを実行するには、以下のコマンドを使用してください。
 
  php admin/cli/fix_course_sequence.php -c=* --fix
 
これにより、Moodleのすべてのコースがチェックされ、エラーが発生して修正されたコースが報告されます。
 
==孤立した問題カテゴリを修正==
 
小テストが作成されると、小テストの新しい問題カテゴリが自動的に作成されます。 2.9.1より前のバージョンのMoodleでは、小テストが削除された場合、問題カテゴリとそのカテゴリ内の問題はデータベースに残ります。これらの孤立した問題カテゴリは、-fixオプションを指定してadmin/cli /fix_alone_question_categories.phpスクリプトを実行することで修正できます。
 
==テキストの検索と置換==
 
このスクリプトを使用して、データベース全体のテキストを検索および置換できます。慎重に使用し、常に最初にバックアップしてください。詳細については、[[検索および置換ツール]]をご覧ください。
 
  php admin/tool/replace/cli/replace.php --search=//oldsitehost --replace=//newsitehost
 
==ビルドテーマCSSキャッシュ==
 
Moodleがテーマデザイナーモードで実行されていない場合、コンパイルされたCSSのコピーをローカルディスクに保持し、ページを要求したときにそれをブラウザーに提供します。ローカルディスクにコピーがない場合、Moodle内のページが最初にリクエストされたときにコピーが作成されます。
 
このスクリプトを使用すると、Moodle内のテーマのキャッシュされたCSSファイルを事前にコンパイルして、最初のページのリクエスト中にテーマがコンパイルされるのをユーザが待たないようにすることができます。
 
  php admin/cli/build_theme_css.php --themes=boost
 
==構成値の取得と設定==
 
指定された設定の現在の値を表示するか、指定された設定を指定された値に設定します。
 
例:
 
  php admin/cli/cfg.php [--component=<componentname>] [--json] [--shell-arg]
  php admin/cli/cfg.php --name=<configname> [--component=<componentname>] [--shell-arg] [--no-eol]
  php admin/cli/cfg.php --name=<configname> [--component=<componentname>] --set=<value>
  php admin/cli/cfg.php --name=<configname> [--component=<componentname>] --unset
  php admin/cli/cfg.php [--help|-h]


In versions 1.x, you could execute admin/cron.php either from command line or via the web. Since Moodle 2.0, only admin/cli/cron.php script can be run via command line.
==関連項目==


[[Category:インストール]]
* MDL-35736 - コマンドラインからプラグインを管理する
* MDL-36237 - CLIによるリゾートコースリスト
* [http://moosh-online.com/ MOOSH] - MOOdleシェル。これは、最も一般的なMoodleタスクを実行できるようにするコマンドラインツールです。


[[en: Administration_via_command_line]]
[[en:Administration via command line]]
[[fr:Administration en ligne de commande]]
[[de:AdministrationüberKommandozeile]]
[[es:Administraciónporlíneadecomando]]
<!--[[it:Amministrazione via linea di comando]]-->

2021年11月16日 (火) 04:04時点における最新版

CLIスクリプトの実行

Webサーバへのシェルアクセスがある場合、Moodleの管理中にさまざまなCLI(コマンドラインインターフェース)スクリプトが役立つ場合があります。コア管理CLIツールはadmin/cli/*フォルダにあります。他のプラグインは、独自のcliフォルダ内のスクリプトを介してCLI機能を提供します。たとえば、enrol_db同期スクリプトはenrol/db/cli/にあります。

アクセス制御の問題を回避するには、Webサーバプロセスの所有者としてそれらを実行する必要があります。 CLIのインストールとアップグレードでは、moodledataディレクトリに新しいファイルが作成され、Webサーバがそれらに書き込みアクセスできる必要があるため、特に重要です。 Linuxディストリビューションでは、Webサーバを実行するユーザは通常、apache、wwrun、httpdなどです。ルートとして、あなたはおそらく次のようなMoodleCLIスクリプトを実行したいと思うでしょう:

   $ 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
注意: これらのスクリプトは、WebサーバユーザのIDで実行されることになっています。このページの例では、説明のためにapacheユーザを使用しています。特定の値は、OSのディストリビューションとローカルセットアップによって異なります。一般的な値は、 apachewww-data、またはhttpdです。

アップグレード

Moodleはコマンドラインからアップグレードできます。インストールスクリプトと同様に、アップグレードには対話型モードまたは非対話型モードのいずれかがあります。スクリプト自体はサイトをメンテナンスモードにしません。自分で行う必要があります。また、スクリプトはデータをバックアップしません(このページを読んだ場合、おそらくmoodledataとデータベースをバックアップするための独自のスクリプトがいくつかありますよね?)

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

MoodleソースコードのGitチェックアウトを使用する場合、コマンドラインからのアップグレードはMoodleアップグレードの非常に快適な方法です(管理者用Gitを参照)。 gitリポジトリで追跡された最終的なローカルカスタマイズを保持しながら、数秒以内にサイトを最新バージョンにアップグレードする方法については、次の手順を参照してください。

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

インストール

コマンドラインからMoodleをインストールする方法は2つあります。インタラクティブモードでは、インストールスクリプトは新しいMoodleサイトを適切にセットアップするために必要なすべてのデータを要求します。非対話型モードでは、必要なすべてのデータをスクリプトパラメータとして指定する必要があります。そうすると、新しいサイトがサイレントインストールされます。パラメータは、インタラクティブモードでも渡すことができます。提供された値は、対話型セッション中にデフォルト値として使用されます。

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

必要に応じて、config.phpを入力するだけで、データベースのインストールをスキップできます。

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

メンテナンスモード

CLIを介してサイトをメンテナンスモードに切り替えるには、次を使用できます。

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

メンテナンスモードをオフにするには、-disableパラメーターを指定して同じスクリプトを実行します。

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

メンテナンスモードをすぐに有効にしたくないが、ユーザにカウントダウンを表示する場合は、-enablelaterパラメーターとカウントダウンを実行する分数を指定して同じスクリプトを実行します。

   $ sudo -u apache /usr/bin/php admin/cli/maintenance.php --enablelater=10

このスクリプトは、オフライン モードのclimaintenance.htmlファイルも作成および削除します。

オフラインモード

状況によっては、Moodleサイトをオフラインモードに切り替えて、Web経由でアクセスできないようにしたい場合がありますが、Webサーバを完全に停止することはできません(通常、他のWebページやアプリケーションが実行されているため)。 climaintenance.htmlというファイルがmoodledataディレクトリのルートフォルダに存在する場合、Moodleは他のページの代わりにそのファイルの内容を自動的に表示します。

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

あなたはダウンしているサーバについてユーザに通知するための適切な形式のHTMLページを準備し、moodledataディレクトリにclimaintenance.offのような名前で保持し、必要に応じて名前をclimaintenance.htmlに変更できます。

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

CLIを介したインストールおよびアップグレード中に、Moodleは管理変数をデフォルト値に設定します。さまざまなデフォルトを使用できます。詳細については、MDL-17850を参照してください。間もなく、あなたがする必要があるのは、ファイルlocal/defaults.phpをMoodleインストールに追加することです。ファイルの形式は次のようになります

<?php $defaults['pluginname']['settingname'] = 'settingvalue'; // for plugins $defaults['moodle']['settingname'] = 'settingvalue'; // for core settings

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

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

管理者パスワードを忘れた場合(またはサイト上の他のユーザのパスワードを設定したい場合)は、reset_password.phpスクリプトを使用できます。スクリプトは、指定されたユーザに正しくソルトされたパスワードを設定します。

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

MySQLストレージエンジンの変換

MySQLデータベースバックエンドでMoodleサイトを実行し、テーブルのストレージエンジンとしてデフォルトのMyISAMを使用する場合は、InnoDBなどのより信頼性の高いエンジンを使用するように変換することをお勧めします(実際には、PostgreSQLに切り替える必要があります;-)とにかく)。

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

InnoDBテーブルをBarracudaに変換する

ファイル形式としてAntelopeを使用するデータベーステーブルでMySQLを使用しているサイトでは、テーブルをBarracudaファイル形式に変換することをお勧めします。

これは、ファイル形式としてAntelopeを使用するテーブルは、10を超えるテキスト列を処理できないためです。このファイル形式は、下位互換性の理由から、 コンパクト および 冗長 行フォーマットのみをサポートします。これにより、コースをリストアするときに大規模なサイトで問題が発生する可能性があります。その場合、次のエラーが表示されます。

Row size too large (>8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help.

Barracudaは、最新のinnoDBファイル形式です。バラクーダは、コンパクト および冗長 行フォーマットをサポートすることに加えて、 圧縮 および 動的 行フォーマットもサポートします。

ただし、すべてのMySQLユーザが影響を受けるわけではないため、テーブルをBarracudaに変換することは推奨されるだけであり、必須ではありません。 (これは、大規模なサイトでのみ問題になる可能性があります。)

テーブルを変換するためのツール

テーブルをBarracudaに変換するためのコマンドラインツールがMoodleに含まれています。

変換が必要なテーブルを表示するには、リストオプションを使用します。

$ php admin/cli/mysql_compressed_rows.php --list

出力例を次に示します。

mdl_data                            Compact     (needs fixing) 
mdl_data_fields                     Compact     (needs fixing)
mdl_enrol_paypal                    Compact     (needs fixing)

変換を続行するには、修正オプションを使用してコマンドを実行します。

$ php admin/cli/mysql_compressed_rows.php --fix

成功したテーブル変換は、出力で報告されます。次に例を示します。

mdl_data                   ... Compressed
mdl_data_fields            ... Compressed
mdl_enrol_paypal           ... Compressed

コマンドはmoodleディレクトリで実行する必要があることに注意してください。テーブルが修正されると、警告メッセージは表示されなくなります。

InnoDBファイル形式の詳細については、MySQL InnoDBグロッサリー-AntelopeおよびMySQL InnoDB用語集-バラクーダを参照してください。

これらのコマンドを実行するための十分なパーミッションがないためにエラーが発生した場合(これは非常に可能性が高いです)、最も簡単な解決策は、を使用して必要なSQLコマンドを生成することです。

$ php admin/cli/mysql_compressed_rows.php --showsql

次に、生成されたSQLを 'root' ユーザとして実行されているmysqlクライアントにコピーできます。

新しい文字セットと照合順序への変換

$ php admin/cli/mysql_collation.php --collation=utf8mb4_unicode_ci

コマンドラインからcronを実行する

バージョン1.xでは、コマンドラインまたはWeb経由でadmin/cron.phpを実行できました。 Moodle 2.0以降、コマンドラインから実行できるのはadmin/cli/cron.phpスクリプトのみです。

スケジュールされたタスク

スケジュールされたタスクはcronスクリプトによって自動的に実行されますが、各cron反復で実行される特定のタスクは、スケジュールされたタスクの構成によって決定されます。 admin/tool/task/cli/schedule_task.phpスクリプトを使用して、スケジュールされたタスクの構成を上書きし、単一のスケジュールされたタスクをすぐに実行することができます。

このスクリプトは、次の引数を受け入れます。

--list - list all the known scheduled tasks. The tasks are listed by the class name used to run the task. This class name is required as the argument to the next option in order to run a specific task immediately.
--execute=<task> - Runs a single scheduled task immediately - regardless of scheduling settings. This will even run disabled tasks. Tasks will still use locking to prevent concurrent execution of the same task - even on clusters. The format of the <task> argument must be the same as returned by the --list option above.
--showsql - Shows sql queries before they are execute
--showdebugging - Shows developer debugging info

注: --executeコマンドを使用する場合は、追加の\を使用して "\"をエスケープする必要があります。たとえば、次のようにします。

php admin/tool/task/cli/schedule_task.php --list

次のようなものが返されます:

== List of scheduled tasks (http://yourserver.com/moodle) ==
\enrol_imsenterprise\task\cron_task                10 * * * * *      ASAP
\logstore_legacy\task\cleanup_task                 * 5 * * * *       ASAP
\logstore_standard\task\cleanup_task               * 4 * * * *       Wednesday, November 12, 2014, 4:35 AM
\mod_forum\task\cron_task                          * * * * * *       ASAP
\core\task\automated_backup_task                   50 * * * * *      ASAP

...

そのリストの最初のタスクを実行するには、次を実行します

php admin/tool/task/cli/schedule_task.php --execute='\enrol_imsenterprise\task\cron_task'

一重引用符に注意してください。それらがないと、シェルによるエスケープを回避するために、二重のバックラッシュを使用する必要があります。

データベース移行

データベース移行のコマンドラインスクリプトは、admin/tool/dbtransfer/cli/migrate.php です。

キャッシュを削除

次のスクリプトを使用して、キャッシュをパージできます。

 php admin/cli/purge_caches.php

すべてのセッションを強制終了します

管理上の理由で必要な場合は、次のスクリプトを使用してすべてのユーザセッションを強制終了できます。

php admin/cli/kill_all_sessions.php

その結果、すべてのユーザがMoodleからログアウトされます。

コース/モジュールシーケンスの修正

まれに(非常に古いバージョンのMoodleからアップグレードした後など)、コース/セクション/モジュールのシーケンスデータが同期していない可能性があります。これにより、セクションが表示されない、バックアップが失敗する、ページが表示されないなど、影響を受けるコースにさまざまな問題が発生する可能性があります。この問題によって引き起こされるエラーをチェックし、見つかった場合はデータベース内のデータを修正するための特定のチェックがあります。このスクリプトを実行するには、以下のコマンドを使用してください。

 php admin/cli/fix_course_sequence.php -c=* --fix

これにより、Moodleのすべてのコースがチェックされ、エラーが発生して修正されたコースが報告されます。

孤立した問題カテゴリを修正

小テストが作成されると、小テストの新しい問題カテゴリが自動的に作成されます。 2.9.1より前のバージョンのMoodleでは、小テストが削除された場合、問題カテゴリとそのカテゴリ内の問題はデータベースに残ります。これらの孤立した問題カテゴリは、-fixオプションを指定してadmin/cli /fix_alone_question_categories.phpスクリプトを実行することで修正できます。

テキストの検索と置換

このスクリプトを使用して、データベース全体のテキストを検索および置換できます。慎重に使用し、常に最初にバックアップしてください。詳細については、検索および置換ツールをご覧ください。

 php admin/tool/replace/cli/replace.php --search=//oldsitehost --replace=//newsitehost

ビルドテーマCSSキャッシュ

Moodleがテーマデザイナーモードで実行されていない場合、コンパイルされたCSSのコピーをローカルディスクに保持し、ページを要求したときにそれをブラウザーに提供します。ローカルディスクにコピーがない場合、Moodle内のページが最初にリクエストされたときにコピーが作成されます。

このスクリプトを使用すると、Moodle内のテーマのキャッシュされたCSSファイルを事前にコンパイルして、最初のページのリクエスト中にテーマがコンパイルされるのをユーザが待たないようにすることができます。

 php admin/cli/build_theme_css.php --themes=boost

構成値の取得と設定

指定された設定の現在の値を表示するか、指定された設定を指定された値に設定します。

例:

 php admin/cli/cfg.php [--component=<componentname>] [--json] [--shell-arg]
 php admin/cli/cfg.php --name=<configname> [--component=<componentname>] [--shell-arg] [--no-eol]
 php admin/cli/cfg.php --name=<configname> [--component=<componentname>] --set=<value>
 php admin/cli/cfg.php --name=<configname> [--component=<componentname>] --unset
 php admin/cli/cfg.php [--help|-h]

関連項目

  • MDL-35736 - コマンドラインからプラグインを管理する
  • MDL-36237 - CLIによるリゾートコースリスト
  • MOOSH - MOOdleシェル。これは、最も一般的なMoodleタスクを実行できるようにするコマンドラインツールです。