10.12. config.php変数

一部のサイトオプションは管理エリアでは設定できません。そのため、config.php ファイルをサーバ上で直接更新する必要があります。このセクションでは可能な設定およびサイトの config.php ファイルに設定を含める理由を理解します。

注釈

一部の設定パラメータは 管理エリア に同等の設定があります。 config.php ファイルに明示的に値を設定した場合、管理者が入力した値が上書きされ、編集できなくなります。

config.php ファイルはサイトの /htdocs ディレクトリにあります。可能なすべての変数とそのデフォルト値を見たい場合、 /htdocs/lib/config-defaults.php に見つけることができます。config.php ファイルに変数を置くことで、デフォルト値を上書きできます。

10.12.1. 設定変数分析

機能するには構成変数を正しい構文で記述する必要があります。Maharaではこれは次のように行われます: $cfg->変数 = 値;

標準設定値

標準設定値

  1. $cfg->: 「設定」を意味します。後続するものが設定変数であることを示します。

  2. 変数 =: ここで設定されている変数を確認できます。一般的に1語またはアンダースコアで繋がれた単語から成ります。変数にはスペースを含めません。

  3. value;: 変数が取得する値が表示されます。値は異なる場合があります。例えば次のようになります:

    • 「true」 または 「false」

    • テキスト

    • 数字

    • ファイルパス

注釈

Maharaのインスタンスで変数のデフォルトの動作を変更する場合、 config-defaults.php ファイルから config.php ファイルにコピーして、コードベースを更新するときに上書きされないようにします。 config.php ファイルはMaharaのアップデートやアップグレードによって決して変更されません。

10.12.2. developermode: 開発者モードを有効または無効にする

$cfg->developermode = true; または $cfg->developermode = false;

開発者モードを有効にした場合、あなたのサイトで次の2つの自動的に変更されます:

  • debug.css は各ページに含まれます。このファイルを編集して、自分の裁量でデバッグCSSを追加できます。

  • MochiKitのアンパックされたバージョンが使用されます。【訳注】MochiKitはMahara 17.04以降削除されました。

注釈

developermode=trueproductionmode=false よりも強力ではありません。

10.12.3. directorypermissions: datarootで使用するパーミッション

$cfg->directorypermissions = 0700; (デフォルト)

Maharaのdataroot内のファイルとディレクトリに使用されるアクセス許可を設定できます。デフォルトではウェブサーバユーザだけがデータを読み取ることができます。共有ホスティングを使用していて、後でdatarootのコンテンツをダウンロードしたい場合(例えば、バックアップ目的の場合)は0755に設定します。それ以外の場合はそのままの状態にします。

10.12.4. insecuredataroot: 別のMaharaと同じdatarootを共有する

$cfg->insecuredataroot = false; (デフォルト)あるいは $cfg->insecuredataroot = true;

提供されているファイルがdatarootから来ているかどうかを確認できます。同じdatarootに対して複数のMaharaを実行している場合にだけ、この機能を有効にします。その場合、インストールごとに別々のdatarootを作成してください。ただし、artefactディレクトリをすべて1つにシンボリックリンクし、シンボリックリンクを作成したすべてのもので 「insecuredataroot」 を有効にしてください。

10.12.5. noreplyaddress: システムメールアドレス

$cfg->noreplyaddress = 'noreply@yourdomainhere';

システムのメールアドレスを設定します。通知はこのアドレスから送信されます(ただし、アカウントをまだ持っていない場合はいくつかのメールを除きます)。管理 → サイト設定 → サイトオプション → メール設定 でも設定できます。

通常、noreplyアドレスは人々がそれに返信しないように監視されていないものです。

10.12.6. log targets: ログ情報の宛先

典型的な生産環境:

$cfg->log_dbg_targets     = LOG_TARGET_ERRORLOG;
$cfg->log_info_targets    = LOG_TARGET_ERRORLOG;
$cfg->log_warn_targets    = LOG_TARGET_ERRORLOG;

典型的な非生産環境:

$cfg->log_dbg_targets     = LOG_TARGET_SCREEN | LOG_TARGET_ERRORLOG;
$cfg->log_info_targets    = LOG_TARGET_SCREEN | LOG_TARGET_ERRORLOG;
$cfg->log_warn_targets    = LOG_TARGET_SCREEN | LOG_TARGET_ERRORLOG;
$cfg->log_environ_targets = LOG_TARGET_SCREEN | LOG_TARGET_ERRORLOG;

エラーログに記録したり、画面に表示できるログメッセージには次の4種類があります:

  • dbg: デバッギングメッセージ

  • info: 情報メッセージ

  • warn: 警告メッセージ

  • environ: 環境エラー

あなたは様々な宛先に異なるメッセージを記録できます:

  • LOG_TARGET_SCREEN: エラーメッセージを画面に表示します。これはテスト中やデバッグ時に役立ちますが、実運用サイトでは使用しないでください。

  • LOG_TARGET_ADMIN: 画面にエラーメッセージを表示しますが、管理エリアにいるときだけ表示します。

  • LOG_TARGET_ERRORLOG: Apache構成で指定されているエラーログにログ情報を送信します。指定した他のターゲットに関係なく、すべてのログレベルにこの設定を使用することをお勧めします。

  • LOG_TARGET_FILE: あなたはメッセージを記録するファイルを指定できます。datarootのパスを選択するのが最善ですが、ログファイルは時間の経過とともに非常に大きくなる傾向があります。したがって、このままにしておきたい場合、ある種のlogrotateを実装することをお勧めします。もうひとつの選択肢は特定のエラーが発生したとき、またはログを表示したいときにこのオプションをオンにし、ログファイルを大きくしないようにすることです。

ターゲットをビット単位の操作と組み合わせることができます。例えば、 LOG_TARGET_SCREEN | LOG_TARGET_ERRORLOG

10.12.7. log_file: エラーメッセージを含むファイル

$cfg->log_file = '/path/to/dataroot/error.log';

LOG_TARGET_FILEを使用する場合、これはエラーが記録されるファイルです。デフォルトではdatarootの下にある error.log ファイルに書き込まれます。config.phpでこれを変更する場合、ウェブサーバが書き込み可能なフォルダを使用していることを確認します。

10.12.8. log_backtrace_levels: ログバックトレース

例: $cfg->log_backtrace_levels = LOG_LEVEL_WARN | LOG_LEVEL_ENVIRON; (デフォルト)

バックトレースを生成するログレベル。開発には便利ですが、実際のサイトでは警告だけが役に立つかもしれません。

10.12.9. log_backtrace_print_args: ログバックトレース

$cfg->log_backtrace_print_args = null; (デフォルト)

バックトレースを印刷するときに関数とメソッドの引数の値を出力します。これはデバッグには便利ですが、機能パラメータにはパスワードやプライベート鍵などの機密データが含まれる可能性があるため、セキュリティ上のリスクがあります。パスワードが含まれていることを示す名前の引数はこの機能が有効になっていても空白になります。

ここで null 値を指定した場合、 $cfg->productionmode が有効になっているときに引数値を隠すようにMaharaに指示し、それ以外の場合は表示します。 true または false$cfg->productionmode の値に関係なく、バックトレースで引数値を常に表示または非表示にするようMaharaに指示します。

10.12.10. error_reporting: エラー報告

$cfg->error_reporting = E_ALL & ~E_STRICT; (デフォルト)

このパラメータはMaharaログに出力するエラーのレベルを示します。それはPHP関数 error_reporting() に直接渡されます。

注釈

このメソッドにはいくつかの制限があります。これはすでにいくつかのスクリプトがコンパイルされるまで呼び出されないためです: init.php, config.php, config-defaults.php, errors.php、およびURLで直接呼び出されるファイルです。したがって、最も厳しいエラーを含むこれらのファイルのコンパイル時エラーはこの設定の影響を受けません。

10.12.11. openbadgedisplayer_source: Open Badgesディスプレイヤのソース

$cfg->openbadgedisplayer_source = '{"shortname":"url","shortname":"url"}';

「オープンバッジ」 ブロック にオープンバッジを表示するにはバッジをホストするサイトを設定する必要があります。デフォルトでは Mozilla Backpack <https://backpack.openbadges.org/> および `Open Badge Passport <https://openbadgepassport.com>`に接続できます。他のソースがある場合、それらを許可されたソースに追加する必要があります。

10.12.12. passwordsaltmain: サイト全体のpassword saltを設定する

$cfg->passwordsaltmain = 'your secret phrase here';

パスワードソルトは 「ハッシュ」 パスワードをデータベースでより安全に使用して、ハッキングをより困難にするのに役立ちます。フレーズを使うのはよいスタートです。パスワードはすでにデータベースにプレーンテキストで表示されていません。ハッシュされています。このソルトはそれをさらにランダム化するのに役立ちます。

あなたにパスワードsaltがない場合、 「管理ホーム」 ページで警告が表示されます。

10.12.13. pathtoclam: ウィルススキャナClamAVへのパス

$cfg->pathtoclam = '/path/to/your/clamscan';

サーバ上でウイルス対策エンジン ClamAV を実行しており、システムレベルでウイルスをスキャンしない場合、Maharaにファイルの場所を知らせて、アップロードされたファイルをスキャンします。セキュリティ上の理由から、サーバ上のClamAVへのパスを config.php ファイルで指定する必要があります。

「セキュリティ設定」 で設定したパスを確認できます。

10.12.14. probationenabled: ユーザ保護観察状態を与える

$cfg->probationenabled = true; または $cfg->probationenabled = false;

同じように $cfg->probationstartingpoints = 2; を設定する必要があります。

ユーザの スパムの保護観察レベル を設定して自己登録ユーザが特にパブリックサイトに迷惑メールを投稿しないようにできます。これを行うには次の2つの変数を使用します:

  • $cfg->probationenabled = true;: この設定ではユーザが保護観察を受けることができるかどうかを決定します。

  • $cfg->probationstartingpoints = 2;: この設定では新しく自己登録されたユーザがデフォルトごとに保持する保護観察ポイントの数を指定します。この例ではユーザがすべての機能を利用できるようになるには2つの保護観察ポイントが必要になります。

保護観察ポイントは*管理* の ユーザのアカウント設定ページ で個別に変更できます。

あなたが保護観察を有効にした場合、ページやアーティファクにコメントを残してログインしていないユーザはURLを投稿することはできません。

10.12.15. productionmode:プロダクションモードを有効または無効にする

$cfg->productionmode = true; または $cfg->productionmode = false;

プロダクションモードが無効になっている場合は画面上部にその旨を示すメッセージが表示されます。

サイトがプロダクションモードでない場合の情報メッセージ

サイトがプロダクションモードでない場合の情報メッセージ

テストサイトや開発サイトでは多くのパラメータが適切なデフォルト値で上書きされます。現在のパラメータのリストについては init.php を参照してください。これらの設定には次が含まれます:

  • デバッグ情報、警告メッセージ、および環境ターゲットを画面とエラーログに出力します。これにより、画面に直接表示されるエラーメッセージをすばやく確認できます。

  • 開発者モード を有効にします。

  • キャッシュを無効にします。

注釈

逆説的に productionmode=false は適切な開発者モードのデフォルトで多くの設定を上書きするため、テスト/開発サイトで設定を微調整する場合は productionmode=true を設定する必要があります。

10.12.16. remoteavatarbaseurl: リモートアバターサーバURL

$cfg->remoteavatarbaseurl = 'https://example.com/avatar/';

ユーザのプロファイル画像はGravatarなどのアバターサービスから取得できます。あなた自身のサービス、例えば、Libravatar を実行する場合、この構成変数を使用してMaharaを直接指すことができます。

あなたはリモートの化身を表示するかしないかを 「ユーザ設定」 で決めます。

10.12.17. renamecopies: コピーされたページおよびコレクションを改名する

$cfg->skins = true; または $cfg->skins = false;

サイト管理者はコピーしたページやコレクションに対して 「のコピー」 を追加できます。 $cfg->renamecopies = true の場合、新しいページとコレクションのコピーにはそのタイトルの後に 「のコピー」 が付加されます。デフォルトの設定は $cfg->renamecopies = false; です。【訳注】デフォルトの設定の場合、コピーにはそのタイトルの後に 「v.2」 のようなコピー回数に応じた文字列が付加されます。

10.12.18. sendemail: すべてのメールを1つのアドレスに送信する

$cfg->sendemail = true; または $cfg->sendemail = false;

Maharaのインスタンスからメールを送信するかどうかを決定します。falseに設定した場合、Maharaはメールを送信しません。これはこの特定のMaharaインスタンスからユーザにメールを誤って送信したくない実際のデータでMaharaの非本番インスタンスを設定する場合に便利です。

10.12.19. sendallemailto: すべてのメールを1つのアドレスに送信する

$cfg->sendallemailto = 'you@yourdomain';

この設定を使用して、このMaharaのインスタンスからのすべてのメールを実際の受信者ではなく特定のメールアドレスに送信できます。この設定を使用する場合、 $cfg->sendemail = true のままにしておきます。

この設定は問題を再現したり、実際のデータで新しい機能をテストしたり、誤って通知を受け取ったりしたくない場合にテストインスタンスに便利です。

10.12.20. sessionhandler: セッションハンドラを選択する

$cfg->sessionhandler = 'file'; または $cfg->sessionhandler = 'memcached'; または $cfg->sessionhandler = 'redis';

Mahara は3つの異なるセッションハンドラをサポートします:

  • ファイルストレージ

  • new in Mahara 18.04 Memcached

  • new in Mahara 18.04 Redis

MemcachedとRedisはデータがより迅速にアクセスされるため、大きなサイトにお勧めします。Redisはクラスタ環境で有益です。

MemcachedとRedisの両方は、さらに設定変数を設定する必要があります。詳細については /htdocs/lib/config-defaults.php を見直してください。

10.12.21. showloginsideblock: ログインサイドブロックを表示するまたは隠す

$cfg->showloginsideblock = true; または $cfg->showloginsideblock = false;

config.php ファイルに値 $cfg->showloginsideblock = false を追加してログインフォームを非表示にできます。これを実行した場合、管理者、またはMaharaアカウントを持つ他のユーザがサイトにログインするためのログインフォームへのリンクだけが表示されます。

ログインフォームへのリンク

ログインフォームへのリンク

これはシングルサインオンを設定し、別のサイトからMaharaに自動的にログインする場合に便利です。

デフォルトでは値は 「true」 に設定され、ログインサイドブロックが表示されます。

10.12.22. sitethemeprefs: 任意のテーマからブラウズテーマを選択する

$cfg->sitethemeprefs = true; または $cfg->sitethemeprefs = false;

サイト管理者が許可した場合、 「アカウント設定」 ページで閲覧テーマとして使用可能なテーマを選択できます。その場合、インスティテューションのテーマだけを使用するように制限されたり、複数のインスティテューションのメンバである場合はそれらのどちらかのテーマを選択するように制限されることはありません。

10.12.23. スキン

$cfg->skins = true; または $cfg->skins = false;

テーマを選択する以外にユーザが自分のポートフォリオページをパーソナライズできるようにできます。これはMaharaの スキン を介して行われます。スキンは サイトレベル または個人によって作成できます。インスティテューションはユーザに スキンの使用を許可または拒否 できます。

10.12.24. urlsecret: 権限を与えられているときだけクーロンあるいはアップグレードを実行する

$cfg->urlsecret = 'somesecret';

この設定変数がなければ、誰でもサイトでcronジョブ(スケジュールされたタスク)を実行したり、アップグレードによって問題を引き起こす可能性があります。

この変数を config.php ファイルに置き、デフォルト値を上書きします。自分の秘密のフレーズ(一重引用符で囲みます)を選んで、誰がcronやアップグレードの実行が許されているかを知る人はほとんどいません。

cronを実行したり、アップグレードを実行したりする場合、URLの最後に秘密の単語を追加する必要があります。cronとupgradeのURLは次のようになります( 「somesecret」 を自分の秘密の単語で置き換えます):

  • cron: /lib/cron.php?urlsecret=somesecret

  • upgrade: /admin/upgrade.php?urlsecret=somesecret

注釈

ファイアウォールの背後にある開発者インスタンスまたはテストサーバを使用している場合、特にそのサイトにアクセスできる唯一の人である場合は毎回URLを追加したくない場合があります。あなたはこれらのサイトの config.php ファイルに $cfg->urlsecret = null; を置くことができ、秘密のフレーズを入力する必要はありません。ただし、プロダクションサイトや、多くの人がアクセス可能な他のサイトでは、これを使用しないでください。

10.12.25. usersuniquebyusername: 内部のMaharaユーザ名は外部の認証方法を接続するときに優先される

$cfg->usersuniquebyusername = true; あるいは $cfg->usersuniquebyusername = false;

これは 実験的な機能 です。この設定を有効にした場合、ユーザのSSOがどのアプリケーションから来ているかには関係なく、内部ユーザ名が一致し、リモートユーザ名が無視されるため、Maharaで同じアカウントが与えられることになります。