17. config.php変数

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

注釈

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

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

17.1. 設定変数分析

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

標準設定値

標準設定値

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

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

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

    • 'true' または 'false'

    • テキスト

    • 数字

    • ファイルパス

注釈

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

17.2. Mahara 21.04の新機能 accesslistmaximum: アクセスリストルールの数を制限する

$cfg->accesslistmaximum = 1;

個人ポートフォリオを共有できる人または人のグループの数を制限します。この設定はグループ、インスティテューション、およびサイトレベルでのポートフォリオ共有には影響しません。

アクセス制限が設定されると、ポートフォリオの作成者に、限られた数の人々または人々のグループとだけポートフォリオを共有できることを知らせるアラートが表示されます。人々のグループには 『登録済み』 および 『パブリック』 アクセスが含まれます。

注釈

シークレットURLはこの制限の影響を受けません。この設定はポートフォリオを共有できる相手を制御するためのシークレットURLの使用を許可しないサイトに最適です。

ポートフォリオを共有する人の数を制限する

ポートフォリオを共有する人の数を制限する

  1. アラートは個人ポートフォリオを共有できる人または人のグループの数を示します。

  2. 制限に達した場合、新しいアクセスルールを追加することはできません。

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

MochiKitが少し前に削除されたため、開発者モードは使用できなくなりました。

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

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

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

17.5. error_reporting: エラー報告

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

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

注釈

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

17.6. externallogin: 別のサイトからログイン

$cfg->externallogin = 'URL';

外部ページを提供することにより、通常のMaharaログインページを上書きできます。これはサイトにアクセスできるすべてのユーザが別のシステムを介してログインし、そこに自動的にリダイレクトされる場合に役立ちます。

注釈

複数のインスティテューションを有効にしている場合は注意してください。少なくとも1つのインスティテューションが同じ外部ログインページ経由でログインしない場合、そのインスティテューションの人々は必要なログインページにアクセスできないため、そのインスティテューションの人々はMaharaにまったくログインできないため、この設定を使用できません。

外部ログインを使用する 場合、例えば、外部認証方法のトラブルシューティングまたは到達できない場合、時々、それを上書きする必要があります。Mahara URLの最後にパラメータを追加できます。その後、通常のMaharaログイン画面に移動します。

パラメータは ?override=true です

例えば、https://mahara.example.com/admin/users/search.php ?override=true

注釈

どの値を追加してもかまいません。 'true' または '1' などを使用できます。

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

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

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

17.8. isolatedinstitutions: インスティテューションを完全に隔離する

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

マルチテナントのMaharaインスタンスを持っているが、個々のインスティテューションの人々がサイト上で通信したりグループを共有したくない場合、 『隔離インスティテューション』 をオンにできます。

これは複数の組織に大規模なサイトを設定し、ある組織の人が他の組織の人に連絡することを許可しないプライバシ規制を遵守する必要がある場合に役立ちます。

参考

詳細についてはセクション 『隔離インスティテューション』 を参照してください。

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

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

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

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

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

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

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

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

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

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

17.12. 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

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

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

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

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

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

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

『オープンバッジ』 ブロック にオープンバッジを表示するにはバッジをホストするサイトを設定する必要があります。デフォルトでは、 Mozillaバックパックオープンバッジパスポート を接続できます。他のソースがある場合は、許可されたソースに追加する必要があります。

Badgr は構成することもできます。

バックパック、オープンバッジパスポートおよびBadgrの構成変数は次のようになります:

$cfg->openbadgedisplayer_source = '{"backpack":"https://backpack.openbadges.org/","passport":"https://openbadgepassport.com/","badgr":"https://api.badgr.io/"}';

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

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

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

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

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

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

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

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

17.17. probationenabled: 人保護観察状態を与える

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

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

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

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

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

保護観察ポイントは*管理メニュ → 人 → 人検索* で人のユーザ名をクリックして表示された 人のアカウント設定ページ で個別に変更できます。

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

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

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

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

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

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

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

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

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

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

注釈

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

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

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

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

『アカウント設定』 で、リモートアバターを表示できるかどうかを決定します。

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

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

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

17.21. saml_log_attributes: SAML属性をログに記録する

$cfg->saml_log_attributes = false; (default) または $cfg->saml_log_attributes = true;

MaharaとSSO IdPの間の接続を調査する必要がある場合、IdPから送信されている属性を確認するのに役立ちます。この変数を 'true' に設定した場合、属性はテーブル 'usr_login_saml' に記録されます。

警告

診断が実行されて問題が修正されたら、この変数を 'false' に戻し、 テーブルをクリア します。

17.22. sendemail: メールを送る

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

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

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

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

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

この設定は、問題を再現したり、実際のデータで新しい機能をテストしたりするときに、誤って通知を受信したくない場合に、テストインスタンスに役立ちます。

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

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

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

  • ファイルストレージ

  • Memcached

  • Redis

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

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

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

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

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

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

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

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

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

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

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

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

17.27. スキン

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

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

17.28. 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; を置くことができ、秘密のフレーズを入力する必要はありません。ただし、プロダクションサイトや、多くの人がアクセス可能な他のサイトでは、これを使用しないでください。

17.29. usepdfexport: PDF エクスポート

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

注釈

これは実験的機能です。

アカウント全体または個々のページとコレクションをPDFにエクスポートできます。これには、サーバに追加のソフトウェアをインストールする必要があります。これは make pdfexport を実行して実行できます。

さらに、追加のソフトウェアが必要なため、config.phpファイルの 'usepdfexport' オプションを設定する必要があります。

ソフトウェアがインストールされ、構成ファイルでPDFエクスポートが許可された場合、ポートフォリオはHTMLおよびLeap2Aの他にPDFとしてエクスポートされます。

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

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

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

17.31. validfiletypes: アップロードできるファイルタイプを制限する

$cfg->validfiletypes = 'doc,docx,gif,jpeg,jpg,mp3,mp4,odt,pdf,png,zip'; (例えば)

アカウント保持者がプラットフォームにアップロードできるファイルの種類を制限できます。これにより、許可するファイル、および安全にアップロードできないファイルを制御できます。

ファイルの種類の制限がある場合、これはファイルアップロードエリアに表示されます。

制限がある場合にアップロードできるファイルの種類を確認する

制限がある場合にアップロードできるファイルの種類を確認する