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 Engine - คู่มือเริ่มต้นอย่างรวดเร็ว
  17. ฟีเจอร์ขั้นสูงและฟีเจอร์ที่ไม่ได้จัดหมวดหมู่
  18. คำถามที่พบบ่อยทั่วไป
  19. การแก้ไขปัญหา
  20. วิธีแก้ปัญหาชั่วคราว (Workarounds)
  21. สัญญาอนุญาต
  22. บันทึกการเปลี่ยนแปลงของเวอร์ชัน
  23. ปลั๊กอิน
 Actions

การแก้ไขปัญหา

From LimeSurvey Manual

หน้านี้อาจแปลด้วยเครื่องและอาจมีข้อผิดพลาด ดูต้นฉบับภาษาอังกฤษ · ปรับปรุงคำแปลนี้
This page is a translated version of the page Troubleshooting and the translation is 100% complete.



ส่วนวิกิต่อไปนี้เป็นผลงานของสมาชิกชุมชน 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. อัปเดต upload_tmp_dir และ session.save_path ใน php.ini
  2. สร้างไดเรกทอรีเซสชันและไดเรกทอรีอัปโหลดที่กำหนดค่าไว้
  3. IIS: กำหนดสิทธิ์ในการสร้างและแก้ไขให้กับบัญชีผู้ใช้ guest ของ IIS
  4. Apache: ตรวจสอบให้แน่ใจว่าเว็บเซิร์ฟเวอร์ของคุณมีสิทธิ์เขียนข้อมูลลงในไดเรกทอรีที่กำหนดค่าไว้
  5. ตรวจสอบว่าตัวแปร "session.use_cookies" ใน php.ini ถูกตั้งค่าเป็น 1
  6. ตรวจสอบตัวแปร "session.auto_start" ใน php.ini หากตั้งค่าเป็น 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)

วันที่แสดงไม่ถูกต้องเมื่อใช้ MSSQL Server กับ FreeTDS บน Linux

ค้นหาไฟล์ locales.conf ของ FreeTDS แล้วแก้ไข หากไม่มีแอปพลิเคชันอื่นที่ใช้ FreeTDS ให้แทนที่เนื้อหาทั้งหมดด้วย

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

หากมีแอปพลิเคชันอื่นที่ใช้ FreeTDS คุณควรตรวจสอบก่อนว่าต้องแก้ไข locale ใด

บันทึกและรีสตาร์ตเซิร์ฟเวอร์ วันที่ควรแสดงถูกต้องแล้ว หากยังไม่ได้ผล คุณอาจแก้ไขผิดไฟล์ - ให้ทำซ้ำอีกครั้ง

เมื่อฉันป้อนอักขระพิเศษ (จีน, ซิริลลิก, กรีก, อาหรับ) ลงในแบบสำรวจหรือส่วนผู้ดูแล ทุกอักขระแสดงเป็นเครื่องหมายคำถาม?

ปัญหานี้เกิดขึ้นหากฐานข้อมูลของคุณไม่ได้ถูกสร้างให้ใช้ชุดอักขระ UTF-8 ซึ่งอาจเกิดขึ้นเมื่อคุณต้องสร้างฐานข้อมูลผ่านแผงควบคุมของผู้ให้บริการ คุณสามารถแก้ไขปัญหานี้ได้โดยรันคำสั่ง SQL ต่อไปนี้กับฐานข้อมูลของคุณ (เช่น ผ่าน phpMyAdmin) ALTER DATABASE `<your_database_name>` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

แทนที่ <your_database_name> ด้วยชื่อฐานข้อมูลของคุณ คุณต้องดำเนินการนี้ก่อนติดตั้ง LimeSurvey

PageSpeed ก่อให้เกิดปัญหาบางอย่างกับ Limesurvey

คุณควรเพิ่ม ModPagespeed off ใน virtualhost ของ LimeSurvey

มิฉะนั้น คุณจะไม่สามารถใช้ ComfortUpdate หรือส่งออกข้อมูลได้ และอาจมีบางอย่างทำงานผิดพลาดอีกด้วย

ขณะทำแบบสำรวจ

ข้อผิดพลาด "Session has expired"

บางครั้งคุณอาจได้รับข้อความลักษณะนี้:

ERROR

ขออภัย ท่านใช้เวลาเกินกำหนด

ท่านอาจไม่ได้ใช้งานเป็นเวลานานเกินไป ปิดใช้งานคุกกี้ในเบราว์เซอร์ หรือการเชื่อมต่อมีปัญหา

หากเซิร์ฟเวอร์ของท่านเปิดใช้งาน Suhosin อาจเป็นสาเหตุที่ทำให้เกิดข้อความนี้กลางคันขณะทำแบบสำรวจ

เมื่อแบบสำรวจของท่านยังไม่ทำงาน พฤติกรรมอาจแตกต่างออกไป และท่านอาจถูกเปลี่ยนเส้นทางไปยังรายชื่อแบบสำรวจสาธารณะกลางคันขณะทำแบบสำรวจ วิธีแก้ไขเหมือนกัน

Suhosin เป็นระบบป้องกันขั้นสูงสำหรับการติดตั้ง PHP แต่การตั้งค่าเริ่มต้นของ Suhosin อาจทำให้เกิดปัญหากับ LimeSurvey ได้

ขั้นแรก ให้ตรวจสอบและทดสอบโดยใช้บันทึกของ Suhosin โดยตั้งค่า suhosin.log.sapi = 511 และ suhosin.simulation = on ตาม เอกสารของ Suhosin

โดยปกติไฟล์การตั้งค่าจะอยู่ที่ /etc/php5/apache2/conf.d/suhosin.ini แต่เพื่อความแน่ใจ ท่านสามารถตรวจสอบ phpinfo (การดูแลระบบ LimeSurvey > ตั้งค่าโดยรวม > ปุ่ม แสดง PHPInfo > บรรทัด: "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 ได้ไม่ดีนัก หากท่านต้องการรักษาความปลอดภัยของเซิร์ฟเวอร์อย่างเข้มงวด ท่านอาจใช้โหมดจำลองเพื่อปรับการตั้งค่าและหาค่าที่เหมาะสมระหว่าง 1000 ถึง 5000 สำหรับ vars และระหว่าง 1000000 ถึง 5000000 สำหรับ value_lengths

หมายเหตุ: เมื่อไม่นานมานี้มีการตั้งค่า 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 จากบรรทัดคำสั่ง

ข้อความแจ้งว่าไม่พบฐานข้อมูล

อาจเกิดขึ้นหากท่านเข้าไปยัง URL ที่ไม่ถูกต้อง:

  • โปรดตรวจสอบให้แน่ใจว่าท่านไปที่ limesurvey/admin/install/index.php แทนที่จะเป็น limesurvey/index.php !

วิธีแก้ไขข้างต้นไม่สามารถแก้ปัญหาได้

อาจเกิดขึ้นหากท่านยังไม่ได้รีสตาร์ต IIS

  • รีสตาร์ต IIS

สิ่งที่มักลืมได้ง่าย:

  • .php ต้องถูกเชื่อมโยงกับตัวกรอง php5isapi.dll
  • ไดเรกทอรี limesurvey/tmp ต้องมีสิทธิ์เขียนสำหรับการอัปโหลดแบบสำรวจ
  • การอัปเดต doc_root ใน php.ini และ $rootdir ใน config.php

ไฟล์หาย ("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)

  • นอกจากนี้ ให้ตรวจสอบการตั้งค่า PHP ของคุณ หากผู้ให้บริการโฮสติ้งของคุณใช้ Suhosin extension for Apache ซึ่งอาจตั้งค่าจำกัดเกินไปในบางรายการ
  • ตัวอย่างเช่น การตั้งค่า "suhosin.post.max_vars" และ "suhosin.request.max_vars" ทั้งสองค่าถูกตั้งเป็น 200 โดยค่าเริ่มต้น ให้เพิ่มทั้งสองค่าเป็น 400 หรือสูงกว่า เพื่อให้ผู้ใช้สามารถทำแบบสำรวจที่ยาวให้เสร็จและส่งได้
  • หากยังมีปัญหาอยู่ ให้ลองเปลี่ยนโมดูลเป็น simulation_mode (ซึ่งโดยพื้นฐานคือการปิดการทำงานของโมดูล) เนื่องจากค่าสูงสุดขึ้นอยู่กับแบบสำรวจของคุณโดยเฉพาะเสมอ
  • อีกสาเหตุหนึ่งอาจเป็นพร็อกซีหรือซอฟต์แวร์ที่คล้ายกันซึ่งไม่อนุญาตให้ส่งคำขอ POST ขนาดใหญ่ หรือการเรียกหน้าเดียวกันหลายครั้งในเบื้องหลัง (ซึ่งทำให้มีการสร้าง CSRF-key ใหม่) ในกรณีนี้ ให้ลองใช้การเชื่อมต่ออินเทอร์เน็ตอื่น

ไม่มีคำถามแสดงขึ้นเมื่อใช้ MSSQL Server กับ FreeTDS บน Linux

หากคุณตรวจสอบกลุ่มคำถามใดๆ อย่างละเอียด จะพบว่ามีช่องว่างในความเกี่ยวข้องของกลุ่ม ซึ่งทำให้ทั้งกลุ่มไม่เกี่ยวข้อง สาเหตุที่แท้จริงคือ 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 schema ที่กำหนด

ตั้งค่าใน config.php 'initSQLs' => array('SET search_path TO "LimeSurvey";'), ดูตัวอย่างได้ใน config-defaults