オプション設定
From LimeSurvey Manual
以下のセクションは、LimeSurveyインストールのGUI(グラフィカルユーザーインターフェイス)では変更できない設定を編集したい方を対象としています。LimeSurveyのルートディレクトリ内の変更はすべて自己責任で行ってください。問題が発生した場合やさらにサポートが必要な場合は、ディスカッションフォーラムに参加して、LimeSurveyコミュニティの助けを借りてください。
はじめに
設定を変更するには、オプションの設定を編集する必要があります。これらは、LimeSurveyのルートディレクトリーにある、/application/config/config-defaults.phpにあります。標準インストールの既定の設定は、config-defaults.phpにあります。グローバル設定ダイアログを使用して上書きできるものもありますが、そうでないものは手動で編集する必要があります。
アップグレードが行われると、config-defaults.php設定だけが変更されます。したがって、config.phpファイルを編集すると、カスタマイズした設定が保存されます。
/application/config/config.phpにあるLimeSurvey設定を更新/追加するには、config配列を更新します。
'config'=>array(
'debug'=>0,
'debugsql'=>0,
'LimeSurveySetting'=>'New value', // ここでLimeSurveyの既定の設定を更新します。
)
Yii設定
LimeSurveyは、application/config/config.phpファイルに独自の設定パラメータを持つYiiフレームワークを使用します。LimeSurveyの設定は、Yii設定を介してアクセスすることもできます。
config.php配列はconfig全体にマージされるので、config.phpファイル内のYiiパラメータを置き換えることができます。
Yii固有の設定はcomponents配列に設定されています。
'components' => array(
'db' => array(
....
),
'Specific settings'=>array(
....
),
),
データベース設定
データベース設定は、LimeSurveyを初めてインストールするときにインストーラファイルによってconfig.phpに書き込まれます。必要に応じて、config.phpファイルのこの部分を更新することができます。これはあなた自身の責任で行ってください。 Yiiのドキュメントも参照してください。LimeSurveyは、mysql、pgsql、dblib、mssql、sqlsrvのみをサポートしています。
セッション設定
config.phpにいくつかのセッションパラメータを設定することができます(以下の2つの例を確認してください)。config.phpに必要な部分をコメントアウトしたり追加したりすることができます。その他の設定については、Yiiのドキュメントを参照してください。
テーブルベースのセッションを使用する
LimeSurveyはテーブルベースのセッションを使うことができます。テーブルベースのセッションを使用するには、既定のconfig.phpファイルでコメント部分を見つけ、各行の前にある//を削除します。
'session' => array (
'class' => 'application.core.web.DbHttpSession',
'connectionID' => 'db',
'sessionTableName' => '{{sessions}}',
),
その他のセッションに関する修正
LimeSurveyにSSL('https')を使用する場合は、config.phpに次の行を追加すると、セッションのセキュリティが向上します。
// SSL経由でcookieを設定
'session' => array (
'cookieParams' => array(
'secure' => true, // cookieにSSLを使用する
'httponly' => true // cookieは他のプロトコルで使用できない(実験的)
),
),
Cookieのドメインを修正する場合は、config.phpで次の構文を使用します。
// cookieのドメインを指定
'session' => array (
'cookieParams' => array(
'domain' => '.example.org',
),
),
同じドメイン上の各LimeSurveyインスタンスには、固有のセッション名が必要です。そうしないと、一方のインスタンスにログインすると、もう一方のインスタンスからログアウトされてしまいます。インストーラーは、config.phpにランダムなセッション名を設定します。別のインスタンスからconfig.phpをコピーした場合、またはconfig.phpがLimeSurvey 4.0より前のバージョンのものである場合は、既存のsessionセクション内のsessionName行を追加または変更し、インスタンスごとに異なる値を使用してください。
// Set the name of the session
'session' => array (
'sessionName' => 'LS-ABCDEFGHIJKLMNOP',
),
リクエストの設定
リクエストの設定は重要ですが、デフォルト設定はLimeSurveyの使用に合わせて既に最適化されています。詳細については、Yiiドキュメントを参照してください。
たとえば、LimeSurveyのリクエスト設定は、次のように変更することができます(自己責任で行ってください)。
// CSRF保護を無効にする
'request' => array(
'enableCsrfValidation'=>false,
),
// 特定のURLベースを強制する
'request' => array(
'hostInfo' => 'http://www.example.org/'
),
// CSRF保護のためのCookieドメイン名とパスを設定します
'request' => array(
'csrfCookie' => array(
'domain' => '.example.com',
'path' => '/limesurvey/',
)
),
トークン電子メールのURLのみを更新する必要がある場合は、config.phpファイルでpublicurlを設定してください。
iFrameでのセッションとCSRF検証の使用を許可する
Iframeの組込を許可した場合、いくつかの構成部分を更新する必要があります。
iframeでのセッション開始を許可する
セッションCookieはsecure(有効なHTTPS接続が必要)かつhttponlyとし、samesiteにはNoneを設定する必要があります。cookieParams内のキーはすべて小文字で記述する必要があります。
'session' => array (
'sessionName'=>'LS-VBXZZORFJZCAKGYI',
// テーブルベースのセッションが必要な場合は、以下の行をコメントアウトします。
// 注意: テーブルベースのセッションはMSSQLサーバーでは現在サポートされていません。
// 'class' => 'application.core.web.DbHttpSession',
// 'connectionID' => 'db',
// 'sessionTableName' => '{{sessions}}',
'cookieParams' => array(
'secure' => true,
'httponly' => true,
'samesite' => 'None',
),
),
iframeでcsrf cookieを許可する
セッションCookieと同様に、CSRF Cookieもsecureとし、sameSiteにはNoneを設定する必要があります。ここではキーがsameSiteと記述される点に注意してください。request配列全体を、sessionと同じ階層に追加します。
'request' => array(
'enableCsrfValidation'=>true,
'csrfCookie' => array(
'sameSite' => 'None',
'secure' => true,
),
),
URL設定
既定のURL設定を変更するには、urlManagerを更新します。
// Use short URL
'urlManager' => array(
'urlFormat' => 'path',
'showScriptName' => false,
),
アンケートIDの後に次のように.htmlを追加することもできます。
// Use short URL
'urlManager' => array(
'urlFormat' => 'path',
'rules' => array (
'<sid:\d+>' => array('survey/index','urlSuffix'=>'.html','matchValue'=>true),
),
'showScriptName' => false,
),
詳細は、Yiiのドキュメントを参照してください。
ロギング設定
Yiiは、ログを生成するさまざまなソリューションを提供します。詳細については、ロギングについてをチェックしてください。LimeSurveyは、既定で'1'または'2'を使用しています。これにより、すべてのウェブユーザーがログを参照できます。あなたはYiiを使って自分の設定を直接作成することができます。
たとえば、ファイル内のエラーと警告を記録する簡単な方法は次のとおりです。
return array(
'components' => array(
/* 'db'など他のコンポーネント部分 */
'log' => array(
'routes' => array(
'fileError' => array(
'class' => 'CFileLogRoute',
'levels' => 'warning, error',
'except' => 'exception.CHttpException.404',
),
),
),
/* 'urlManager'など他のコンポーネント部分 */
),
/* 最終パート('runtimePath'や'config'など) */
);
application.controller.customInit.max_execution_timeカテゴリとapplication.controller.customInit.memory_limitカテゴリは、PHP設定の変更を試みた際のログ記録に使用されます。
これらのログメッセージを把握していて、ログから除外したい場合は、以下のように、ログルート設定のexceptオプションにこれらのカテゴリを追加できます。
'except' => [
'exception.CHttpException.404',
'application.controller.customInit.max_execution_time',
'application.controller.customInit.memory_limit',
],
limesurvey/tmp/runtime/application.logに保存されます。これはLimeSurveyのルートフォルダにあります。別のファイル名を設定するには、logFileを使用します。.
ランタイムパス
ランタイムパスは、"webユーザー"が読み書きできるディレクトリでなければなりません。ただし、ランタイムパスには、公開ウェブアクセス領域にある潜在的なセキュリティ情報を持つファイルが含まれています。LimeSurveyは、これらのファイルをLimeSurveyルートディレクトリのtempディレクトリに収集します。このような重要なデータへのアクセスを排除するために、/application/config/config.phpファイルの各行を編集することで、外部からウェブでアクセスできない場所にランタイムパスを設定することができます。
return array(
'components' => array(
[…]
'runtimePath'=>'/var/limesurvey/runtime/',
'config'=>array(
[…]
)
)
)
全体設定
- sitename: アンケートサイトに付ける名前です。この名前は、アンケート一覧の概要と管理画面のヘッダーに表示されます。既定値は'LimeSurvey'で、全体設定ダイアログで上書きするか、config.phpで編集できます。
- siteadminemail: サイト管理者の既定のメールアドレスで、システムメッセージや連絡先として使用されます。この設定は既定値としてのみ使用され、全体設定ダイアログで上書きできます。
- showEmailInError: エラーページのmailtoリンクに、既定のサイト管理者メールアドレス(siteadminemail)を使用します。無効にすると管理者名のみが表示されます。管理者メールアドレス宛のスパムを増やさないよう、既定では無効です。
- siteadminbounce: 配信エラーとなったメールの送信先メールアドレスです。この設定は既定値としてのみ使用され、全体設定ダイアログで上書きできます。
- siteadminname: サイト管理者の実際の名前です。この設定は既定値としてのみ使用され、全体設定ダイアログで上書きできます。
- proxy_host_name: プロキシサーバーのホスト名です(プロキシの背後にあり、簡単アップデートを使用してLimeSurveyを更新したい場合は、設定する必要があります)。
- proxy_host_port: プロキシサーバーのポート番号です(プロキシの背後にあり、簡単アップデートを使用してLimeSurveyを更新したい場合は、設定する必要があります)。
セキュリティ
- maxLoginAttempt: ユーザーが正しいパスワードを入力できる回数です。この回数を超えると、そのユーザーのIPアドレスがブロック/ロックアウトされます。既定値は3で、config.phpから変更できます。
- timeOutTime: ユーザーが<maxLoginAttempt>の回数分パスワードを誤って入力すると、<timeOutTime>秒間ロックアウトされます。既定値は10分で、config.phpから変更できます。
- maxLoginAttemptParticipants: 参加者が有効なトークンを入力できる回数です。この回数を超えると、その参加者のIPアドレスがブロック/ロックアウトされます。既定値は3で、config.phpから変更できます。
- timeOutParticipants: 参加者が<maxLoginAttemptParticipants>の回数分トークンを誤って入力すると、<timeOutParticipants>秒間ロックアウトされます。既定値は10分で、config.phpから変更できます。
- surveyPreview_require_Auth: 既定ではtrueに設定されています。これを'false'に設定すると、管理画面にログインしたりアンケートを稼働したりしなくても、誰でもアンケートURLを使ってアンケートをテストできるようになります。この設定は既定値で、全体設定ダイアログで上書きするか、config.phpで編集できます。
- usercontrolSameGroupPolicy: 既定ではtrueに設定されています。既定では、LimeSurveyの管理インターフェースで定義された管理者以外のユーザーは、自分が作成したユーザー、または少なくとも1つ同じグループに属するユーザーのみを表示できます。既定値は全体設定ダイアログで上書きするか、config.phpで編集できます。
- demoMode: config.phpでこのオプションを'true'に設定すると、LimeSurveyがデモモードになります。デモモードでは次の点が変更されます。
- 管理者ユーザーの詳細とパスワードの変更を無効にします。
- テンプレートエディタでのファイルのアップロードを無効にします。
- メールによる招待状とリマインダーの送信を無効にします。
- データベースダンプの作成を無効にします。
- 次の全体設定の変更を無効にします:サイト名、既定の言語、既定のHTMLエディタモード、XSSフィルター。
- forcedsuperadmin: LimeSurvey上のすべての権限を持つユーザーIDの配列です。この設定はconfig.phpファイルでのみ更新できます。このユーザーの権限は、他の強制スーパー管理者であっても、ユーザーの全体権限では編集できません。既定では、この権限を持つユーザーはID 1のユーザー、つまりインストール直後に最初に作成されたユーザーです。
- force_ssl: LimeSurveyを強制的にHTTPS経由で実行するか、HTTPSをブロックするかを設定します。全体設定の管理GUIにあるHTTPSを強制を参照してください。
- ssl_emergency_override: この設定はSSLを強制的にオフにします。全体設定でHTTPS/SSLをオンにしたものの、サーバーでHTTPSが有効になっていない場合、オフにする方法はデータベースの値を直接変更することだけです。この設定を使用すると、Force Secureに関する全体設定を変更している間、HTTPSを強制的にオフにできます。緊急時に問題を修正するまでtrueに変更する場合を除き、常にfalseにしておいてください。この設定はconfig.phpファイルでのみ設定できます。
- ssl_disable_alert: SSLを強制できない、または強制したくない場合に、SSLが強制されていないことについてのスーパー管理者への警告を無効にします。この設定はconfig.phpファイルでのみ設定できます。
- allow_unserialize_attributedescriptions: アンケートオブジェクトのインポートまたは読み取り時に、トークン属性を(PHPのunserialize関数で)アンシリアライズすることを許可します。トークン属性のデータはJSONとして保存されます。非常に古いバージョンのLimeSurveyのアンケートファイルをインポートし、そのトークン属性が必要な場合は、この設定を有効にする必要があります。注意:アンシリアライズでは、オブジェクトのインスタンス化とオートロードによってコードが読み込まれ実行される可能性があり、悪意のあるユーザーに悪用されるおそれがあります。この設定はconfig.phpファイルでのみ設定できます。
- allow_unserialize_attachments: アンケートのインポート時に、添付ファイル属性を(PHPのunserialize関数で)アンシリアライズすることを許可します。LimeSurvey 6.16.17では、添付ファイル属性がserializeからjson_encodeに変更されました。古いLSSファイルをインポートする際に添付ファイルを保持する必要がある場合は、これを許可する必要があります。注意:アンシリアライズでは、オブジェクトのインスタンス化とオートロードによってコードが読み込まれ実行される可能性があり、悪意のあるユーザーに悪用されるおそれがあります。この設定はconfig.phpファイルでのみ設定できます。
- twig_getConfig_extraallowlist: Twigのバージョンのときのgã etConfig関数で使用を許可する要素を追加します。LimeSurveyは、必要性が高く使用頻度の高い設定をすでに許可していますが、さらに必要になる場合があります。'securesetting'と'anothersetting'を許可したい場合は、
['securesetting','anothersetting']を設定します('twig_getConfig_extraallowlist' => ['securesetting','anothersetting']のように記述します)。この設定はconfig.phpファイルでのみ設定できます。
クロスサイトスクリプティング(XSS)保護
LimeSurveyでは、管理ページ上でユーザーによるスクリプトを一切許可していません。いずれかのユーザーが管理ページにXSSスクリプトを追加できる方法を見つけた場合は、セキュリティポリシーを確認してください。
公開ページのスクリプトは、XSSフィルターの設定によって管理されます。
- filterxsshtml: この設定を有効にすると、管理インターフェースで、アンケート、グループ、質問および回答のテキストに含まれる不審なHTMLタグがフィルターされます。LimeSurveyの管理用に作成したユーザーを完全に信頼でき、そのユーザーにJavaScriptやFlashムービーなどの使用を許可したい場合にのみ、'false'のままにしてください。スーパー管理者のHTMLは決してフィルターされません。既定値は全体設定ダイアログで上書きできます。
- filterxsshtml_forcedall: すべてのユーザーに対して
filterxsshtmlを強制的にtrueにし、管理GUIでの更新を無効にします。スーパー管理者に対しても、不審なHTMLタグのフィルターが有効になります。 - filterxsshtml_allowforcedsuperadmin:
filterxsshtml_forcedallがtrueの場合にのみ使用されます。forcedsuperadmin(既定では管理者ユーザー#1)による任意のスクリプトおよびHTMLの追加を許可します。 - disablescriptwithxss: 質問内のスクリプトの更新を許可します。既定はtrueで、XSSのルールに従います。falseに設定すると、すべてのユーザーに許可されます。既定値は全体設定ダイアログで上書きできます。
- filterxsshtml_enablescript: filterxsshtml_forcedallがtrueの場合にのみ使用されます。特定のユーザーに対して質問スクリプトを有効にします。
gui:GUIからの設定更新を許可します。superadmin:スーパー管理者のみ。forcedsuperadmin:強制スーパー管理者のみ。既定では、どのユーザーも許可されず、GUIからの更新も許可されません。
許可するファイルアップロード
- allowedthemeimageformats : テーマセクションでアップロードを許可する画像のファイルタイプです。既定では、XSS攻撃の可能性があるため、SVGファイルは無効になっています。
- allowedthemeuploads : テーマセクションでアップロードを許可するその他のファイルタイプです(zipファイル)。
- allowedresourcesuploads : リソースセクションおよびHTMLエディタでアップロードを許可するファイルタイプです。
- allowedpluginuploads : プラグインのzipファイルをアップロードする際に許可するファイルタイプです。
カンマ区切りの拡張子の文字列を入力するだけです。例:
'allowedthemeimageformats' => 'jpg,jpeg,gif,png,webm,svg',
注意:ファイルのアップロードを許可する場合は、常に注意してください。悪意のある行為が行われる可能性があります。
プラグイン
- usePluginWhitelist : trueの場合、許可リスト('pluginWhitelist'を参照)にないプラグインは、インストールも読み込みもできません。そのため、すでにインストールされているプラグインが無効になる場合があります。
- pluginWhitelist : 'usePluginWhitelist'がtrueの場合に、インストールおよび読み込みを許可するプラグイン名のリストです。コアプラグインは暗黙的に許可リストに含まれます。
- corePluginBlacklist : 'usePluginWhitelist'がtrueの場合に、禁止するコアプラグイン名のリストです。
- disablePluginUpload : この設定がtrueの場合、「プラグインのアップロード」機能が無効になります。
ホストの制御
- allowedHosts : ホストヘッダーインジェクションを避けるため、すべてのアクションで許可するホストを設定できます。公開ページと管理ページで異なるホストを使用する場合は、両方を許可ホストとして設定する必要があります。
'config'=>array(
....
, // Update default LimeSurvey config here
'allowedHosts' => [
'survey.example.org',
'proxy.survey.example.com',
'example.limesurvey.org',
],
),
リソース
- iSessionExpirationTime: アンケートのセッションが期限切れになるまでの時間を秒単位で定義します。データベースセッションを使用している場合にのみ適用されます。データベースセッションを使用する場合は、config.phpでパラメータを変更するか、全体設定ダイアログから既定値を上書きしてください。
- memory_limit: LimeSurveyが使用できるメモリ量をメガバイト単位で指定します。既定値は'256'です。タイムアウトエラーが発生する場合や、統計の生成・ファイルのエクスポートで問題が発生する場合は、この上限を'512'以上に引き上げてください。Webサーバーのphp.iniでより高い上限が設定されている場合、この設定は無視されます。
メモリの上限を128Mに増やすには、以下を追加することもできます。
- memory_limit = 128M(サーバーのメインのphp.iniファイル。アクセス権がある場合におすすめします。)
- memory_limit = 128M (LimeSurveyルートのphp.iniファイル。)
- php_value memory_limit 128M (LimeSurveyルートの.htaccessファイル。)
- max_execution_time: スクリプトの実行が許可される秒数を設定します。これに達すると、スクリプトは'致命的エラー'を返します。巨大なアンケートデータと統計情報をエクスポートするため、LimeSurveyでは既定で1200秒に設定してあります。必要に応じて、より大きな時間またはより短い時間を設定することができます。PHPの設定ファイルからのみアクセスできます。
外観
- dropdownthreshold (Obsolete since 2.50):
$dropdownsに"R"が選択されている場合、管理者はラジオボタンとして表示されるオプションの最大数を設定してからドロップダウンリストに戻すことができます。多数の選択肢がある質問の場合、ラジオボタンとして一度に表示すると、扱いにくく見え、ユーザーにとってわかりにくくなります。これを多くとも25(既定値)などに設定すると、大きなリストでもアンケート参加者が使いやすいものにすることができます。 - repeatheadings: 配列質問タイプでは、画面表示の際、複数ページにわたるサブ質問がある場合があります。この設定では、質問のヘッダー情報を繰り返す前に表示するサブ質問の数を決定できます。15程度が程よい設定となります。見出しをまったく繰り返さないようにするには、0に設定します。この設定は、全体設定ダイアログ (2.05 から追加)で上書きされます。
- minrepeatheadings: 配列の質問で見出しを繰り返す前に必要な残りのサブ質問の最小数。既定値は3で、config.phpで編集できます。
- defaulttemplate: この設定は、アンケートの'公開リスト'に使用する既定のテーマを指定します。この設定は、全体設定ダイアログで上書きするか、config.phpで編集することができます。
- defaulthtmleditormode: 統合HTMLエディターのデフォルトモードを設定します。この設定は、全体設定ダイアログで上書きするか、config.phpで編集することができます。有効な設定は次のとおりです。
- 'inline' - HTMLエディター上でフィールドがインラインで置換されます。動作はゆっくりですが便利で使いやすくなっています。
- 'popup' - 必要に応じてポップアップでHTMLエディターを実行するアイコンを追加します。より高速ですが、HTMLコードがフォームに表示されます。
- 'none'- HTMLエディターなし。
- column_style: display_columnsを使用しているとき、アンケート回答の列の表示方法を定義します。これはconfig.phpファイルで編集できます。有効な設定は次のとおりです。
- 'css' - さまざまなCSSメソッドの1つを使用して列を作成します(詳細は、テンプレートスタイルシートを参照してください)。
- 'ul' - 複数の順序のないリストとしてレンダリングされます(既定)。
- 'table' - 従来のテーブルベースのレイアウトを使用します。
- NULL - 列の使用を無効にします。
言語と時間
- defaultlang: これは、管理スクリプトで使用される既定の言語、公開アンケートリストの既定の言語として設定する必要があります。この設定は、全体設定ダイアログで上書きするか、config.phpで編集することができます。
- timeadjust: ウェブサーバーがアンケートの対象となる場所と異なるタイムゾーンにある場合は、サーバーとホームタイムゾーンの差をここに入力します。たとえば、オーストラリアに住んでいるとして、米国のウェブサーバーを使用しているとします。ウェブサーバーは、現地時間から14時間遅れています。この場合の設定は"14"です。この設定は、アンケートの回答にタイムスタンプを付ける場合に特に重要です。この設定は、全体設定ダイアログで上書きするか、config.phpで編集することができます。
アンケートの動作
- deletenonvalues: この機能は慎重に使用してください。既定値(1)にすると、表示条件に合致しない質問はデータベースにNULLが格納されます。これにより、データベースのデータの内部的な一貫性が保証されます。ただし、表示条件に合致しない場合の関連値、つまり0を保持したい場合があります。たとえば、男性に性別を問い合せ、誤って'女性'と答えてから、女性向けの質問(女性であることを前提とした質問で、女性の場合のみ表示されます)に答えたとします。回答者は間違いに気づき、前に戻って性別を'男性'に変え、アンケートを継続します。このとき、女性向けの質問は表示条件に合致しないことになります。
$deletenonvalues==1となっている場合、値がクリアされデータベースにはNULLが格納されます。$deletenonvalues==0の場合、間違った答えは削除されず、分析の際にデータベースに残ったままになります。 - shownoanswer: 編集可能な回答(すなわち、リスト、配列の質問)を含むラジオボタン/選択タイプの質問が回答必須ではなく、 'shownoanswer'が1に設定されている場合、追加で'回答なし'の項目が表示され、回答者が回答しないことを選択することができます。これを利用できないようにしたいと考えることもあるでしょう。この設定は、全体設定ダイアログで上書きするか、config.phpで編集することができます。有効な値は次のとおりです。
- '0': いいえ
- '1': はい
- '2': アンケート管理者が選択できる
- printanswershonorsconditions: 回答印刷機能で、条件分岐によって隠された質問のエントリーを表示するかどうかを定義します(既定値は1で、条件により隠された質問の回答を非表示にします)。
- hide_groupdescr_allinone: この設定は、条件を使用したオールインワンアンケートに関係します。これを'true'に設定すると、グループ内のすべての質問が非表示になっていると、グループ名と説明が非表示になります。既定値は'true'で、グループ内のすべての質問が条件によって非表示となる場合、グループ名と説明も非表示になります。config.phpで編集することができます。
- showpopups: 必須または条件付きの質問に正しく答えられなかった場合にポップアップメッセージを表示します。
- '2' = テーマオプションで決める(既定)
- '1'=ポップアップメッセージを表示する
- '0'=ページにメッセージを表示する
- '-1'=メッセージを一切表示しない(この場合、回答が必須であることを示すヒントが表示されます)
数値の質問タイプの動作
- bFixNumAuto: 数値フィールドを自動的にフィルタリングして、すべての非数値を削除できます。既定では有効になっていますが、グローバルに無効にすることができます。この設定は、コアテーマオプションのFix automatically numeric value(数値を自動的に修正する)に関連しています。はいに対しては有効、式のみといいえに対しては無効となります。
- bNumRealValue: 式マネージャーで使用される数値フィールドを、修正するかどうかを設定できます。既定では修正するように設定されています。数値型の質問NUMERICについて、無効(0)に設定すると、{NUMERIC}に不正な文字が含まれる場合、''が送信されます。有効(1)に設定すると、{NUMERIC}に入力された文字が送信されます。この設定は、コアテーマオプションのFix automatically numeric value(数値を自動的に修正する)に関連しています。はいに対しては有効、式のみといいえに対しては無効となります。
開発とデバッグ
- debug: この設定では、PHPのエラー報告をE_ALLに設定します。つまり、スクリプトに関するどんな小さな通知、警告、エラーもすべて表示されます。何らかの理由でアプリケーションをデバッグする場合にのみ、この設定を '1' に切り替えてください。開発者の場合は '2' に切り替えます。パスが漏洩するおそれがあるため、本番環境では '1' または '2' にしないでください。既定値は '0' で、config.phpで編集できます。
- debugsql: ページ下部に、スクリプトで実行されたすべてのSQLクエリを表示したい場合に、この設定を有効にします。クエリ数の最適化にとても便利です。有効にするには、config.phpファイルで既定値を '1' に変更します。
- use_asset_manager: 既定では、デバッグモードの場合はアセットマネージャーが無効になります。この設定により、デバッグモードを有効にしたままでもアセットマネージャーを使用できるようになります。
- rpc_log: (New in 7.9.0 )
trueに設定すると、RemoteControl の呼び出しがすべてtmp/runtime/remotecontrol.logに記録されます。各行には、呼び出されたメソッド、そのパラメーター、クライアントのIPアドレス、処理時間、レスポンスの先頭部分が含まれます。パスワードは削除され、セッションキーは短いハッシュに置き換えられ、長い値は短縮されます。ただし、ログには送受信されたアンケート、参加者、回答のデータが含まれたままなので、問題を調査している間だけ有効にしてください。既定値はfalseです。
アプリケーションでエラーが発生した場合は、バグレポートで提出できる詳細なエラーを取得するため、デバッグ設定を有効にすることを強くお勧めします。
'config'=>array(
'debug'=>2,
'debugsql'=>0,
)
プラグインで作業をしていて、変数を画面上に素早くダンプするために、traceVar関数を使うことができます。デバッグが設定されている場合は、CWebLogRouteを使ってHTMLページに表示します。使用方法: traceVar($MyVariable)
メール設定
以下の設定はすべて、全体設定ダイアログで上書きできます。
- 'emailmethod: メールの送信方法を指定します。次のオプションを使用できます。
- 'mail:' PHP内部のメーラーを使用します。
- 'sendmail:' sendmailメーラーを使用します。
- 'smtp:' SMTPリレーを使用します。メールサーバーではないホストでLimeSurveyを実行している場合は、この設定を使用します。
- 'emailsmtphost:
$emailmethodに 'smtp' を使用する場合は、ここにSMTPサーバーを指定する必要があります。Googleメールを使用している場合は、$emailsmtphost = 'smtp.gmail.com:465' のようにポート番号を追加する必要がある場合があります。 - emailsmtpuser: SMTPサーバーで認証が必要な場合は、ここにユーザー名を設定します。認証が不要な場合は空白にしてください。
- emailsmtppassword: SMTPサーバーで認証が必要な場合は、ここにパスワードを設定します。認証が不要な場合は空白にしてください。
- emailsmtpssl: SMTP接続にSSL/TLSを使用するには、'ssl' または 'tls' を設定します。
- maxemails: アンケート参加者に案内やリマインダーを送信するとき、1回のまとまり(バッチ)で送信できるメールの数を指定します。ウェブサーバーによってメールの処理能力は異なり、メールの送信に時間がかかりすぎると、スクリプトがタイムアウトしてエラーが発生することがあります。ほとんどのウェブサーバーでは、PHPスクリプトの既定の制限時間である30秒以内に100通のメールを送信できます。大量のメールを送信する際にスクリプトのタイムアウトエラーが発生する場合は、この設定の値を小さくしてください。トークン管理ツールバーの「案内メールを送信」ボタン(各トークンの右側にあるボタンではありません)をクリックすると、<maxemails> で指定した数の案内が送信され、その後、受信者のアドレス一覧と、1回のバッチで送信できる数よりも多くのメールが保留中です。下をクリックしてメールの送信を続けてください。まだ送信されていないメールが ### 通あります。 という警告が表示され、次のバッチに進むための「続行ボタン」が表示されます。つまり、各バッチの送信後、次のバッチをいつ送信するかはユーザーが決めます。この画面を開いたまま待つ必要はありません。管理者はいったんログアウトし、後でまた戻って次の案内を送信できます。
- send_error_saving_results_email: (New in 7.8.0 ) 回答を保存できなかった場合、LimeSurveyは件名「回答の保存エラー」のメールで、回答内容をアンケート管理者に送信します。このメールの送信を止めるには、
falseに設定します。参加者には引き続きエラーメッセージが表示されます。既定値はtrueです。この設定はconfig.phpでのみ変更できます。
統計と回答の閲覧
- filterout_incomplete_answers: 回答を閲覧したり解析したりするときに、未完了の回答をフィルタする既定の動作を制御します。未完了の回答についての議論は、アンケート結果閲覧に関するウィキを参照してください。これらのレコードは統計情報を破損する可能性があるため、このフィルタをいくつかのGUIフォームでオンまたはオフに切り替えられるようになっています。パラメーターはconfig.phpで編集できます。次のオプションを使用できます。
- 'show': 完了した回答と未完了の回答の両方を表示することができます。
- 'filter': 完了した回答のみ表示します。
- 'incomplete': 未完了の回答のみ表示します。
- strip_query_from_referer_url: この設定は、参照元URLのパラメーター部分を破棄するかどうかを決定するものです。既定値は'false'です(この場合、リファラーURLはすべてのパラメータを保存します)。一方、この値を'true'に設定して、リファラーURLのパラメータ部分を削除することもできます。
- showaggregateddata: 有効にすると、算術平均や標準偏差などの追加の統計値が表示されます。データをさらに集約し、より迅速に概要を確認することもできます。たとえば、得点が1と2、4と5となった結果は、"良い"(1と2)、"平均"(3)、"悪い"(4と5)のような一般的なランキングとなるように集約されます。これは質問タイプ"A"(5点尺度配列)と"5"(5点尺度)にのみ当てはまります。
- PDFエクスポート設定: この機能は、印刷可能なアンケートのPDFエクスポートと回答の印刷を有効にします。PDFエクスポート機能は実験的なものであり、出力は完全ではありません。残念ながら、現時点でサポートは提供されていません。修正を手助けしたい場合は、私たちに連絡してください。
- 'usepdfexport': 無効にするには'0'、有効にするには'1'とします。
- 'pdfdefaultfont': PDFエクスポート機能で使用される既定のフォントを指定します。既定値は'auto'です。これを変更するには、PDF core fontsの1つに設定する必要があります。
- 'alternatepdffontfile': 言語キーと対応するフォントを持つ配列です。各言語の既定のフォントは、config.phpファイルで置き換えることができます。
- 'pdffontsize': 通常のテキストのフォントサイズを表示します。アンケートのタイトルは<pdffontsize>+4、グループタイトルは<pdffontsize>+2です。config.phpファイルまたは全般設定ダイアログで編集できます。
- 'notsupportlanguages': PDFフォントが見つからない言語のリストが含まれています。このリストには、アムハラ語('am')、シンハラ語('si')、タイ語('th')が含まれており、config-defaults.phpファイルにあります。
- 'pdforientation': 横置きの場合は'L'、縦置きの場合は'P'を設定します。これはconfig.phpファイルから編集できます。
- グラフ設定
- 'chartfontfile': 統計グラフの作成に使用されるフォントファイル名を設定します。このファイルは、LimeSurveyのルートフォルダにあるfontsディレクトリに配置する必要があります。これはconfig.phpファイルで編集できます。
- 'alternatechartfontfile': 言語キーと対応するフォントを持つ配列です。これはconfig.phpファイルで編集できます。
- showsgqacode: この設定は印刷可能なアンケート機能で使用され、既定値は'false'です。showsgqacode = 'true'と設定すると、各質問のIDと、回答(該当する場合)が表示されます。このIDは、アンケートの回答データを保持するLime_survey_12345表の列見出しと一致します。IDは、手動によるデータベースクエリーのコードブックに使用できます。
LDAP設定
これは広範なトピックであるため、 LDAP設定は別のページに移動しました。
認証
認証はプラグインによって処理されます。以下の設定は、Webサーバー認証プラグインで使用されます。詳細は認証プラグインを参照してください。
ウェブサーバーへの認証委任
システム管理者は、アンケート管理者の認証を、LimeSurvey内部のデータベースではなく、中央の認証システム(Active Directory、openLdap、Radiusなど)で行いたい場合があります。これを簡単に行うには、Webサーバーソフトウェアがこの外部認証システムを使用するように設定し、Webサーバーが報告したユーザーIDを信頼するようLimeSurveyに設定します。この機能を有効にするには、次の操作が必要です。
- 設定 > プラグインでWebserverプラグインを有効にし、プラグイン設定でユーザー名を保持するサーバーキー(既定: REMOTE_USER)を設定します。
- Webサーバー側で認証を有効にします。
以下の点に注意してください。
- LimeSurveyは、(パスワードを要求せず、ウェブサーバーから報告されたログイン名を使用して)独自の認証プロセスをバイパスします。
- これは、アンケートに招待する仕組み(参加者インターフェイス) ではなく、単にLimeSurveyのGUI認証システムを置き換えるものです。
自動ユーザーインポートを使用しない認証委任
既定では、認証委任はLimeSurvey認証システムをバイパスしません。つまり、LimeSurveyでパスワードを管理する必要がなくても、LimeSurveyデータベースでユーザーを定義し、管理パネルにアクセスさせるために適切な権限セットを割り当てる必要があります。
LimeSurveyへのアクセスが許可されるのは、次のすべてを満たす場合のみです。
- Webサーバーで認証されている。
- ログイン名がLimeSurveyのユーザーデータベースにユーザーとして定義されている(そのユーザーには、LimeSurveyのユーザーデータベースで定義された権限が付与されます)。
- 全体の権限としてWebサーバー認証を使用しますを持っている。
自動ユーザーインポートを使用する認証委任
膨大なユーザーデータベースを管理する場合は、LimeSurveyデータベースにユーザーを自動インポートする方が簡単なことがあります。
- auth_webserver_autocreate_user: 'true'に設定すると、Webサーバーで認証されたものの、ユーザーデータベースにまだ存在しないユーザーを、LimeSurveyが自動インポートしようとします。
- auth_webserver_autocreate_profile: ユーザーに割り当てられる既定のプロファイル(フルネーム(ダミー)、メール、言語)を記述した配列。
- auth_webserver_autocreate_permissions: ユーザーに割り当てられる全体の権限を記述した配列。
ログインしたユーザーに合わせてユーザープロファイルをカスタマイズしたい場合は、config.phpにhook_get_auth_webserver_profileという簡単な関数を作成する必要があります。この関数を使用すると、中央のユーザーアカウントデータベース(LDAPディレクトリなど)から、特定のユーザーの本来のフルネーム、メール、言語を取得できます。
hook_get_auth_webserver_profile関数は、ユーザーのログイン名を唯一の引数として受け取り、次の値を返すことができます。
- Falseまたは空の配列 - この場合、ユーザーはLimeSurveyへのアクセスが拒否されます。
auth_webserver_autocreate_profileと同じエントリを含む配列。
function hook_get_auth_webserver_profile($user_name)
{
// Retrieve user's data from your database backend (for instance LDAP) here
// ... get $user_name_from_backend
// ... get $user_email_from_backend
// ... get $user_lang_from_backend
return array(
'full_name' => $user_name_from_backend,
'email' => $user_email_from_backend,
'lang' => $user_lang_from_backend,
);
}
// If user should be denied access, return an empty array
// return array();
ユーザー名のマッピング
LimeSurveyのユーザー名とは異なる外部ユーザー名を持つユーザーがいる場合は、ユーザー名のマッピングを使用すると便利です。 LimeSurveyでは、 auth_webserver_user_mapパラメータを使用して実現します。たとえば、外部認証データベースに'admin'ユーザー名が定義されていないとします。adminとしてLimeSurveyにログインするには、LimeSurveyのログイン名adminに外部ユーザー名(仮に'myname'とします)をマップする必要があります。このための設定は次のとおりです。
'config'=>array(
...
'auth_webserver_user_map' => array ('myname' => 'admin');
)
'myname'ログインとウェブサーバーのパスワードで認証が成功すると、LimeSurveyを'admin'ユーザーとして直接使用する権限が与えられます。
これには重大なセキュリティ上の影響がありますので、注意して使用してください。 また、ウェブサーバーによる書き込みができないようconfig.phpを保護してください。
ワンタイムパスワードを使用する
ユーザーはdefault.com/limesurvey/adminにあるLimeSurveyのログインページを開き、ユーザー名とワンタイムパスワード(以前は、外部アプリケーションによって、ユーザーテーブルのcolumn one_time_pwに書き込まれていた)を入力できます。
ワンタイムパスワードを使用するには、config.phpでこの設定を有効にする必要があります(既定値はfalse)。
'config'=>array(
'debug'=>0,
'debugsql'=>0,
'use_one_time_passwords'=>true,
)
詳細については、"ユーザの管理"セクションを参照してください。
暗号化設定
application/config/security.phpファイルにセットされます。この設定をsecurity.phpに残すか、必要に応じ、config.phpに移すこともできます。この機能の詳細は、データ暗号化を参照してください。
- encryptionkeypair
- encryptionpublickey
- encryptionsecretkey
- encryptionnonce
- encryptionsecretboxkey
高度なURL設定
- publicurl: '公開スクリプト'のURLの場所を設定します。公開スクリプトとは、"limesurvey"フォルダー(または、他のすべてのスクリプトやディレクトリが入っているディレクトリにつけた名前)にあるものです。この設定はconfig.phpで利用でき、LimeSurveyが絶対URLを必要とするとき(例えば、トークンメールを送信するときなど)に使用されます。
- tempurl: "/limesurvey/tmp"ディレクトリ、またはLimeSurveyが一時ファイルを提供するために使用するディレクトリのURLの場所を設定します。
- uploadurl: "/limesurvey/upload"ディレクトリ、またはLimeSurveyがアップロードされたファイルを提供するために使用するディレクトリのURLの場所を設定します。これにより、アップロードされたファイルを別のURLドメインに配置できます。
高度なパス設定
- homedir: 管理用スクリプトの物理的なディスク上の場所を設定します(例: "/home/usr/htdocs/limesurvey/admin")。このエントリには、末尾にスラッシュを付けないでください。config.phpの既定の設定では、PHP変数
{$_SERVER['DOCUMENT_ROOT']}を使って、すべてのドキュメントの既定のルートパスを検出しようとします。ほとんどの場合、このままにしておき、残りの文字列をLimeSurveyスクリプトを置いたディレクトリ名に合わせて変更すればよいでしょう。 - publicdir: '公開スクリプト'の物理的なディスク上の場所を設定します。
- tempdir: スクリプトがファイルを読み書きできるよう、/limesurvey/tmpディレクトリの物理的なディスク上の場所を設定します。
- uploaddir: スクリプトがファイルを読み書きできるよう、/limesurvey/uploadディレクトリの物理的なディスク上の場所を設定します。
- sCKEditorURL: CKEditorスクリプトのURLです。
その他の詳細設定
ファイルのアップロード
- magic_database: finfo_openに別のMIMEデータベースを使用できるようにします。config.phpファイルでのみ更新できます。例: Red Hat系Linuxの場合は
/usr/share/misc/magic.mgc。 - magic_file: MIMEタイプごとの拡張子の配列を取得するために、付属のファイルとは別のファイルを使用できるようにします。配列を返すPHPファイルである必要があります。config.phpファイルでのみ更新できます。
アップデート
- updatable: この設定はversion.phpにあります。trueかfalseに設定できます。trueに設定した場合、スーパー管理者ユーザーがログインしたとき、LimeSurveyはアップデートが利用可能かどうかを確認して警告を表示します。falseに設定した場合、チェックは行われず、ComfortUpdateを使用できません。
トークン
- allowedcharacters_pattern_token : トークンをフィルタリングする際の正規表現パターンを設定します。