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 Troubleshooting and the translation is 100% complete.



以下 Wiki 章節由多位 LimeSurvey 社群成員共同撰寫而成。如需更新的資訊,請參閱 LimeSurvey 論壇。如需專業支援,請聯絡我們的 LimeSurvey 授權合作夥伴:https://limesurvey.com。


一般

本頁列出在成功安裝之後常見的技術問題及其解決方法。如果您需要排解安裝過程中發生的問題,請參閱 安裝常見問題。

嘗試開啟管理登入頁面時

安裝後出現錯誤訊息:「No input file specified」

或

任何 URL 都會讓您進入問卷清單頁面

在安裝過程中,LimeSurvey 會嘗試判斷最適合的 URL 格式。有時這項判斷無法正常運作。

您必須編輯設定檔,強制 LimeSurvey 使用另一種 URL 管理系統。

在 /application/config/config.php 中,將

     'urlFormat' => 'path',			

取代為:

     'urlFormat' => 'get',

然後嘗試使用簡短的管理 URL 開啟管理面板:

   http://<yourserver.net>/<limesurvey_dir>/admin

登入管理後台之後

在管理頁面中執行任何動作都會回到登入畫面

發生此情況的主要原因如下:

  • PHP 工作階段問題
  • UTF8 編碼問題
  • IE 問題

PHP 工作階段:

  1. 更新 php.ini 中的 upload_tmp_dir 與 session.save_path
  2. 建立已設定的工作階段目錄與上傳目錄
  3. IIS:為 IIS 來賓使用者帳號指派建立與修改的權限
  4. Apache:請確認您的網頁伺服器具有寫入所設定目錄的權限
  5. 檢查 php.ini 中的變數 "session.use_cookies" 是否設為 1。
  6. 檢查 php.ini 中的變數 "session.auto_start"。如果設為 1,請將其改為 0。

Internet Explorer 問題 LimeSurvey 已不再支援透過 Internet Explorer 存取管理介面。

UTF8 編碼:

如果您編輯任何檔案(最常見的是 config.php),請勿為了支援特殊語言字元而將其儲存為 UTF8!請一律將 .php 檔案儲存為真正的 ANSI/ISO 格式。

提交包含大量問題/答案選項/子問題的頁面無法運作

PHP 5.3.9 引入了一項新設定(部分較早的 PHP 版本也已向後移植):max_input_vars。此設定限制可 POST(提交)至伺服器的變數數量上限。 預設值為 1000,但如果您的某個問題包含大量答案選項,或問卷頁面包含非常多的問題/答案,就可能超過此限制。您需要在 PHP 設定檔(php.ini)中調整此設定。

在 Linux 上使用 MSSQL Server 搭配 FreeTDS 時,日期顯示不正確

找到 FreeTDS 的 locales.conf 檔案並加以編輯。如果沒有其他應用程式使用 FreeTDS,只需將內容取代為

[default]
    date format = %Y-%m-%d %H:%M:%S.%z

如果有其他應用程式使用 FreeTDS,建議您先確認需要編輯哪一個地區設定。

儲存並重新啟動伺服器。日期現在應該能正確顯示。如果仍無法解決,可能是您編輯了錯誤的檔案——請重複上述步驟。

當我在問卷或管理後台輸入特殊字元(中文、西里爾文、希臘文、阿拉伯文)時,每個字元都顯示為問號?

如果您的資料庫本身未建立為使用 UTF-8 字元集,就會發生此情況。當您必須透過服務供應商的管理面板建立資料庫時,可能會發生這種狀況。您可以(例如使用 phpMyAdmin)在資料庫上執行下列 SQL 指令來解決此問題: ALTER DATABASE `<your_database_name>` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

請將 <your_database_name> 取代為您的資料庫名稱。您必須在安裝 LimeSurvey 之前執行此操作。

PageSpeed 會對 LimeSurvey 造成一些問題

您應該在 LimeSurvey 的虛擬主機中加入 ModPagespeed off。

否則,您將無法使用 ComfortUpdate,也無法匯出資料,其他功能也可能會出現問題。

填寫問卷時

錯誤「工作階段已過期」

您可能會在某個時間點收到類似下列的訊息:

ERROR

很抱歉,您的連線已過期。

可能是您閒置時間過長、瀏覽器已停用 Cookie,或是連線發生問題。

如果您的伺服器已啟用 Suhosin,這可能就是您在填寫問卷途中看到此訊息的原因。

當您的問卷未啟用時,行為可能會有所不同,您可能會在填寫問卷途中被重新導向至公開的問卷清單。解決方法相同。

Suhosin 是適用於 PHP 安裝環境的進階防護系統,但 Suhosin 的預設設定可能會對 LimeSurvey 造成問題。

首先,請依照 Suhosin 文件,設定 suhosin.log.sapi = 511 及 suhosin.simulation = on,並透過 Suhosin 記錄檔進行檢查與測試。

設定檔通常位於 /etc/php5/apache2/conf.d/suhosin.ini,但為了確認正確路徑,您可以查看 phpinfo(LimeSurvey 管理後台 > 全域設定 > 顯示 PHP 設定訊息按鈕 > 行:"Additional .ini files parsed")。

請別忘了重新啟動 Apache/Nginx 伺服器,以使參數生效(service apache2 restart 或 service nginx restart)。

啟用模擬模式時,Suhosin 不會封鎖任何內容,錯誤會被記錄到日誌中(通常位於系統日誌:/var/log/syslog)。如果您收到類似 "ALERT-SIMULATION - configured POST variable limit exceeded" 的錯誤訊息,表示這是 Suhosin 發出的警示,請嘗試以下設定(此設定似乎能與 LimeSurvey 良好搭配):

suhosin.memory_limit = 128
suhosin.post.max_value_length = 5000000
suhosin.post.max_vars = 5000
suhosin.request.max_value_length = 5000000
suhosin.request.max_vars = 5000

使用這些參數後,您應該可以將 suhosin.simulation 改回「off」值(如此伺服器受到保護,LimeSurvey 也仍能正常運作)。

Suhosin 的預設值無法與 LimeSurvey 良好搭配。如果您確實想嚴密保護您的伺服器,可以使用模擬模式來調整設定,並為 vars 找出 1000 至 5000 之間、為 value_lengths 找出 1000000 至 5000000 之間的合適值。

注意: 最近新增了一項 PHP 設定,也需要調整:max_input_vars - 此設定與 suhosin.post.max_vars 相同,但必須在 php.ini 中另外設定。

我無法變更語言!

無論您選擇哪種語言,介面(管理後台與使用者端)一律以英文顯示。這通常是由您的 PHP 版本中的錯誤所造成。除了更新您的 PHP 版本之外,沒有其他解決方法。

一些常見錯誤(以 IIS 為主)

Index.php 無法開啟

可能原因:如果您尚未安裝必要的擴充套件,可能會發生此情況

  • 您需要安裝 Multi-byte string 與 MSSQL(或 MySQL)擴充套件


可能原因:未設定 ISAPI 篩選器

  • 在 IIS 中,您必須將網站(也可以在目錄層級進行)設定為使用 php5isapi.dll


Index.php 無法開啟,且 "php.exe -i" 顯示缺少 .dll 的錯誤訊息

如果您安裝了過多擴充套件,可能會發生此情況

  • 如果您安裝所有 PHP 擴充套件,PHP 將會因為未滿足所有相依性而失敗(例如:oracle 套件需要 oracle dll)
  • 僅安裝您需要的擴充套件
  • 若要測試,請嘗試從命令列執行 php.exe -i

顯示資料庫遺失的訊息

如果您前往了錯誤的網址,可能會發生此情況:

  • 請確認您前往的是 limesurvey/admin/install/index.php,而不是 limesurvey/index.php!

以上修正方法皆無法解決問題

如果您尚未重新啟動 IIS,可能會發生此情況

  • 重新啟動 IIS

容易忘記的事項:

  • .php 需要與篩選器 php5isapi.dll 建立關聯
  • limesurvey/tmp 目錄需要寫入權限,以便上傳問卷檔案
  • 更新 php.ini 中的 doc_root 以及 config.php 中的 $rootdir

檔案遺失("No such file or directory")

將 LimeSurvey 上傳至您的伺服器時,連線可能會中斷,導致部分檔案未傳輸或傳輸不完整。視檔案而定,每當您存取 LimeSurvey 的不同功能或部分時,可能會收到不同的錯誤訊息。檔案遺失所引發的錯誤如下所示:

"Warning: require_once(/path/to/your/limesurvey/installation/filename) [function.require-once]: failed to open stream: No such file or directory in /path/to/your/limesurvey/installation/filename on line 12345" 或

"Fatal error: require_once() [function.require]: Failed opening required 'require_once(/path/to/your/limesurvey/installation/filename)' (include_path='.:/x/y/z) in /path/to/your/limesurvey/installation/filename on line 12345"

解決方法

1. 刪除所有已上傳的檔案。

2. 重新上傳這些檔案。

(3. 如有必要:瀏覽至 /limesurveyfolder/admin/install 重新安裝)

送出頁面後,您被導向至一般首頁/404 頁面,或收到「The CSRF token could not be verified」訊息

或

在包含大量答案/子問題的頁面上點擊「下一頁」後,並非所有作答結果都被儲存

或

點擊「下一頁」後,我停留在同一頁面

或

使用快速翻譯功能時,答案或子問題無法儲存

或

匯出大量作答欄位時,並非所有欄位都被匯出

  • 這很可能是由於您的網頁伺服器中的限制性設定所致:max_input_vars。此設定限制可 POST(送出)至伺服器的變數數量上限。

預設值為 1000,但如果某個問題含有大量答案選項,或某個問卷頁面包含非常多的問題/答案,就可能超出此限制。您需要編輯 PHP 設定檔(php.ini)。

  • 此外,如果您的主機使用 Suhosin extension for Apache,請檢查您的 PHP 設定,其中部分設定的限制可能過於嚴格。
  • 例如,"suhosin.post.max_vars" 與 "suhosin.request.max_vars" 這兩個設定預設值皆為 200。請將這兩個設定都提高至 400 或更高,以便使用者能夠完成並送出較長的問卷。
  • 如果仍有問題,請嘗試將該模組切換為 simulation_mode(基本上等同於停用),因為最大值始終取決於您的特定問卷。
  • 另一個原因可能是代理伺服器或類似軟體不允許大型 POST 請求,或不允許在背景多次請求同一頁面(這會導致產生新的 CSRF 金鑰)。遇到這種情況時,請嘗試使用其他網路連線。

在 Linux 上搭配 FreeTDS 使用 MSSQL Server 時不顯示任何問題

若您仔細檢查任一題組,會發現題組相關性中有一個空格,導致整個題組被視為不相關。根本原因在於 FreeTDS 因設定錯誤而在空白欄位中回傳空格。您可以將 FreeTDS 通訊協定版本強制設為至少 8.0 來解決此問題。 因此,請編輯 freetds.conf(例如 /etc/freetds/freetds.conf),並將相應的行改為

    tds version = 8.0

這樣即可解決此問題。

填答問卷之後

參與者輸入的文字在結果中顯示為問號

如果您的資料庫預設並未使用 UTF-8 字元集,就會發生此情況。當您必須透過主機供應商的管理面板建立資料庫時,可能會出現這種狀況。您可以對資料庫執行以下 SQL 指令來解決此問題(例如使用 phpMyAdmin):

   ALTER DATABASE `<your_database_name>` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

請將 <your_database_name> 替換為您的資料庫名稱。完成後,請停用您的問卷,然後再重新啟用。

資料庫相關問題

我想讓 LimeSurvey 使用特定的 Postgres 結構描述

請在 config.php 中設定 'initSQLs' => array('SET search_path TO "LimeSurvey";'), 範例請參閱 config-defaults。