x

主要章節

  1. LimeSurvey Cloud 與 LimeSurvey CE 的差異
  2. 快速入門指南 - LimeSurvey 3.0+
  3. 安裝 - LimeSurvey CE
  4. 如何設計一份好的問卷(指南)
  5. 入門指南
  6. 管理 LimeSurvey
  7. 問卷 - 簡介
  8. 問卷設定
  9. 問卷選單
  10. 問卷結構
  11. 問題簡介
  12. 題組 - 簡介
  13. 問卷管理
  14. 問卷工具列選項
  15. 多語言問卷
  16. ExpressionScript 引擎 - 快速入門指南
  17. 未分類及進階功能
  18. 常見問題
  19. 疑難排解
  20. 應變方案
  21. 授權條款
  22. 版本更改紀錄檔
  23. 外掛程式
 Actions

選用設定

From LimeSurvey Manual

本頁面可能為機器翻譯,可能包含錯誤。 檢視英文原文 · 改善此翻譯
This page is a translated version of the page Optional settings and the translation is 100% complete.

本節適用於希望編輯無法透過 LimeSurvey 安裝程式的 GUI(圖形使用者介面)修改之組態設定的使用者。請注意,在 LimeSurvey 根目錄中所做的所有變更,風險由您自行承擔。若您遇到問題或需要進一步的指引,歡迎加入討論論壇,向 LimeSurvey 社群尋求協助。

簡介

若要修改安裝的組態設定,您必須編輯選用設定。這些設定位於 LimeSurvey 根目錄中的 /application/config/config-defaults.php。標準安裝的預設設定可在 config-defaults.php 中找到。其中部分設定可透過全域設定對話框覆寫,其餘設定則必須手動編輯。

  If you want to change these settings, please do not change them in config-defaults.php, but copy the particular setting/line to /application/config/config.php in 'config'=>array( ) and change it there. All the newly modified/introduced settings from the config.php file will override the default values from config-defaults.php.


執行升級時,只有 config-defaults.php 的設定會被變更。因此,編輯 config.php 檔案可保留您的自訂設定。

若要更新/新增 /application/config/config.php 中的 LimeSurvey 設定,您必須更新 config 陣列:

    'config'=>array(
        'debug'=>0,
        'debugsql'=>0,
        'LimeSurveySetting'=>'New value', // Update default LimeSurvey config here
    )

Yii 設定

LimeSurvey 使用 Yii 框架,該框架在 application/config/internal.php 及 application/config/config.php 檔案中有其自身的組態參數。您也可以透過 Yii 組態存取 LimeSurvey 的某些特定組態設定。

由於 config.php 陣列會合併至整體組態,因此您可以在 config.php 檔案中取代任何 Yii 參數。

Yii 專屬設定位於 components 陣列中:

    'components' => array(
        'db' => array(
            ....
        ),
        'Specific settings'=>array(
            ....
        ),
    ),
如需有關 Yii 框架的詳細資訊,請參閱以下連結。

資料庫設定

首次安裝 LimeSurvey 時,安裝程式會將資料庫設定寫入 config.php。如有需要,您可以更新 config.php 檔案中的這個部分。請記住,此操作風險由您自行承擔! 另請參閱 Yii 文件,並請注意 LimeSurvey 僅支援下列資料庫類型:mysql、pgsql、dblib、mssql 和 sqlsrv。

工作階段設定

您可以在 config.php 中設定部分工作階段參數(請參閱下方兩個範例)。您可以在 config.php 中取消註解或新增所需的部分。其他設定請參閱 Yii 文件。

  如果您需要更新工作階段設定,以便在同一部伺服器上執行多個 LimeSurvey 執行個體,請檢查是否也需要更新 CSRF cookie 的請求設定。


使用以資料表為基礎的工作階段

LimeSurvey 可以使用以資料表為基礎的工作階段,您可以在預設產生的 config.php 檔案中找到已註解的部分。若要使用以資料表為基礎的工作階段,請移除每行前面的 //。

        'session' => array (
            'class' => 'application.core.web.DbHttpSession',
            'connectionID' => 'db',
            'sessionTableName' => '{{sessions}}',
        ),
  MSSQL 伺服器目前不支援以資料表為基礎的工作階段。


其他工作階段更新

如果您的 LimeSurvey 安裝使用 SSL('https'),在 config.php 中加入下列幾行可提高工作階段的安全性:

        // Set the cookie via SSL
        'session' => array (
            'cookieParams' => array(
                    'secure' => true, // use SSL for cookies
                    'httponly' => true // Cookies may not be used by other protocols - experimental
                ),
            ),

如果您想固定 cookie 的網域,請在 config.php 中使用下列語法:

        // Set the domain for cookie
        'session' => array (
            'cookieParams' => array(
                    'domain' => '.example.org',
                ),
            ),

如果同一部伺服器上有多個安裝,為每個 LimeSurvey 執行個體設定不同的工作階段名稱會更快速、簡單。在某些情況下,IE11 可能需要這項設定(請參閱 issue 12083)

        // Set the name of the session
        'session' => array (
            'sessionName' => "LimeSurveyN1",
            ),

請求設定

請求設定很重要,但預設設定已針對 LimeSurvey 的使用情境進行最佳化。若要進一步了解,請參閱 Yii 文件。

例如,LimeSurvey 的請求設定組態可依下列方式修改(風險自行承擔):

        // Disable CSRF protection
        'request' => array(
            'enableCsrfValidation'=>false,    
            ),
        // Enforce a certain URL base 
        'request' => array(
            'hostInfo' => 'http://www.example.org/'  
            ),
        // Set the cookie domain name and path for CSRF protection, path is used if you have different instance on same domain
        'request' => array(
            'csrfCookie' => array( 
                'domain' => '.example.com',
                'path' => '/limesurvey/',
            )
        ),

如果您只需要更新邀請碼電子郵件的網址,請在 config.php 檔案中設定您的 publicurl。


允許在 iFrame 中使用工作階段與 CSRF 驗證

在全域安全性設定中開啟 允許的 IFrame 嵌入 僅允許瀏覽器在 iframe 中顯示您的問卷。若要讓參與者能在 iframe 中填寫並送出問卷,您還需要如下所述變更 config.php 中的工作階段與 CSRF cookie 設定。兩個 cookie 都必須以 SameSite=None 傳送,而瀏覽器僅在有效的 HTTPS 連線下才接受此設定。

  即使套用了上述所有設定,iframe 中的問卷在某些瀏覽器或某些瀏覽器設定下仍可能失敗,例如在私密瀏覽模式或封鎖第三方 cookie 時。這些設定已在 Firefox 81.0.2 至 115、Chromium 85.0.4183.121 至 119 以及 Edge 119 的預設設定下測試。LimeSurvey 不為此設定提供支援,僅提供社群支援。


允許在 iframe 中啟動工作階段

工作階段 Cookie 必須是安全的(需要有效的 HTTPS 連線)且為 httponly,samesite 必須設為 None。cookieParams 中的鍵必須全部使用小寫。

 		 'session' => array (
			'sessionName'=>'LS-VBXZZORFJZCAKGYI',
			// Uncomment the following lines if you need table-based sessions.
			// Note: Table-based sessions are currently not supported on MSSQL server.
			// 'class' => 'application.core.web.DbHttpSession',
			// 'connectionID' => 'db',
			// 'sessionTableName' => '{{sessions}}',
			'cookieParams' => array(
				'secure' => true,
				'httponly' => true,
				'samesite' => 'None',
			),
		 ),

允許 iframe 中的 CSRF Cookie

與工作階段 Cookie 相同,CSRF Cookie 必須是安全的,且 sameSite 必須設為 None。請注意,此處的鍵寫作 sameSite。請將整個 request 陣列新增在與 session 相同的層級。

		'request' => array(
			'enableCsrfValidation'=>true,
			'csrfCookie' => array(
				'sameSite' => 'None',
				'secure' => true,
			),
		),

URL 設定

  如果您只需要更新權杖及其他電子郵件的網址,請在 config.php 檔案中設定 publicurl。


若要變更預設的 URL 設定,請更新 urlManager:

       // 使用短網址
		'urlManager' => array(
			'urlFormat' => 'path',
			'showScriptName' => false,
		),


您也可以依下列方式在問卷 ID 後面加上 .html:

       // 使用短網址
		'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(
		/* Other component part here 'db' for example */
		'log' => array(
			'routes' => array(
				'fileError' => array(
					'class' => 'CFileLogRoute',
					'levels' => 'warning, error',
					'except' => 'exception.CHttpException.404',
				),
			),
		),
		/* Other component part here 'urlManager' for example */
	),
	/* Final part (with 'runtimePath' 'config' for example) */
);
 Hint: 檔案預設儲存在 limesurvey/tmp/runtime/application.log,位於 LimeSurvey 根資料夾中。
  Yii 會使用執行階段路徑。依預設,記錄檔可透過網頁存取,其中可能包含大量來自您伺服器的資訊。最好使用無法透過網頁存取的目錄。您可以在 routes 中設定,或更新執行階段路徑。

.

執行階段路徑

執行階段路徑必須是「網頁使用者」可讀取且可寫入的目錄。然而,執行階段路徑中的檔案可能含有敏感的安全資訊,而這些檔案位於可公開存取的網頁區域。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: 這是您的代理伺服器的主機名稱(如果您位於代理伺服器之後,並希望使用 ComfortUpdate 更新 LimeSurvey,則必須填寫)。
  • proxy_host_port: 這是您的代理伺服器的連接埠(如果您位於代理伺服器之後,並希望使用 ComfortUpdate 更新 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',任何人都可以使用問卷網址測試您的問卷,而無須登入管理面板,也不必先啟用問卷。此設定為預設值,可在全域設定對話方塊中覆寫,或在 config.php 中編輯。
  • usercontrolSameGroupPolicy:預設為 true。依預設,在 LimeSurvey 管理介面中定義的非管理員使用者,只能看到自己建立的使用者,或至少屬於同一群組的使用者。預設值可在全域設定對話方塊中覆寫,或在 config.php 中編輯。
  • demoMode: 如果在 config.php 中將此選項設為 'true',LimeSurvey 就會進入展示模式。展示模式會變更下列項目:
    • 停用管理員使用者的詳細資訊與密碼變更;
    • 停用在範本編輯器中上傳檔案;
    • 停用傳送電子郵件邀請與提醒;
    • 停用建立資料庫傾印;
    • 停用修改下列全域設定的功能:網站名稱、預設語言、預設 HTML 編輯模式、XSS 篩選。
  • forcedsuperadmin: 擁有 LimeSurvey 所有權限的使用者 ID 陣列。此設定只能在 config.php 檔案中更新。即使是其他強制超級管理員,也無法在使用者的全域權限中編輯這些使用者的權限。預設情況下,擁有此權限的使用者是 ID 為 1 的使用者,即安裝後建立的第一位使用者。
  • force_ssl: 強制 LimeSurvey 透過 HTTPS 執行,或阻止使用 HTTPS。請參閱全域設定管理介面中的 強制開啟 HTTPS 加密連線設定。
  • ssl_emergency_override: 此設定會強制關閉 SSL。如果您在全域設定中開啟了 HTTPS/SSL,但伺服器並未啟用 HTTPS,唯一的關閉方式就是直接變更資料庫中的值。此設定可讓您在變更強制安全連線的全域設定時,強制關閉 HTTPS。除非遇到緊急情況,否則應一律為 false;緊急時請將其改為 true,待問題解決後再改回。此設定只能透過 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 中的 getConfig 函式額外允許特定元素。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,並停用在管理介面中的更新。同時也會對超級管理員啟用可疑 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 :為避免主機標頭注入(Host Header Injection),您可以為所有動作設定允許的主機。如果公開頁面和管理頁面使用不同的主機,則需要將兩者都設定為允許的主機。
    'config'=>array(
            ....
,		// Update default LimeSurvey config here
		'allowedHosts' => [
			'survey.example.org',
			'proxy.survey.example.com',
			'example.limesurvey.org',
		],
    ),

資源

  • iSessionExpirationTime: 定義問卷工作階段到期的時間(以秒為單位)。僅在使用資料庫工作階段時適用。如果您使用資料庫工作階段,請在 config.php 中更改此參數,或從全域設定對話框中覆寫預設值。
  • memory_limit: 決定 LimeSurvey 可使用的記憶體大小(以 MB 為單位)。預設值為 '256'。如果您遇到逾時錯誤,或在產生統計或匯出檔案時發生問題,請將此限制提高到 '512' 或更高。如果您的網頁伺服器在 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 設定檔存取。

外觀

  • repeatheadings: 使用陣列問題類型時,您通常會有很多子問題,在螢幕上顯示時會超過一頁。此設定可讓您決定在重複顯示問題的標題資訊之前,要顯示多少個子問題。建議設定為 15 左右。如果您完全不希望標題重複,請將其設為 0。此設定會被全域設定對話框覆寫。
  • minrepeatheadings: 在陣列問題中重複標題之前,所需的剩餘子問題最小數量。預設值為 3,可在 config.php 中編輯。
  • defaulttheme: 此設定指定用於問卷「公開清單」的預設佈景主題。此設定可在全域設定對話框中覆寫,或在 config.php 中編輯。
  • defaulthtmleditormode: 設定內建 HTML 編輯器的預設模式。此設定可在全域設定對話框中覆寫,或在 config.php 中編輯。有效設定如下:
    • 'inline' - 以 HTML 編輯器就地取代欄位。速度較慢,但方便且使用者友善;
    • 'popup' - 新增一個圖示,需要時可在彈出視窗中執行 HTML 編輯器。速度較快,但表單中會顯示 HTML 程式碼;
    • 'none'- 不使用 HTML 編輯器;
  • column_style: 定義使用 display_columns 時問卷答案的欄如何呈現。可在 config.php 檔案中編輯。有效設定如下:
    • 'css' - 使用各種 CSS 方法之一來建立欄(詳情請參閱範本樣式表);
    • 'ul' - 欄會呈現為多個浮動的無序清單(預設);
    • 'table' - 使用傳統的表格式版面配置;
    • NULL - 停用欄的使用。

語言與時間

  • defaultlang: 此項應設為管理指令碼中使用的預設語言,同時也是公開問卷清單中語言的預設設定。此設定可在全域設定對話框中覆寫,或在 config.php 中編輯。
  • timeadjust: 如果您的網頁伺服器所在時區與問卷的實際所在地不同,請在此填入伺服器與您所在時區之間的時差。例如,我住在澳洲,但使用美國的網頁伺服器。該網頁伺服器比我當地時區慢 14 小時,因此我在此的設定為「14」。換句話說,它會在網頁伺服器的時間上加 14 小時。當問卷為回應加上時間戳記時,此設定尤其重要。此設定可在全域設定對話框中覆寫,或在 config.php 中編輯。

問卷行為

  • deletenonvalues: 請謹慎使用此功能。預設情況下(值為 1),不相關的問題在資料庫中會被設為 NULL。這可確保資料庫中的資料內部一致。然而,在少數情況下您可能想保留不相關的值,此時可將值設為 0。例如,您詢問一位男性的性別,他不小心回答「女性」,然後回答了一些女性專屬的問題(以女性為條件的問題,因此僅與女性相關)。之後他發現自己的錯誤,返回上一頁,將性別改為「男性」,並繼續填寫問卷。此時,女性專屬的問題已不相關。如果 $deletenonvalues==1,這些不相關的值將在資料庫中被清除(設為 NULL)。如果 $deletenonvalues==0,他錯誤的答案不會被刪除,因此在您分析資料庫時仍然存在。
  • shownoanswer: 當包含可編輯答案的單選按鈕/選擇類型問題(例如:清單、陣列問題)不是必填,且 'shownoanswer' 設為 1 時,會顯示額外的「不適用」項目,讓參與者可以選擇不回答該問題。有些人偏好不提供此選項。此設定可從全域設定對話框覆寫,或在 config.php 中編輯。有效值如下:
    • '0':否;
    • '1':是;
    • '2':問卷管理員可自行選擇。
  • printanswershonorsconditions: 此設定決定 printanswers 功能是否顯示被條件分支隱藏之問題的項目(預設:1 = 隱藏被條件隱藏之問題的答案)。
  • showpopups: 若必填問題或條件式問題未正確回答,是否顯示彈出訊息:
    • '2' = 由佈景主題選項定義(預設)
    • '1'= 顯示彈出訊息;
    • '0'= 改為在頁面上顯示訊息;
    • '-1'= 完全不顯示訊息(此時使用者仍會看到針對各問題的提示,指出哪些問題必須回答)。

數字問題類型行為

  • bFixNumAuto: 數字欄位可自動過濾以移除所有非數字的值。預設為啟用,您可以全域停用。此設定與核心佈景主題選項中的自動修復數值相關。選擇是時啟用,選擇對於運算式和否時停用。
  • bNumRealValue: 運算式管理器中使用的數字欄位可以修復或不修復。預設為修復。如果 NUMERIC 是數字問題:停用或 0:含有不正確字元的 {NUMERIC} 會傳回 '';啟用或 1:{NUMERIC} 會傳回輸入的所有字元。此設定與核心佈景主題選項中的自動修復數值相關。選擇是和對於運算式時啟用,選擇否時停用。

開發與除錯

  • debug: 透過此設定,您可以將 PHP 錯誤報告設為 E_ALL。這表示與指令碼相關的每一個細小的通知、警告或錯誤都會顯示。只有在您因任何原因需要除錯應用程式時,才應將此設定切換為 '1'。如果您是開發人員,請將其切換為 '2'。請勿在正式環境中切換為 '1' 或 '2',因為這可能導致路徑洩漏。預設值為 '0',可在 config.php 中編輯。
  • debugsql: 如果您想在每個頁面底部顯示指令碼所執行的所有 SQL 查詢,請啟用此設定。這對最佳化查詢數量非常有用。若要啟用,請在 config.php 檔案中將預設值改為 '1'。
  • use_asset_manager: 預設情況下,除錯模式會停用資產管理器,您可以允許在啟用除錯模式時使用資產管理器。

如果您在應用程式中遇到錯誤,我們強烈建議啟用除錯設定,以取得更詳細的錯誤資訊,並可隨錯誤報告一併送出:

    'config'=>array(
        'debug'=>2,
        'debugsql'=>0,
    )

如果您開發外掛程式,並需要在螢幕上快速傾印變數,可以使用 traceVar 函式。如果已設定 debug,此函式會使用 CWebLogRoute 在 HTML 頁面上顯示。用法:traceVar($MyVariable)

電子郵件設定

以下所有設定都可以在全域設定對話框中覆寫。

  • 'emailmethod: 決定電子郵件的發送方式。可用的選項如下:
    • 'mail:' 使用內部 PHP 郵件程式;
    • 'sendmail:' 使用 sendmail 郵件程式;
    • 'smtp:' 使用 SMTP 轉送。當您在非郵件伺服器的主機上執行 LimeSurvey 時,請使用此設定。
  • 'emailsmtphost: 如果您使用 'smtp' 作為 $emailmethod,則必須在此填入您的 SMTP 伺服器。如果您使用 Google 郵件,可能需要加上連接埠號碼,例如 $emailsmtphost = 'smtp.gmail.com:465'。
  • emailsmtpuser: 如果您的 SMTP 伺服器需要驗證,請將此設為您的使用者名稱,否則必須留空。
  • emailsmtppassword: 如果您的 SMTP 伺服器需要驗證,請將此設為您的密碼,否則必須留空。
  • emailsmtpssl: 將此設為 'ssl' 或 'tls',以便對 SMTP 連線使用 SSL/TLS。
  • maxemails: 向問卷參與者發送邀請或提醒時,此設定用於決定一批最多可發送多少封電子郵件。不同的網頁伺服器有不同的郵件處理能力,如果您的指令碼發送一批郵件花費的時間過長,指令碼可能會逾時並導致錯誤。大多數網頁伺服器可在 PHP 指令碼預設的 30 秒時間限制內一次發送 100 封郵件。如果您在發送大量郵件時遇到指令碼逾時錯誤,請減少此設定中的數字。點擊權杖控制工具列中的「發送郵件邀請」按鈕(不是位於每個權杖右側的按鈕)會發送 <maxemails> 數量的邀請,然後顯示收件者的位址清單,以及一則警告:待發送的電子郵件多於單一批次可發送的數量。請點擊下方繼續發送電子郵件。仍有 ### 封電子郵件待發送。並提供「繼續按鈕」以進行下一批。也就是說,使用者可在每批郵件發送後自行決定何時發送下一批。無需停留在此畫面等待。管理員可以登出,稍後再回來發送下一批邀請。

統計與作答結果瀏覽

  • filterout_incomplete_answers: 控制瀏覽或分析作答結果時,篩選不完整答案的預設行為。有關不完整作答結果的說明,請參閱我們的瀏覽問卷結果說明。由於這些記錄可能會影響統計結果,因此在多個圖形介面表單中提供了開啟或關閉此篩選的選項。此參數可在 config.php 中編輯。可用的選項如下:
    • 'all':可同時檢視完整與不完整的答案;
    • 'complete':僅顯示完整的答案;
    • 'incomplete':僅顯示不完整的答案。
  • strip_query_from_referer_url: 此設定決定來源網址是否儲存參數。預設值為 'false'(此時來源網址會儲存所有參數)。您也可以將此值設為 'true',這樣來源網址中的參數部分將會被移除。
  • showaggregateddata: 啟用後,會顯示額外的統計值,例如算術平均數和標準差。此外,資料會被彙整以便更快速地瀏覽。例如,分級1+2 與 4+5 的結果會相加,以得出「好」(1/2)、「普通」(3) 和「差」(4/5) 的整體排序。此設定僅影響問題類型 "A"(5 點陣列)和 "5"(5 點選擇)。
  • PDF 匯出設定: 此功能可為可供列印的問卷及列印答案選項啟用匯出PDF。匯出PDF功能完全屬於實驗性質,輸出結果遠不夠完美。很遺憾,目前無法提供支援——如果您想協助修正,請與我們聯絡。
    • 'pdfdefaultfont':代表 PDF 匯出功能所使用的預設字型。預設值為 'auto'。若要變更,必須將其設為其中一種 PDF 核心字型。
    • 'alternatepdffontfile':這是一個包含語言鍵值及其對應字型的陣列。每種語言的預設字型可在 config.php 檔案中替換;
    • 'pdffontsize':顯示一般文字的字型大小;問卷標題為 <pdffontsize>+4,而群組標題為 <pdffontsize>+2。可在 config.php 檔案中或從全域設定對話方塊進行編輯。
  • 圖表設定
    • 'chartfontfile':設定用於建立統計圖表的字型檔案名稱。該檔案必須位於 LimeSurvey 根資料夾中的 fonts 目錄內。可在 config.php 檔案中編輯;
    • 'alternatechartfontfile':這是一個包含語言鍵值及其對應字型的陣列。可在 config.php 檔案中編輯。
  • showsgqacode: 此設定用於可供列印的問卷功能,預設為 'false。如果您設定 showsgqacode = 'true';,則會顯示每個問題(以及適用時的答案)的 ID。這些 ID 與 Lime_survey_12345 資料表中的欄位標題相符,該資料表儲存特定問卷的答案資料。這些 ID 可用於製作代碼簿,以進行手動資料庫查詢。

LDAP 設定

由於這是一個內容廣泛的主題,我們已將 LDAP 設定移至另一頁面。

驗證

驗證是由外掛程式處理的。以下設定供 Webserver 驗證外掛程式使用,請參閱驗證外掛程式。

將驗證委派給網頁伺服器

系統管理員可能希望讓其問卷管理員透過中央驗證系統(Active Directory、openLdap、Radius 等)進行驗證,而不是使用 LimeSurvey 內部資料庫。一個簡單的做法是將您的網頁伺服器軟體設定為使用此外部驗證系統,然後讓 LimeSurvey 信任網頁伺服器所回報的使用者身分。若要啟用此功能,您必須:

  • 在設定 > 外掛程式中啟用 Webserver 外掛程式,並在外掛程式設定中設定保存使用者名稱的伺服器鍵值(預設:REMOTE_USER);
  • 在網頁伺服器端啟用驗證。

請注意:

  • 此時 LimeSurvey 將略過其自身的驗證程序(使用網頁伺服器回報的登入名稱,而不要求輸入密碼);
  • 這只能取代 LimeSurvey 圖形介面的驗證系統,無法取代問卷邀請系統(參與者介面)。

不自動匯入使用者的驗證委派

請注意,驗證委派預設不會略過 LimeSurvey 的授權系統——也就是說,即使您不需要在 LimeSurvey 中管理密碼,仍然需要在 LimeSurvey 資料庫中定義使用者,並為其指派正確的權限,才能讓他們存取管理面板。

只有在符合以下所有條件時,使用者才會被授予存取 LimeSurvey 的權限:

  • 已通過網頁伺服器的驗證;
  • 其登入名稱已在 LimeSurvey 使用者資料庫中定義為使用者(該使用者將獲得 LimeSurvey 使用者資料庫中所定義使用者的權限);
  • 具有全域權限使用網頁伺服器驗證。

自動匯入使用者的驗證委派

在管理龐大的使用者資料庫時,將使用者自動匯入 LimeSurvey 資料庫有時會更為容易:

  • auth_webserver_autocreate_user: 若設為 'true',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();
  選用的 'hook_get_auth_webserver_profile' 函式僅供進階使用者使用!如需更多詳細資訊,請閱讀 config-defaults.php 檔案中的註解。


使用者名稱對應

如果部分使用者的外部使用者名稱與其 LimeSurvey 使用者名稱不同,您可能會發現使用者名稱對應很有用。在 LimeSurvey 中,這是透過 auth_webserver_user_map 參數來完成的。例如,假設您的外部驗證資料庫中沒有定義名為 'admin' 的使用者名稱。那麼,為了以 admin 身分登入 LimeSurvey,您必須將外部使用者名稱(假設為 'myname')對應到 LimeSurvey 中的 admin 登入名稱。對應的設定如下:

'config'=>array(
...
'auth_webserver_user_map' => array ('myname' => 'admin');
)

使用 'myname' 登入名稱和網頁伺服器密碼成功通過驗證後,您將直接被授權以 'admin' 使用者身分使用 LimeSurvey。

這會帶來嚴重的安全性風險,因此請謹慎使用。此外,請保護您的 config.php,避免網頁伺服器對其進行寫入。

使用一次性密碼

使用者可以在 default.com/limesurvey/admin 開啟 LimeSurvey 登入頁面,並輸入使用者名稱以及先前由外部應用程式寫入使用者資料表(one_time_pw 欄位)的一次性密碼。

必須在 config.php 檔案中開啟此設定,才能使用一次性密碼(預設 = false)。

    'config'=>array(
        'debug'=>0,
        'debugsql'=>0,
        'use_one_time_passwords'=>true,
    )

更多資訊請參閱「管理使用者」章節。


加密設定

  注意 : 加密金鑰一經設定,就絕對不應變更,否則所有已加密的資料都可能遺失!


在更新或安裝時,這些參數是由 LimeSurvey 產生並設定於 application/config/security.php 檔案中。您可以視需要將這些設定移至 config.php,或保留在 security.php 中。

有關此功能的詳細資訊,請參閱資料加密。

  • encryptionkeypair
  • encryptionpublickey
  • encryptionsecretkey
  • encryptionnonce
  • encryptionsecretboxkey

進階網址設定

  • publicurl: 應設定為您的「公用指令碼」所在的 URL 位置。公用指令碼是位於 "limesurvey" 資料夾(或您為存放其他所有指令碼與目錄的資料夾所取的名稱)中的指令碼。此設定可在 config.php 中使用,當 LimeSurvey 需要絕對 URL 時(例如寄送 token 電子郵件時)會用到。
  • tempurl: 應設定為您的 "/limesurvey/tmp" 目錄的 URL 位置,或是您希望 LimeSurvey 用來提供暫存檔案的目錄。
  • uploadurl: 應設定為您的 "/limesurvey/upload" 目錄的 URL 位置,或是您希望 LimeSurvey 用來提供已上傳檔案的目錄。這讓您可以將已上傳的檔案放在另一個網域的 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 檔案中更新。例如:/usr/share/misc/magic.mgc(適用於以 Red Hat 為基礎的 Linux)。
  • magic_file: 允許使用與內建檔案不同的檔案,來依 MIME 類型取得副檔名陣列。必須是回傳陣列的 PHP 檔案。只能在 config.php 檔案中更新。

更新

  • updatable: 此設定位於 version.php 中,可為 true 或 false。若設為 true:當超級管理員使用者登入時,LimeSurvey 會檢查是否有可用的更新並向您顯示警告。若設為 false:則不會進行檢查,您也無法使用 ComfortUpdate。

Token

  • allowedcharacters_pattern_token : 這些設定可讓您在篩選 token 時設定正規表示式模式。