常見問題
From LimeSurvey Manual
開始使用
如果您想在不閱讀大半本手冊的情況下了解 LimeSurvey 能做些什麼,建議您觀看以下 YouTube 影片教學:
哪裡可以找到 LimeSurvey 的快速入門介紹?
如需 LimeSurvey 的快速文字介紹,請參閱:
- LimeSurvey Cloud 快速入門指南 – 在 LimeSurvey Cloud 中建立並發佈您的第一份問卷
- 安裝 LimeSurvey 社群版 – 如果您想在自己的伺服器上執行 LimeSurvey
問卷設計與版面配置
如何從網址中移除 index.php 以取得較短的網址?
如果您想使用較短的網址(不在每個網址中包含 /index.php),請編輯 application/config/config.php,並在 urlManager 區段中將
'showScriptName' => true,
改為
'showScriptName' => false,
若要在 Apache 上正常運作,必須啟用 mod_rewrite,且 LimeSurvey 隨附的 .htaccess 檔案必須位於 LimeSurvey 根目錄中。 若使用 nginx,請參閱我們的 LimeSurvey nginx 設定範例。
如何隱藏必填問題上的紅色星號?
LimeSurvey 會在必填問題的問題文字開頭顯示紅色星號。在 LimeSurvey 7.x 中,旁邊還會顯示「必須的」字樣。若要隱藏它們,請在您的問卷佈景主題中加入 CSS 規則:
.asterisk, .ls-question-mandatory {display: none;}
儲存變更。然後在問卷的一般設定中選擇已延伸的佈景主題。
這同時也會隱藏公開註冊表單上的星號。
如何建立對所有人開放的問卷?
若要建立任何人都可填寫的問卷,請不要建立問卷參與者表。請分享概覽面板中顯示的問卷連結。
如何將公開註冊的所有欄位都設為必填?
如果您使用問卷參與者表,同時也允許公開註冊,想要參加的人需填寫註冊表單,其中包含名、姓和電子郵件地址。只有電子郵件地址為必填:

若要將名和姓也設為必填,請編輯您問卷佈景主題的註冊表單。以 Fruity TwentyThree 為例,請先延伸佈景主題,開啟該副本的佈景主題編輯器,然後編輯檔案 views/subviews/registration/register_form.twig。電子郵件欄位展示了必填欄位的建構方式:
{# Participants email #}
<div class='{{ aSurveyInfo.class.registerformcolrowc }} row mb-3' {{ aSurveyInfo.attr.registerformcolrowc }}>
<label {{ aSurveyInfo.attr.registerformcolrowclabel }} class='{{ aSurveyInfo.class.registerformcolrowclabel }} control-label'> {{ gT("E-mail") }} {{ include('./subviews/registration/required.twig') }}</label>
<div {{ aSurveyInfo.attr.registerformcolrowcdiv }} >
{{ C.Html.emailField('register_email', aSurveyInfo.sEmail, ({'id' : 'register_email','class' : 'form-control ls-important-field','required' : true, 'placeholder' : gT('Enter e-mail address', 'unescaped')})) }}
</div>
</div>
以相同方式修改名和姓欄位:
- 在標籤中加入
{{ include('./subviews/registration/required.twig') }}。這會顯示星號。 - 在文字欄位的選項中加入
'required' : true。這會使該欄位成為必填。
編輯後的欄位應如下所示(此範例來自 LimeSurvey 7.x;在 6.x 中,占位符文字不含 'unescaped'):
{# Participants first name #}
<div class='{{ aSurveyInfo.class.registerformcolrow }} col-md-6 col-12 mb-3 mb-md-0' {{ aSurveyInfo.attr.registerformcolrow }}>
<label for='register_firstname' class='{{ aSurveyInfo.class.registerformcolrowlabel }} control-label '>{{ gT("First name") }} {{ include('./subviews/registration/required.twig') }}</label> {# extra label #}
<div class="">
{{ C.Html.textField('register_firstname', aSurveyInfo.sFirstName, ({'id' : 'register_firstname','class' : 'form-control ls-important-field', 'required' : true, 'placeholder' : gT('Enter your first name', 'unescaped') })) }} {# mandatory field #}
</div>
</div>
{# Participants last name #}
<div class='{{ aSurveyInfo.class.registerformcolrowb }} col-md-6 col-12' {{ aSurveyInfo.attr.registerformcolrowb }}>
<label {{ aSurveyInfo.attr.registerformcolrowblabel }} class='{{ aSurveyInfo.class.registerformcolrowblabel }} control-label '>{{ gT("Last name") }} {{ include('./subviews/registration/required.twig') }}</label> {# extra label #}
<div {{ aSurveyInfo.attr.registerformcolrowbdiv }} >
{{ C.Html.textField('register_lastname', aSurveyInfo.sLastName, ({'id' : 'register_lastname', 'class' : 'form-control ls-important-field', 'required' : true, 'placeholder' : gT('Enter your last name', 'unescaped')})) }} {# mandatory field #}
</div>
</div>
公開註冊表單現在會將三個欄位全部顯示為必填:

隱藏語言切換器
如何隱藏語言切換器(歡迎頁面及頂端選單中的切換器),請參閱多語言問卷的提示與技巧。
隱藏「離開並清除問卷」按鈕
在 Fruity TwentyThree 中,「離開並清除問卷」按鈕由佈景主題選項 Show 'Clear all' button(位於簡易選項下)控制。此選項預設為 No,因此只有在該選項被開啟時,參與者才會看到此按鈕。若要隱藏按鈕,請在問卷的佈景主題選項中將該選項設為 No。
糟糕,我不小心...
我忘記了管理員密碼,該如何重設?
使用命令列
- 透過命令列(例如使用 SSH)登入您的伺服器。
- 確認您可以從命令列執行 PHP(請參閱 PHP 文件)。
- 前往您的 LimeSurvey 目錄。
- 執行此命令:
php application/commands/console.php resetpassword USERNAME NEWPASSWORD
USERNAME 是現有管理員帳號的名稱,例如 admin。如果找不到 php 指令,請使用其完整路徑,例如 /usr/bin/php。新密碼會儲存在您的 shell 歷史記錄中,因此登入後請在 LimeSurvey 中變更密碼。
僅有 FTP 存取權限
請使用第三方控制器 ResetPasswordController。重設密碼後,請再次從 config.php 中移除該檔案及其設定。
直接在資料庫中
如果您可以直接存取 LimeSurvey 資料庫,便可在其中設定新密碼。LimeSurvey 接受以 SHA-256 雜湊值儲存的密碼,並會在該使用者下次登入時,將其替換為更安全的雜湊值。
例如,在 MySQL 或 MariaDB 中,下列指令會將使用者 admin 的密碼設定為 newpassword:
UPDATE lime_users SET password = SHA2('newpassword', 256) WHERE users_name = 'admin';
在 PostgreSQL 中,請使用 encode(sha256('newpassword'), 'hex') 取代 SHA2('newpassword', 256)。如果您的資料表使用的前綴不是 lime_,請相應變更資料表名稱。請立即登入並變更密碼。
如何從已關閉的問卷中還原資料?
我們建議您一律讓問卷過期,而不是停用問卷。如果您不小心停用了問卷,請務必不要變更問卷中的任何內容!
唯有如此,以下步驟才會生效:
- 再次啟用您的問卷。
- 開啟問卷的作答結果。
- 按一下匯入,然後選擇「Import responses from a deactivated survey table」(LimeSurvey 6.x) 或「Import responses from an archived response table」(LimeSurvey 7.x)。
- 選擇您的來源資料表。
- 按一下「匯入」按鈕。
我刪除了問題/題組/問卷!
一旦刪除,資料就消失了。只有備份才能協助您復原。
硬體與軟體需求
有關一般需求,請參閱我們的安裝說明。
LimeSurvey 有哪些限制...
...關於速度
LimeSurvey 本身沒有速度限制,一切取決於您的伺服器與網路連線有多快。如果您預期短時間內會有大量參與者,且不確定伺服器是否能夠負荷,請在我們的論壇中搜尋類似主題、使用 LimeSurvey Cloud,或聯絡 LimeSurvey 授權合作夥伴。
...關於問卷大小
「問卷大小」是指問卷中問題(與答案)的數量,請勿與問卷的作答結果數量混淆(作答結果數量沒有限制)。LimeSurvey 本身對問題或答案的數量沒有限制,但您所使用的資料庫有若干限制,其中最重要的是回應表中欄的最大數量,以及單列的最大大小。
MySQL 與 MariaDB
預設情況下,LimeSurvey 使用 MyISAM 儲存引擎建立資料表。您也可以在安裝時改選 InnoDB。
- MyISAM:每列最多 65,535 位元組。LimeSurvey 使用的 utf8mb4 字元集中,一個字元最多可能需要四個位元組,因此一列可能最少只能容納 16,383 個字元。這通常是您最先遇到的限制。
- InnoDB:一個資料表最多可有 1,017 欄。
詳細資訊請參閱 MySQL 文件。
您可以像這樣大致估算問卷的大小:
- 每個多重數值問題:每個答案20 個字元
- 每個多選與陣列問題的答案:每個答案5 個字元
- 其他各種問題類型:5 個字元
- 另外加上 10% 的一般額外負擔
Microsoft SQL Server
Microsoft SQL Server 每個資料表最多允許 1,024 欄,每列最多 8,060 位元組(請參閱 Microsoft 文件)。即使您的問卷可以啟用,若作答內容包含大量文字,參與者仍可能無法送出其作答結果。
每列 8,060 位元組的限制也可能導致啟用後在瀏覽或匯出作答結果時發生錯誤。請匯出答案編號而非答案文字,或僅匯出部分欄位。
PostgreSQL
PostgreSQL 每個資料表允許 250 至 1,600 欄,視欄位類型而定(請參閱 PostgreSQL 文件)。匯出作答結果時,可能會出現 SQLSTATE[54000] 錯誤。在這種情況下,請僅匯出部分欄位。請參閱這篇論壇貼文。
如何增加 PostgreSQL 的最大欄數
如果您的問卷包含過多問題,您可以使用較大的區塊大小(例如 32 kB,設定選項為 --with-blocksize=32)來編譯 PostgreSQL,以便在一列中容納更多欄。以某種區塊大小建立的資料庫,無法由以其他區塊大小編譯的 PostgreSQL 伺服器使用,因此請在建立 LimeSurvey 資料庫之前進行此操作。
有關逐步說明,請參閱在 Linux 上增加 PostgreSQL 最大欄位數的說明。
嚴重錯誤:已達允許的記憶體大小上限
視您的伺服器設定而定,可能會遇到記憶體問題,並顯示類似以下的錯誤訊息:"Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 233472 bytes) in /path/to/htdocs/limesurvey/filename.php on line 7296"。
LimeSurvey 會設定自己的記憶體上限,預設為 256 MB。您可以在 LimeSurvey 的設定檔中新增選用設定 memory_limit來提高此上限。
請注意,在伺服器的 PHP 設定中所設定的較高上限優先生效。若要將伺服器的 PHP 記憶體上限提高至 512 MB,請加入:
memory_limit = 512M到伺服器的主要 php.ini 檔案(若您有權限,建議使用此方式)php_value memory_limit 512M到 LimeSurvey 根目錄中的 .htaccess 檔案(僅當 PHP 以 Apache 模組方式執行時)memory_limit = 512M到 LimeSurvey 根目錄中的 php.ini 或 .user.ini 檔案(適用於某些主機設定)
特定設定
在某些情況下,您需要更新 application/config/config.php 中的 LimeSurvey 設定。
同一網域上的兩個 LimeSurvey 執行個體
您可以在同一個網域上執行多個 LimeSurvey 執行個體,例如 example.org/ls1 與 example.org/ls2。每個執行個體都需要有自己的工作階段 Cookie 名稱,請在 application/config/config.php 的 session 區段中,以 sessionName 進行設定。安裝程式會自動設定一個隨機名稱,因此全新安裝不需要做任何變更。
如果您將 config.php 從一個執行個體複製到另一個執行個體,或您的 config.php 來自比 LimeSurvey 4.0 更舊的版本,請檢查每個執行個體是否都有自己的值。否則,登入其中一個執行個體時,會導致您被登出另一個執行個體。請在現有的 session 區段中新增或變更 sessionName 這一行,例如在 ls1 的設定檔中:
'session' => array (
'sessionName' => 'LS-ABCDEFGHIJKLMNOP',
),
請在 ls2 的設定檔中使用不同的隨機值。另請參閱工作階段設定。