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

ส่วนนี้จัดทำขึ้นสำหรับผู้ที่ต้องการแก้ไขการตั้งค่าคอนฟิกูเรชันที่ไม่สามารถแก้ไขผ่าน GUI (Graphical User Interface) ของการติดตั้ง LimeSurvey ได้ โปรดทราบว่าการเปลี่ยนแปลงทั้งหมดในไดเรกทอรีรากของ LimeSurvey เป็นความเสี่ยงของคุณเอง อย่างไรก็ตาม หากคุณพบปัญหาหรือต้องการคำแนะนำเพิ่มเติม สามารถเข้าร่วม ฟอรัมสนทนา เพื่อขอความช่วยเหลือจากชุมชน LimeSurvey ได้

บทนำ

หากต้องการแก้ไขการตั้งค่าคอนฟิกูเรชันของการติดตั้ง คุณต้องแก้ไขการตั้งค่าเพิ่มเติม ซึ่งอยู่ในไฟล์ /application/config/config-defaults.php ในไดเรกทอรีรากของ LimeSurvey การตั้งค่าเริ่มต้นของการติดตั้งมาตรฐานอยู่ในไฟล์ config-defaults.php การตั้งค่าบางส่วนสามารถแทนที่ได้โดยใช้กล่องโต้ตอบตั้งค่าโดยรวม ส่วนการตั้งค่าอื่น ๆ ต้องแก้ไขด้วยตนเอง

  หากคุณต้องการเปลี่ยนการตั้งค่าเหล่านี้ โปรดอย่าแก้ไขใน config-defaults.php แต่ให้คัดลอกการตั้งค่า/บรรทัดที่ต้องการไปยัง /application/config/config.php ภายใน 'config'=>array( ) แล้วแก้ไขที่นั่น การตั้งค่าที่แก้ไข/เพิ่มใหม่ทั้งหมดในไฟล์ config.php จะแทนที่ค่าเริ่มต้นจาก config-defaults.php


เมื่อมีการอัปเกรด จะมีเพียงการตั้งค่าใน config-defaults.php เท่านั้นที่เปลี่ยนแปลง ดังนั้น การแก้ไขไฟล์ config.php จะช่วยรักษาการตั้งค่าที่คุณปรับแต่งไว้

หากต้องการอัปเดต/เพิ่มการตั้งค่า LimeSurvey ใน /application/config/config.php คุณต้องอัปเดตอาร์เรย์ 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 นอกจากนี้ คุณยังสามารถเข้าถึงการตั้งค่าคอนฟิกูเรชันเฉพาะบางอย่างของ LimeSurvey ได้ผ่านคอนฟิกูเรชันของ Yii

เนื่องจากอาร์เรย์ใน config.php ถูกรวมเข้ากับคอนฟิกทั้งหมด คุณจึงสามารถแทนที่พารามิเตอร์ Yii ใดก็ได้ในไฟล์ config.php

การตั้งค่าเฉพาะของ Yii กำหนดในอาร์เรย์ components:

    'components' => array(
        'db' => array(
            ....
        ),
        'Specific settings'=>array(
            ....
        ),
    ),
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเฟรมเวิร์ก Yii โปรดดูลิงก์ต่อไปนี้

การตั้งค่าฐานข้อมูล

การตั้งค่าฐานข้อมูลจะถูกเขียนลงใน config.php โดยไฟล์ตัวติดตั้งเมื่อคุณติดตั้ง LimeSurvey เป็นครั้งแรก หากจำเป็น คุณสามารถอัปเดตส่วนนี้ของไฟล์ config.php ได้ โปรดจำไว้ว่าคุณดำเนินการนี้โดยยอมรับความเสี่ยงเอง! ดูเอกสารของ Yii ด้วย และโปรดจำไว้ว่า LimeSurvey รองรับฐานข้อมูลเพียงประเภทต่อไปนี้: mysql, pgsql, dblib, mssql และ sqlsrv

การตั้งค่าเซสชัน

คุณสามารถกำหนดพารามิเตอร์เซสชันบางอย่างใน config.php ได้ (ดูตัวอย่างสองตัวอย่างด้านล่าง) คุณสามารถยกเลิกการคอมเมนต์/เพิ่มส่วนที่ต้องการใน config.php ดูเอกสารของ Yii สำหรับการตั้งค่าอื่น ๆ

  หากคุณต้องการอัปเดตการตั้งค่าเซสชันเพื่อให้มีอินสแตนซ์ LimeSurvey หลายตัวทำงานบนเซิร์ฟเวอร์เดียวกัน โปรดตรวจสอบว่าคุณต้องอัปเดตการตั้งค่า request สำหรับคุกกี้ CSRF หรือไม่


ใช้เซสชันแบบตาราง

LimeSurvey สามารถใช้เซสชันแบบตารางได้ คุณจะพบส่วนที่ถูกคอมเมนต์ไว้ในไฟล์ config.php เริ่มต้นที่ถูกสร้างขึ้น หากต้องการใช้เซสชันแบบตาราง ให้ลบ // ที่อยู่หน้าแต่ละบรรทัดออก

        'session' => array (
            'class' => 'application.core.web.DbHttpSession',
            'connectionID' => 'db',
            'sessionTableName' => '{{sessions}}',
        ),
  ขณะนี้เซสชันแบบตารางยังไม่รองรับบนเซิร์ฟเวอร์ MSSQL


การอัปเดตเซสชันอื่น ๆ

หากคุณใช้ SSL ('https') สำหรับการติดตั้ง LimeSurvey การเพิ่มบรรทัดต่อไปนี้ลงใน 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
                ),
            ),

หากต้องการกำหนดโดเมนของคุกกี้ ให้ใช้ไวยากรณ์ต่อไปนี้ใน 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",
            ),

การตั้งค่า Request

การตั้งค่า request มีความสำคัญ แต่การตั้งค่าเริ่มต้นได้รับการปรับให้เหมาะสมกับการใช้งาน LimeSurvey แล้ว หากต้องการอ่านเพิ่มเติม โปรดดูเอกสารของ Yii

ตัวอย่างเช่น คุณสามารถแก้ไขคอนฟิกูเรชันการตั้งค่า request ของ 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/',
            )
        ),

หากคุณต้องการอัปเดตเฉพาะ URL สำหรับอีเมลโทเค็น ให้กำหนดpublicurl ในไฟล์ config.php ของคุณ


อนุญาตให้ใช้เซสชันและการตรวจสอบ CSRF ใน iFrame

การเปิด อนุญาตให้ใช้ IFrame ในการฝังได้ ในการตั้งค่าความปลอดภัยโดยรวม เพียงแต่อนุญาตให้เบราว์เซอร์แสดงแบบสำรวจของคุณใน iframe เท่านั้น เพื่อให้ผู้เข้าร่วมสามารถกรอกและส่งแบบสำรวจภายใน iframe ได้ คุณยังต้องเปลี่ยนการตั้งค่าคุกกี้เซสชันและ CSRF ใน config.php ตามที่อธิบายด้านล่าง คุกกี้ทั้งสองต้องถูกส่งด้วย SameSite=None ซึ่งเบราว์เซอร์จะยอมรับเฉพาะผ่านการเชื่อมต่อ HTTPS ที่ถูกต้องเท่านั้น

  แม้จะใช้การตั้งค่าทั้งหมดนี้ แบบสำรวจใน iframe ก็ยังอาจใช้งานไม่ได้ในบางเบราว์เซอร์หรือบางการตั้งค่าของเบราว์เซอร์ เช่น ในโหมดการท่องเว็บแบบส่วนตัวหรือเมื่อมีการบล็อกคุกกี้ของบุคคลที่สาม การตั้งค่าเหล่านี้ได้รับการทดสอบกับ Firefox 81.0.2 ถึง 115, Chromium 85.0.4183.121 ถึง 119 และ Edge 119 ด้วยการตั้งค่าเริ่มต้น LimeSurvey ไม่ได้ให้การสนับสนุนสำหรับการตั้งค่านี้ มีเพียงการสนับสนุนจากชุมชนเท่านั้น


อนุญาตให้เริ่มเซสชันใน iframe

คุกกี้เซสชันต้องปลอดภัย (secure ซึ่งต้องใช้การเชื่อมต่อ 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',
			),
		 ),

อนุญาตคุกกี้ csrf ใน iframe

เช่นเดียวกับคุกกี้เซสชัน คุกกี้ CSRF ต้องปลอดภัย (secure) และต้องตั้งค่า sameSite เป็น None โปรดทราบว่าในส่วนนี้คีย์เขียนเป็น sameSite ให้เพิ่มอาร์เรย์ request ทั้งหมดในระดับเดียวกับ session

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

การตั้งค่า URL

  หากคุณต้องการอัปเดตเฉพาะ URL สำหรับอีเมลโทเค็นและอีเมลอื่น ๆ ให้ตั้งค่า publicurl ในไฟล์ config.php ของคุณ


หากต้องการเปลี่ยนการตั้งค่า URL เริ่มต้น ให้อัปเดต urlManager:

       // Use short URL
		'urlManager' => array(
			'urlFormat' => 'path',
			'showScriptName' => false,
		),


คุณยังสามารถเพิ่ม .html หลัง ID ของแบบสำรวจได้ดังนี้:

       // Use short URL
		'urlManager' => array(
			'urlFormat' => 'path',
			'rules' => array (
			    '<sid:\d+>' => array('survey/index','urlSuffix'=>'.html','matchValue'=>true),
			 ),
			'showScriptName' => false,
		),

สำหรับข้อมูลเพิ่มเติม โปรดดู เอกสารของ Yii

การตั้งค่าบันทึก (Logging)

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 ใช้ runtime path โดยค่าเริ่มต้น บันทึกเหล่านี้สามารถเข้าถึงได้ผ่านเว็บ และอาจมีข้อมูลจำนวนมากจากเซิร์ฟเวอร์ของคุณ ควรใช้ไดเรกทอรีที่ไม่สามารถเข้าถึงได้ผ่านเว็บ คุณสามารถตั้งค่าได้ใน routes หรือโดยการอัปเดต Runtime path

.

Runtime path

Runtime path ต้องเป็นไดเรกทอรีที่ "ผู้ใช้เว็บ" สามารถอ่านและเขียนได้ อย่างไรก็ตาม runtime path มีไฟล์ที่อาจมีข้อมูลด้านความปลอดภัยซึ่งอยู่ในพื้นที่ที่เข้าถึงได้ผ่านเว็บสาธารณะ LimeSurvey เก็บไฟล์เหล่านี้ไว้ในไดเรกทอรี temp ของไดเรกทอรีรากของ LimeSurvey เพื่อป้องกันการเข้าถึงข้อมูลสำคัญดังกล่าว คุณสามารถตั้งค่า runtime path ให้อยู่นอกพื้นที่เข้าถึงเว็บสาธารณะได้โดยแก้ไขบรรทัดที่เกี่ยวข้องในไฟล์ /application/config/config.php:

 
return array(
  'components' => array(
    […]
    'runtimePath'=>'/var/limesurvey/runtime/',
    'config'=>array(
    […]
    )
  )
)

การตั้งค่าทั่วไป

  • sitename: ตั้งชื่อให้เว็บไซต์แบบสำรวจของคุณ ชื่อนี้จะปรากฏในภาพรวมรายการแบบสำรวจและส่วนหัวของการดูแลระบบ ค่าเริ่มต้นคือ 'LimeSurvey' และสามารถเขียนทับได้ในกล่องโต้ตอบการตั้งค่าโดยรวม หรือแก้ไขใน config.php
  • siteadminemail: นี่คือที่อยู่อีเมลเริ่มต้นของผู้ดูแลเว็บไซต์ และใช้สำหรับข้อความของระบบและตัวเลือกการติดต่อ การตั้งค่านี้ใช้เป็นค่าเริ่มต้นเท่านั้น และสามารถเขียนทับได้ในกล่องโต้ตอบการตั้งค่าโดยรวม
  • showEmailInError: ใช้อีเมลของผู้ดูแลเว็บไซต์เริ่มต้น (siteadminemail) สำหรับลิงก์ mailto ในหน้าข้อผิดพลาด ปิดการใช้งานเพื่อแสดงเฉพาะชื่อผู้ดูแลระบบ ค่าเริ่มต้นนี้ช่วยหลีกเลี่ยงสแปมที่ส่งไปยังอีเมลของผู้ดูแลระบบมากขึ้น
  • 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 จะเห็นได้เฉพาะผู้ใช้ที่ตนสร้างขึ้น หรือผู้ใช้ที่อยู่ในกลุ่มเดียวกันอย่างน้อยหนึ่งกลุ่ม ค่าเริ่มต้นสามารถเขียนทับได้ในกล่องโต้ตอบการตั้งค่าโดยรวม หรือแก้ไขใน config.php
  • demoMode: หากตั้งค่าตัวเลือกนี้เป็น 'true' ใน config.php LimeSurvey จะเข้าสู่โหมดสาธิต โหมดสาธิตจะเปลี่ยนแปลงสิ่งต่อไปนี้:
    • ปิดการใช้งานการเปลี่ยนรายละเอียดและรหัสผ่านของผู้ใช้ผู้ดูแลระบบ;
    • ปิดการใช้งานการอัปโหลดไฟล์ในตัวแก้ไขเทมเพลต;
    • ปิดการใช้งานการส่งอีเมลเชิญและอีเมลเตือน;
    • ปิดการใช้งานการสร้างดัมพ์ฐานข้อมูล;
    • ปิดการใช้งานความสามารถในการแก้ไขการตั้งค่าโดยรวมต่อไปนี้: ชื่อเว็บไซต์ ภาษาเริ่มต้น โหมดแก้ไข HTML เริ่มต้น ตัวกรอง XSS
  • forcedsuperadmin: อาร์เรย์ของหมายเลขผู้ใช้ที่มีสิทธิ์ทั้งหมดบน LimeSurvey การตั้งค่านี้สามารถอัปเดตได้ในไฟล์ config.php เท่านั้น สิทธิ์ของผู้ใช้นี้ไม่สามารถแก้ไขได้ในสิทธิ์โดยรวมสำหรับผู้ใช้ แม้โดยซูเปอร์แอดมินแบบบังคับคนอื่น โดยค่าเริ่มต้น ผู้ใช้ที่มีสิทธิ์นี้คือผู้ใช้ที่มีหมายเลข: 1 ซึ่งเป็นผู้ใช้คนแรกที่สร้างขึ้นทันทีหลังการติดตั้ง
  • force_ssl: บังคับให้ LimeSurvey ทำงานผ่าน HTTPS หรือบล็อก HTTPS ดู บังคับใช้ HTTPS ใน GUI การดูแลระบบของการตั้งค่าโดยรวม
  • ssl_emergency_override: การตั้งค่านี้บังคับให้ปิด SSL หากคุณเปิด HTTPS/SSL ในการตั้งค่าโดยรวมแต่เซิร์ฟเวอร์ของคุณไม่ได้เปิดใช้งาน HTTPS วิธีเดียวที่จะปิดได้คือการเปลี่ยนค่าในฐานข้อมูลโดยตรง การตั้งค่านี้ช่วยให้คุณบังคับปิด HTTPS ในขณะที่เปลี่ยนการตั้งค่าโดยรวมสำหรับ Force Secure ค่านี้ควรเป็น false เสมอ ยกเว้นในกรณีฉุกเฉินที่คุณเปลี่ยนเป็น true จนกว่าจะแก้ไขปัญหาได้ การตั้งค่านี้สามารถตั้งค่าได้ผ่านไฟล์ config.php เท่านั้น
  • ssl_disable_alert: ปิดการแจ้งเตือนสำหรับซูเปอร์แอดมินเกี่ยวกับ SSL ที่ไม่ได้บังคับใช้ หากคุณไม่สามารถหรือไม่ต้องการบังคับใช้ SSL จริง ๆ การตั้งค่านี้สามารถตั้งค่าได้ผ่านไฟล์ config.php เท่านั้น
  • allow_unserialize_attributedescriptions: อนุญาตให้ยกเลิกการซีเรียลไลซ์ (ด้วยฟังก์ชัน unserialize ของ PHP) แอตทริบิวต์ของโทเค็นเมื่อนำเข้าหรืออ่านออบเจ็กต์แบบสำรวจ ข้อมูลแอตทริบิวต์ของโทเค็นถูกบันทึกเป็น JSON หากคุณนำเข้าไฟล์แบบสำรวจจาก LimeSurvey เวอร์ชันเก่ามากและจำเป็นต้องได้แอตทริบิวต์ของโทเค็น คุณต้องเปิดใช้งานการตั้งค่านี้ คำเตือน: การยกเลิกการซีเรียลไลซ์อาจทำให้โค้ดถูกโหลดและเรียกใช้งานจากการสร้างอ็อบเจ็กต์และการโหลดอัตโนมัติ และผู้ประสงค์ร้ายอาจใช้ช่องโหว่นี้ได้ การตั้งค่านี้สามารถตั้งค่าได้ผ่านไฟล์ config.php เท่านั้น
  • allow_unserialize_attachments: อนุญาตให้ยกเลิกการซีเรียลไลซ์ (ด้วยฟังก์ชัน unserialize ของ PHP) แอตทริบิวต์ไฟล์แนบเมื่อนำเข้าแบบสำรวจ ใน limesurvey 6.16.17: แอตทริบิวต์ไฟล์แนบเปลี่ยนจาก serialize เป็น json_encode หากคุณต้องการเก็บไฟล์แนบไว้เมื่อนำเข้าไฟล์ LSS เก่า คุณต้องอนุญาตการตั้งค่านี้ คำเตือน: การยกเลิกการซีเรียลไลซ์อาจทำให้โค้ดถูกโหลดและเรียกใช้งานจากการสร้างอ็อบเจ็กต์และการโหลดอัตโนมัติ และผู้ประสงค์ร้ายอาจใช้ช่องโหว่นี้ได้ การตั้งค่านี้สามารถตั้งค่าได้ผ่านไฟล์ config.php เท่านั้น
  • twig_getConfig_extraallowlist: อนุญาตให้ระบุองค์ประกอบเพิ่มเติมสำหรับฟังก์ชัน getConfig ใน twig LimeSurvey อนุญาตการตั้งค่าที่จำเป็นและใช้บ่อยส่วนใหญ่อยู่แล้ว แต่คุณอาจต้องการเพิ่มเติม หากต้องการอนุญาต 'securesetting' และ 'anothersetting' ให้ตั้งค่านี้เป็น ['securesetting','anothersetting'] ดังนี้ 'twig_getConfig_extraallowlist' => ['securesetting','anothersetting'] การตั้งค่านี้สามารถตั้งค่าได้ผ่านไฟล์ config.php เท่านั้น

การป้องกัน Cross-site scripting (XSS)

LimeSurvey ไม่อนุญาตให้ผู้ใช้ใด ๆ ใส่สคริปต์ในหน้าการดูแลระบบ หากคุณพบวิธีเพิ่มสคริปต์ XSS ในหน้าการดูแลระบบโดยผู้ใช้ใด ๆ โปรดตรวจสอบนโยบายความปลอดภัยของเรา

สคริปต์ในหน้าสาธารณะถูกจัดการด้วยการตั้งค่าตัวกรอง XSS

  • filterxsshtml: การตั้งค่านี้เปิดใช้งานการกรองแท็ก HTML ที่น่าสงสัยซึ่งอยู่ภายในแบบสำรวจ กลุ่ม คำถาม และข้อความคำตอบในส่วนติดต่อการดูแลระบบ ตั้งค่าเป็น 'false' เฉพาะเมื่อคุณเชื่อถือผู้ใช้ที่คุณสร้างขึ้นสำหรับการดูแลระบบ LimeSurvey อย่างเต็มที่ และต้องการอนุญาตให้ผู้ใช้เหล่านี้ใช้ Javascript, Flash Movies ฯลฯ ได้ 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: เฉพาะ forced superadmin; โดยค่าเริ่มต้น: ไม่มีผู้ใช้ใดและไม่อนุญาตให้อัปเดตผ่าน GUI

อนุญาตการอัพโหลดไฟล์

  • allowedthemeimageformats : ประเภทไฟล์รูปภาพที่อนุญาตให้อัปโหลดในส่วนธีม โดยค่าเริ่มต้นไฟล์ SVG จะถูกปิดใช้งานเนื่องจากอาจเกิดการโจมตีแบบ XSS
  • allowedthemeuploads : ประเภทไฟล์อื่น ๆ ที่อนุญาตให้อัปโหลดในส่วนธีม (ไฟล์ zip)
  • allowedresourcesuploads : ประเภทไฟล์ที่อนุญาตให้อัปโหลดในส่วนทรัพยากร และด้วยตัวแก้ไข HTML
  • allowedpluginuploads : ประเภทไฟล์ที่อนุญาตเมื่ออัปโหลดไฟล์ zip ของปลั๊กอิน

เพียงป้อนสตริงของนามสกุลไฟล์ที่คั่นด้วยเครื่องหมายจุลภาค ตัวอย่างเช่น:

'allowedthemeimageformats' => 'jpg,jpeg,gif,png,webm,svg',

คำเตือน: โปรดระมัดระวังทุกครั้งเมื่ออนุญาตให้อัปโหลดไฟล์ เพราะอาจเกิดการกระทำที่เป็นอันตรายได้

ปลั๊กอิน

  • usePluginWhitelist : หากเป็นจริง ปลั๊กอินที่ไม่อยู่ในรายการอนุญาต (ดู 'pluginWhitelist') จะไม่สามารถติดตั้งหรือโหลดได้ ซึ่งอาจทำให้ปลั๊กอินที่ติดตั้งไว้แล้วถูกปิดใช้งาน
  • pluginWhitelist : รายชื่อปลั๊กอินที่อนุญาตให้ติดตั้งและโหลดเมื่อ 'usePluginWhitelist' เป็นจริง ปลั๊กอินหลักจะอยู่ในรายการอนุญาตโดยปริยาย
  • corePluginBlacklist : รายชื่อปลั๊กอินหลักที่ไม่อนุญาตเมื่อ 'usePluginWhitelist' เป็นจริง
  • disablePluginUpload : เมื่อตั้งค่านี้เป็นจริง ฟีเจอร์ "Plugin Upload" จะถูกปิดใช้งาน

การควบคุมโฮสต์

  • 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 เข้าถึงได้ เป็นเมกะไบต์ ค่าเริ่มต้นคือ '256' หากคุณพบข้อผิดพลาดหมดเวลา หรือมีปัญหาในการสร้างสถิติหรือส่งออกไฟล์ ให้เพิ่มขีดจำกัดนี้เป็น '512' หรือสูงกว่า หากเว็บเซิร์ฟเวอร์ของคุณกำหนดขีดจำกัดที่สูงกว่าไว้ใน php.ini การตั้งค่านี้จะถูกละเว้น
โปรดทราบว่าการตั้งค่าภายในเครื่องเหล่านี้อาจถูกแทนที่ด้วยการเปลี่ยนแปลงในกล่องโต้ตอบการตั้งค่าโดยรวมได้เสมอ

หากต้องการเพิ่มขีดจำกัดหน่วยความจำเป็น 128M คุณอาจลองเพิ่มสิ่งต่อไปนี้:

  • memory_limit = 128M ในไฟล์ php.ini หลักของเซิร์ฟเวอร์ (แนะนำ หากคุณมีสิทธิ์เข้าถึง)
  • memory_limit = 128M ในไฟล์ php.ini ที่ไดเรกทอรีรากของ LimeSurvey
  • php_value memory_limit 128M ในไฟล์ .htaccess ที่ไดเรกทอรีรากของ LimeSurvey
  • 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 ทั้งหมดที่สคริปต์เรียกใช้ที่ด้านล่างของแต่ละหน้า มีประโยชน์มากสำหรับการปรับจำนวนคำสั่งให้เหมาะสม หากต้องการเปิดใช้งาน ให้เปลี่ยนค่าเริ่มต้นเป็น '1' จากไฟล์ config.php
  • 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 mail คุณอาจต้องเพิ่มหมายเลขพอร์ต เช่น $emailsmtphost = 'smtp.gmail.com:465'
  • emailsmtpuser: หากเซิร์ฟเวอร์ SMTP ของคุณต้องมีการยืนยันตัวตน ให้ตั้งค่านี้เป็นชื่อบัญชีของคุณ มิฉะนั้นต้องเว้นว่างไว้
  • emailsmtppassword: หากเซิร์ฟเวอร์ SMTP ของคุณต้องมีการยืนยันตัวตน ให้ตั้งค่านี้เป็นรหัสผ่านของคุณ มิฉะนั้นต้องเว้นว่างไว้
  • emailsmtpssl: ตั้งค่านี้เป็น 'ssl' หรือ 'tls' เพื่อใช้ SSL/TLS สำหรับการเชื่อมต่อ SMTP
  • maxemails: เมื่อส่งคำเชิญหรือการแจ้งเตือนไปยังผู้เข้าร่วมแบบสำรวจ การตั้งค่านี้ใช้กำหนดจำนวนอีเมลที่สามารถส่งได้ในหนึ่งชุด เว็บเซิร์ฟเวอร์แต่ละแห่งมีความสามารถในการส่งอีเมลต่างกัน และหากสคริปต์ของคุณใช้เวลานานเกินไปในการส่งอีเมลหนึ่งชุด สคริปต์อาจหมดเวลาและทำให้เกิดข้อผิดพลาด เว็บเซิร์ฟเวอร์ส่วนใหญ่สามารถส่งอีเมลได้ครั้งละ 100 ฉบับภายในการจำกัดเวลาเริ่มต้น 30 วินาทีสำหรับสคริปต์ PHP หากคุณได้รับข้อผิดพลาดสคริปต์หมดเวลาเมื่อส่งอีเมลจำนวนมาก ให้ลดตัวเลขในการตั้งค่านี้ การคลิกปุ่ม 'ส่งอีเมลเชิญชวน' จากแถบเครื่องมือควบคุมโทเค็น (ไม่ใช่ปุ่มที่อยู่ทางขวาของแต่ละโทเค็น) จะส่งคำเชิญจำนวน <maxemails> ฉบับ จากนั้นจะแสดงรายการที่อยู่ของผู้รับและคำเตือนว่า มีอีเมลค้างส่งมากกว่าที่ส่งได้ในหนึ่งชุด ดำเนินการส่งอีเมลต่อโดยคลิกด้านล่าง ยังมีอีเมลที่ต้องส่งอีก ### ฉบับ พร้อมให้ "ปุ่มดำเนินการต่อ" เพื่อไปยังชุดถัดไป กล่าวคือ ผู้ใช้เป็นผู้กำหนดว่าจะส่งชุดถัดไปเมื่อใดหลังจากส่งอีเมลแต่ละชุด ไม่จำเป็นต้องรออยู่ที่หน้าจอนี้ ผู้ดูแลสามารถออกจากระบบและกลับมาในภายหลังเพื่อส่งคำเชิญชุดถัดไปได้

สถิติและการเรียกดูการตอบคำถาม

  • filterout_incomplete_answers: ควบคุมพฤติกรรมเริ่มต้นของการกรองคำตอบที่ไม่สมบูรณ์เมื่อเรียกดูหรือวิเคราะห์การตอบคำถาม สำหรับการอภิปรายเกี่ยวกับการตอบคำถามที่ไม่สมบูรณ์ โปรดดู วิกิการเรียกดูผลแบบสำรวจ เนื่องจากข้อมูลเหล่านี้อาจทำให้สถิติคลาดเคลื่อน จึงมีตัวเลือกให้เปิดหรือปิดตัวกรองนี้ในหลายแบบฟอร์ม GUI ได้ สามารถแก้ไขพารามิเตอร์นี้ได้ใน config.php ตัวเลือกที่มีให้ใช้งานมีดังนี้:
    • 'all': ให้คุณดูได้ทั้งคำตอบที่สมบูรณ์และไม่สมบูรณ์;
    • 'complete': แสดงเฉพาะคำตอบที่สมบูรณ์;
    • '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 Export Settings: ฟีเจอร์นี้เปิดใช้งานการส่งออกแบบ PDF สำหรับแบบสำรวจที่พิมพ์ได้และพิมพ์คำตอบ ฟังก์ชันส่งออก PDF ยังอยู่ในขั้นทดลองทั้งหมด และผลลัพธ์ยังห่างไกลจากความสมบูรณ์ ขออภัยที่ขณะนี้ยังไม่สามารถให้การสนับสนุนได้ - หากคุณต้องการช่วยแก้ไข โปรดติดต่อเรา
    • 'pdfdefaultfont': คือฟอนต์เริ่มต้นที่ฟังก์ชันส่งออก PDF จะใช้ ค่าเริ่มต้นคือ 'auto' หากต้องการเปลี่ยน คุณต้องตั้งค่าเป็นหนึ่งใน ฟอนต์หลักของ PDF
    • 'alternatepdffontfile': เป็นอาร์เรย์ที่ประกอบด้วยคีย์ภาษาและฟอนต์ที่สอดคล้องกัน สามารถเปลี่ยนฟอนต์เริ่มต้นของแต่ละภาษาได้ในไฟล์ config.php;
    • 'pdffontsize': แสดงขนาดตัวอักษรสำหรับข้อความปกติ สำหรับชื่อของแบบสำรวจจะเป็น <pdffontsize>+4 ส่วนชื่อกลุ่มจะเป็น <pdffontsize>+2 สามารถแก้ไขได้ในไฟล์ config.php หรือจากกล่องโต้ตอบการตั้งค่าโดยรวม
  • Graph setting
    • 'chartfontfile': กำหนดชื่อไฟล์ฟอนต์ที่ใช้สร้างแผนภูมิสถิติ ไฟล์ต้องอยู่ในไดเรกทอรี fonts ซึ่งอยู่ในโฟลเดอร์รากของ LimeSurvey สามารถแก้ไขได้ในไฟล์ config.php;
    • 'alternatechartfontfile': เป็นอาร์เรย์ที่ประกอบด้วยคีย์ภาษาและฟอนต์ที่สอดคล้องกัน สามารถแก้ไขได้ในไฟล์ config.php
  • showsgqacode: การตั้งค่านี้ใช้กับฟีเจอร์แบบสำรวจที่พิมพ์ได้ และค่าเริ่มต้นคือ 'false หากคุณตั้งค่า showsgqacode = 'true'; ระบบจะแสดง ID ของแต่ละคำถาม - และคำตอบ (ถ้ามี) ID เหล่านี้ตรงกับหัวคอลัมน์ในตาราง Lime_survey_12345 ซึ่งเก็บข้อมูลคำตอบของแบบสำรวจนั้น ๆ สามารถนำ ID เหล่านี้ไปใช้เป็นสมุดรหัสสำหรับการสืบค้นฐานข้อมูลด้วยตนเองได้

การตั้งค่า LDAP

เนื่องจากเป็นหัวข้อที่มีเนื้อหามาก เราจึงย้ายการตั้งค่า LDAPไปไว้ในอีกหน้าหนึ่ง

การตรวจสอบสิทธิ์ผู้ใช้

การตรวจสอบสิทธิ์ผู้ใช้ดำเนินการโดยปลั๊กอิน การตั้งค่าด้านล่างนี้ใช้โดยปลั๊กอิน Webserver authentication ดู ปลั๊กอินการตรวจสอบสิทธิ์ผู้ใช้

การมอบหมายการตรวจสอบสิทธิ์ผู้ใช้ให้เว็บเซิร์ฟเวอร์

ผู้ดูแลระบบอาจต้องการให้ผู้ดูแลแบบสำรวจของตนผ่านการตรวจสอบสิทธิ์กับระบบตรวจสอบสิทธิ์ส่วนกลาง (Active Directory, openLdap, Radius, ...) แทนการใช้ฐานข้อมูลภายในของ LimeSurvey วิธีที่ง่ายที่สุดคือตั้งค่าซอฟต์แวร์เว็บเซิร์ฟเวอร์ของคุณให้ใช้ระบบตรวจสอบสิทธิ์ภายนอกนี้ แล้วให้ LimeSurvey เชื่อถือข้อมูลตัวตนของผู้ใช้ที่เว็บเซิร์ฟเวอร์รายงานมา หากต้องการเปิดใช้งานฟีเจอร์นี้ คุณต้อง:

  • เปิดใช้งานปลั๊กอิน Webserver ที่ การกำหนดค่า > ปลั๊กอิน และตั้งค่าคีย์เซิร์ฟเวอร์ที่เก็บชื่อผู้ใช้ (ค่าเริ่มต้น: REMOTE_USER) ในการตั้งค่าปลั๊กอิน;
  • เปิดใช้งานการตรวจสอบสิทธิ์ฝั่งเว็บเซิร์ฟเวอร์

โปรดทราบว่า:

  • LimeSurvey จะข้ามกระบวนการตรวจสอบสิทธิ์ของตนเอง (โดยใช้ชื่อเข้าสู่ระบบที่เว็บเซิร์ฟเวอร์รายงานมาโดยไม่ถามรหัสผ่าน);
  • วิธีนี้สามารถแทนที่ได้เฉพาะระบบตรวจสอบสิทธิ์ GUI ของ LimeSurvey เท่านั้น ไม่สามารถแทนที่ระบบคำเชิญเข้าร่วมแบบสำรวจ (ส่วนติดต่อของผู้เข้าร่วม)

การมอบหมายการตรวจสอบสิทธิ์ผู้ใช้โดยไม่นำเข้าผู้ใช้อัตโนมัติ

โปรดทราบว่าการมอบหมายการตรวจสอบสิทธิ์ผู้ใช้ไม่ได้ข้ามระบบการอนุญาตของ LimeSurvey โดยค่าเริ่มต้น - หมายความว่า แม้คุณไม่ต้องจัดการรหัสผ่านใน LimeSurvey คุณก็ยังต้องกำหนดผู้ใช้ในฐานข้อมูลของ LimeSurvey และกำหนดชุดสิทธิ์ที่ถูกต้องให้ผู้ใช้เหล่านั้น เพื่อให้เข้าถึงแผงผู้ดูแลระบบได้

ผู้ใช้จะได้รับอนุญาตให้เข้าถึง LimeSurvey ก็ต่อเมื่อ:

  • ผู้ใช้ผ่านการตรวจสอบสิทธิ์กับเว็บเซิร์ฟเวอร์แล้ว;
  • ชื่อเข้าสู่ระบบของผู้ใช้ถูกกำหนดเป็นผู้ใช้ในฐานข้อมูลผู้ใช้ของ LimeSurvey (ผู้ใช้จะได้รับสิทธิ์ตามที่กำหนดให้ผู้ใช้นั้นในฐานข้อมูลผู้ใช้ของ LimeSurvey);
  • ผู้ใช้มีสิทธิ์โดยรวม ใช้การตรวจสอบผู้ใช้จาก Web Server

การมอบหมายการตรวจสอบสิทธิ์ผู้ใช้พร้อมนำเข้าผู้ใช้อัตโนมัติ

เมื่อต้องจัดการฐานข้อมูลผู้ใช้ขนาดใหญ่ บางครั้งการนำเข้าผู้ใช้เข้าฐานข้อมูลของ LimeSurvey โดยอัตโนมัติจะง่ายกว่า:

  • auth_webserver_autocreate_user: หากตั้งค่าเป็น 'true' LimeSurvey จะพยายามนำเข้าผู้ใช้ที่ผ่านการตรวจสอบสิทธิ์จากเว็บเซิร์ฟเวอร์แต่ยังไม่มีในฐานข้อมูลผู้ใช้โดยอัตโนมัติ
  • auth_webserver_autocreate_profile: อาร์เรย์ที่อธิบายโปรไฟล์เริ่มต้นที่จะกำหนดให้ผู้ใช้: ชื่อ-นามสกุล (สมมติ) อีเมล และภาษา
  • auth_webserver_autocreate_permissions: อาร์เรย์ที่ประกอบด้วยสิทธิ์โดยรวมที่จะกำหนดให้ผู้ใช้

หากคุณต้องการปรับแต่งโปรไฟล์ผู้ใช้ให้ตรงกับผู้ใช้ที่เข้าสู่ระบบ คุณต้องพัฒนาฟังก์ชันง่าย ๆ ชื่อ hook_get_auth_webserver_profile ใน config.php - ด้วยฟังก์ชันนี้ คุณสามารถดึงชื่อ-นามสกุล อีเมล และภาษาที่แท้จริงของผู้ใช้แต่ละคนจากฐานข้อมูลบัญชีผู้ใช้ส่วนกลาง (เช่น จากไดเรกทอรี 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' ในฐานข้อมูลตรวจสอบสิทธิ์ภายนอก เพื่อเข้าสู่ระบบ LimeSurvey ในฐานะ admin คุณต้องแมปชื่อผู้ใช้ภายนอกของคุณ (สมมติว่าเป็น 'myname') ไปยังชื่อเข้าสู่ระบบ admin ใน LimeSurvey การตั้งค่าที่สอดคล้องกันคือ:

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

หลังจากตรวจสอบสิทธิ์สำเร็จด้วยชื่อเข้าสู่ระบบ 'myname' และรหัสผ่านเว็บเซิร์ฟเวอร์ คุณจะได้รับอนุญาตให้ใช้ LimeSurvey ในฐานะผู้ใช้ 'admin' ทันที

วิธีนี้มีผลกระทบด้านความปลอดภัยอย่างร้ายแรง ดังนั้นโปรดใช้ด้วยความระมัดระวัง และควรป้องกันไฟล์ config.php ของคุณไม่ให้เว็บเซิร์ฟเวอร์เขียนได้

ใช้รหัสผ่านแบบครั้งเดียว

ผู้ใช้สามารถเปิดหน้าเข้าสู่ระบบของ LimeSurvey ที่ default.com/limesurvey/admin และพิมพ์ชื่อผู้ใช้และรหัสผ่านแบบครั้งเดียวที่แอปพลิเคชันภายนอกเขียนไว้ล่วงหน้าในตารางผู้ใช้ (คอลัมน์ 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

การตั้งค่า URL ขั้นสูง

  • publicurl: ควรตั้งค่านี้เป็นตำแหน่ง URL ของ 'public scripts' ของคุณ สคริปต์สาธารณะคือสคริปต์ที่อยู่ในโฟลเดอร์ "limesurvey" (หรือชื่อใดก็ตามที่คุณตั้งให้กับไดเรกทอรีที่เก็บสคริปต์และไดเรกทอรีอื่นๆ ทั้งหมด) การตั้งค่านี้มีอยู่ใน config.php และใช้เมื่อ LimeSurvey ต้องการ URL แบบสมบูรณ์ (เช่น เมื่อส่งอีเมลโทเค็น)
  • tempurl: ควรตั้งค่านี้เป็นตำแหน่ง URL ของไดเรกทอรี "/limesurvey/tmp" ของคุณ หรือไดเรกทอรีที่คุณต้องการให้ LimeSurvey ใช้ในการให้บริการไฟล์ชั่วคราว
  • uploadurl: ควรตั้งค่านี้เป็นตำแหน่ง URL ของไดเรกทอรี "/limesurvey/upload" ของคุณ หรือไดเรกทอรีที่คุณต้องการให้ LimeSurvey ใช้ในการให้บริการไฟล์ที่อัปโหลด การตั้งค่านี้ช่วยให้คุณกำหนดให้ไฟล์ที่อัปโหลดอยู่ในโดเมน URL อื่นได้

การตั้งค่าพาธขั้นสูง

  • homedir: ควรตั้งค่านี้เป็นตำแหน่งจริงบนดิสก์ของสคริปต์การดูแลระบบของคุณ เช่น "/home/usr/htdocs/limesurvey/admin" อย่าใส่เครื่องหมายสแลชท้ายค่านี้ การตั้งค่าเริ่มต้นใน config.php จะพยายามตรวจหาพาธรากเริ่มต้นของเอกสารทั้งหมดของคุณโดยใช้ตัวแปร php {$_SERVER['DOCUMENT_ROOT']} ในกรณีส่วนใหญ่ คุณสามารถปล่อยส่วนนี้ไว้ และแก้ไขเฉพาะส่วนที่เหลือของสตริงให้ตรงกับชื่อไดเรกทอรีที่คุณวางสคริปต์ LimeSurvey ไว้
  • publicdir: ควรตั้งค่านี้เป็นตำแหน่งจริงบนดิสก์ของ 'public scripts' ของคุณ
  • tempdir: ควรตั้งค่านี้เป็นตำแหน่งจริงบนดิสก์ของไดเรกทอรี /limesurvey/tmp ของคุณ เพื่อให้สคริปต์สามารถอ่านและเขียนไฟล์ได้
  • uploaddir: ควรตั้งค่านี้เป็นตำแหน่งจริงบนดิสก์ของไดเรกทอรี /limesurvey/upload ของคุณ เพื่อให้สคริปต์สามารถอ่านและเขียนไฟล์ได้
  • sCKEditorURL: URL ของสคริปต์ CKEditor

การตั้งค่าขั้นสูงอื่นๆ

อัปโหลดไฟล์

  • magic_database: อนุญาตให้ใช้ฐานข้อมูล MIME อื่นสำหรับ finfo_open สามารถแก้ไขได้เฉพาะในไฟล์ config.php เท่านั้น ตัวอย่าง: /usr/share/misc/magic.mgc สำหรับลินุกซ์ที่ใช้ redhat
  • magic_file: อนุญาตให้ใช้ไฟล์อื่นในการดึงอาร์เรย์ของนามสกุลไฟล์ตามประเภท MIME แทนไฟล์ที่มาพร้อมกับระบบ ต้องเป็นไฟล์ PHP ที่คืนค่าเป็นอาร์เรย์ สามารถแก้ไขได้เฉพาะในไฟล์ config.php เท่านั้น

การปรับปรุง

  • updatable: การตั้งค่านี้อยู่ใน version.php สามารถเป็น true หรือ false ได้ หากตั้งเป็น true เมื่อผู้ดูแลระบบสูงสุดเข้าสู่ระบบ LimeSurvey จะตรวจสอบว่ามีการปรับปรุงหรือไม่ และแสดงคำเตือนให้คุณทราบ หากตั้งเป็น false จะไม่มีการตรวจสอบ และคุณจะไม่สามารถใช้ ComfortUpdate ได้

โทเค็น

  • allowedcharacters_pattern_token : การตั้งค่านี้ใช้กำหนดรูปแบบ regexp เมื่อกรองโทเค็น