17. config.php変数

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

注釈

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

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

17.1. 設定変数分析

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

A typical configuration variable

標準設定値

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

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

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

    • 「true」 または 「false」

    • テキスト

    • 数字

    • ファイルパス

注釈

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

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

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

開発者モードを有効にすると、サイトに対して次の二つの変更が自動的に行われます:

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

注釈

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

17.3. directorypermissions: datarootで使用する権限

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

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

17.4. error_reporting: エラー報告

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

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

注釈

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

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

$cfg->externallogin = 'URL';

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

注釈

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

new in Mahara 19.04 外部ログインを使用する 場合 、時々、それをオーバーライドする必要があるかもしれません。外部認証方法のトラブルシューティングまたは到達できない場合、Mahara URLの最後にパラメータを追加できます。その後、通常のMaharaログイン画面に移動します。

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

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

注釈

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

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

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

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

17.7. new in Mahara 19.04 isolatedinstitutions: インスティテューションを完全に分離する

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

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

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

参考

詳細については節 「隔離されたインスティテューション」 を参照してください。

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

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

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

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

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

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

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

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

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

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

17.11. ログターゲット: ログ情報の宛先

典型的な生産環境:

$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を実装することをお勧めします。もう1つの選択肢は、特定のエラーが発生したとき、またはログを表示したいときにこのオプションをオンにし、ログファイルを大きくしないようにすることです。

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

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

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

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

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

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

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

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

new in Mahara 19.04 Badgr も同様に設定できます。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Info message when site is not in prodution mode

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

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

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

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

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

注釈

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • ファイルストレージ

  • Memcached

  • Redis

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

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

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

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

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

Link to the login form

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

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

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

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

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

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

17.25. スキン

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

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

17.26. 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.27. usersuniquebyusername: 内部のMaharaユーザ名は、外部の認証方法を接続するときに優先される

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

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