선택적 설정
From LimeSurvey Manual
이 섹션은 LimeSurvey 설치의 GUI(그래픽 사용자 인터페이스)로는 수정할 수 없는 구성 설정을 편집하려는 분들을 위한 내용입니다. LimeSurvey 루트 디렉터리에서 수행하는 모든 변경은 사용자의 책임하에 이루어진다는 점에 유의하세요. 문제가 발생하거나 추가 안내가 필요한 경우 토론 포럼에 참여하여 LimeSurvey 커뮤니티의 도움을 받으실 수 있습니다.
소개
설치의 구성 설정을 수정하려면 선택적 설정을 편집해야 합니다. 선택적 설정은 LimeSurvey 루트 디렉터리에 있는 /application/config/config-defaults.php에서 찾을 수 있습니다. 표준 설치의 기본 설정은 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 프레임워크를 사용하며, 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(
....
),
),
데이터베이스 설정
데이터베이스 설정은 LimeSurvey를 처음 설치할 때 설치 프로그램 파일에 의해 config.php에 기록됩니다. 필요한 경우 config.php 파일의 이 부분을 업데이트할 수 있습니다. 이 작업은 사용자의 책임하에 수행해야 한다는 점을 기억하세요! Yii 문서도 참조하시고, LimeSurvey는 mysql, pgsql, dblib, mssql, sqlsrv 데이터베이스 유형만 지원한다는 점을 기억하세요.
세션 설정
config.php에서 일부 세션 매개변수를 설정할 수 있습니다(아래 두 가지 예시를 확인하세요). config.php에서 필요한 부분의 주석을 해제하거나 추가하면 됩니다. 다른 설정은 Yii 문서를 참조하세요.
테이블 기반 세션 사용
LimeSurvey는 테이블 기반 세션을 사용할 수 있으며, 기본으로 생성된 config.php 파일에 주석 처리된 부분이 있습니다. 테이블 기반 세션을 사용하려면 각 줄 앞의 //를 제거하세요.
'session' => array (
'class' => 'application.core.web.DbHttpSession',
'connectionID' => 'db',
'sessionTableName' => '{{sessions}}',
),
기타 세션 업데이트
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
),
),
쿠키의 도메인을 고정하려면 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/',
)
),
토큰 이메일의 URL만 업데이트해야 하는 경우, config.php 파일에서 publicurl을 설정하세요.
iFrame에서 세션 및 CSRF 유효성 검사 허용
전역 보안 설정에서 IFrame 삽입 허용을 켜면 브라우저가 iframe에서 설문조사를 표시하는 것만 허용됩니다. 참여자가 iframe 안에서 설문조사를 작성하고 제출할 수 있으려면, 아래 설명과 같이 config.php에서 세션 및 CSRF 쿠키 설정도 변경해야 합니다. 두 쿠키 모두 SameSite=None으로 전송되어야 하며, 브라우저는 유효한 HTTPS 연결에서만 이를 허용합니다.
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',
),
),
iframe에서 CSRF 쿠키 허용
세션 쿠키와 마찬가지로 CSRF 쿠키도 secure여야 하며, sameSite는 None으로 설정해야 합니다. 여기서는 키가 sameSite로 작성된다는 점에 유의하십시오. request 배열 전체를 session과 같은 수준에 추가하십시오.
'request' => array(
'enableCsrfValidation'=>true,
'csrfCookie' => array(
'sameSite' => 'None',
'secure' => true,
),
),
URL 설정
기본 URL 설정을 변경하려면 urlManager를 업데이트하십시오:
// Use short URL
'urlManager' => array(
'urlFormat' => 'path',
'showScriptName' => false,
),
다음과 같이 설문조사 ID 뒤에 .html을 추가할 수도 있습니다:
// Use short URL
'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) */
);
.
런타임 경로
런타임 경로는 "웹 사용자"가 읽고 쓸 수 있는 디렉터리여야 합니다. 그러나 런타임 경로에는 보안과 관련될 수 있는 정보가 담긴 파일이 있으며, 이 파일들은 공개 웹 접근 영역에 위치합니다. 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'로 설정하면 관리 패널에 로그인하지 않고도, 설문조사를 먼저 활성화하지 않아도 누구나 설문조사 URL로 설문조사를 테스트할 수 있습니다. 이 설정은 기본값이며 전역 설정 대화 상자에서 재정의하거나 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를 차단합니다. 관리 GUI의 전역 설정에 있는 HTTPS 강제로 사용을 참조하십시오.
- ssl_emergency_override: 이 설정은 SSL을 강제로 끕니다. 전역 설정에서 HTTPS/SSL을 켰지만 서버에서 HTTPS가 활성화되어 있지 않은 경우, 이를 끄는 유일한 방법은 데이터베이스의 값을 직접 변경하는 것입니다. 이 설정을 사용하면 보안 강제 전역 설정을 변경하는 동안 HTTPS를 강제로 끌 수 있습니다. 문제를 해결할 때까지 true로 변경하는 긴급 상황을 제외하고는 항상 false여야 합니다. 이 설정은 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로 강제하고 관리자 GUI에서의 변경을 비활성화합니다. 슈퍼 관리자에게도 의심스러운 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 : 호스트 헤더 인젝션을 방지하기 위해 모든 동작에 대해 허용되는 호스트를 설정할 수 있습니다. 공개 페이지와 관리자 페이지에 서로 다른 호스트를 사용하는 경우 두 호스트를 모두 허용 호스트로 설정해야 합니다.
'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으로 늘리려면 다음 방법도 시도해 볼 수 있습니다.
- 서버의 기본 php.ini 파일에 memory_limit = 128M 추가(접근 권한이 있다면 권장)
- LimeSurvey 루트의 php.ini 파일에 memory_limit = 128M 추가
- LimeSurvey 루트의 .htaccess 파일에 php_value memory_limit 128M 추가
- 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: 숫자 필드는 숫자가 아닌 모든 값을 제거하도록 자동으로 필터링될 수 있습니다. 기본적으로 활성화되어 있으며 전체적으로 비활성화할 수 있습니다. 이 설정은 핵심 테마의 테마 옵션에 있는 숫자 자동 보정과 관련이 있습니다. 예(Y)에서는 활성화되고 표시용과 아니오(N)에서는 비활성화됩니다.
- bNumRealValue: 표현식 관리자에서 사용하는 숫자 필드는 보정될 수도 있고 그렇지 않을 수도 있습니다. 기본적으로 보정됩니다. NUMERIC이 숫자 질문일 때, 비활성화 또는 0이면 잘못된 문자가 포함된 {NUMERIC}은 ''를 반환하고, 활성화 또는 1이면 {NUMERIC}은 입력된 모든 문자를 반환합니다. 이 설정은 핵심 테마의 테마 옵션에 있는 숫자 자동 보정과 관련이 있습니다. 예(Y)와 표시용에서는 활성화되고 아니오(N)에서는 비활성화됩니다.
개발 및 디버깅
- 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 함수를 사용할 수 있습니다. 디버그가 설정되어 있으면 이 함수는 CWebLogRoute를 사용하여 HTML 페이지에 결과를 표시합니다. 사용법: traceVar($MyVariable)
이메일 설정
아래의 모든 설정은 전역 설정 대화 상자에서 재정의할 수 있습니다.
- 'emailmethod: 이메일 메시지를 보내는 방식을 결정합니다. 다음 옵션을 사용할 수 있습니다:
- 'mail:' 내부 PHP 메일러를 사용합니다.
- 'sendmail:' sendmail 메일러를 사용합니다.
- 'smtp:' SMTP 릴레이를 사용합니다. LimeSurvey를 메일 서버가 아닌 호스트에서 실행하는 경우 이 설정을 사용하십시오.
- 'emailsmtphost:
$emailmethod로 'smtp'를 사용하는 경우 여기에 SMTP 서버를 입력해야 합니다. Google 메일을 사용하는 경우 $emailsmtphost = 'smtp.gmail.com:465'와 같이 포트 번호를 추가해야 할 수 있습니다. - emailsmtpuser: SMTP 서버에 인증이 필요한 경우 사용자 이름을 설정하십시오. 그렇지 않으면 비워 두어야 합니다.
- emailsmtppassword: SMTP 서버에 인증이 필요한 경우 비밀번호를 설정하십시오. 그렇지 않으면 비워 두어야 합니다.
- emailsmtpssl: SMTP 연결에 SSL/TLS를 사용하려면 'ssl' 또는 'tls'로 설정하십시오.
- maxemails: 설문조사 참여자에게 초대 또는 알림을 보낼 때 한 번에 보낼 수 있는 이메일 수를 결정하는 데 사용되는 설정입니다. 웹 서버마다 이메일 처리 용량이 다르며, 스크립트가 이메일 묶음을 보내는 데 너무 오래 걸리면 시간 초과로 오류가 발생할 수 있습니다. 대부분의 웹 서버는 PHP 스크립트의 기본 시간 제한인 30초 안에 한 번에 100개의 이메일을 보낼 수 있습니다. 많은 수의 이메일을 보낼 때 스크립트 시간 초과 오류가 발생하면 이 설정의 숫자를 줄이십시오. 토큰 제어 도구 모음에서 '이메일 초대 보내기' 버튼(각 토큰 오른쪽에 있는 버튼이 아님)을 클릭하면 <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 내보내기 설정: 이 기능은 인쇄 가능한 설문조사 및 응답 인쇄에 대한 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 설정은 별도의 페이지로 옮겼습니다.
인증
인증은 플러그인에서 처리합니다. 아래 설정은 웹서버 인증 플러그인에서 사용되며, 인증 플러그인을 참조하십시오.
웹서버로 인증 위임
시스템 관리자는 내부 LimeSurvey 데이터베이스를 사용하는 대신 중앙 인증 시스템(Active Directory, openLdap, Radius 등)을 통해 설문조사 관리자를 인증하고 싶을 수 있습니다. 이를 위한 쉬운 방법은 웹 서버 소프트웨어가 이 외부 인증 시스템을 사용하도록 설정한 다음, LimeSurvey가 웹 서버에서 전달한 사용자 ID를 신뢰하도록 하는 것입니다. 이 기능을 사용하려면 다음을 수행해야 합니다:
- 설정 > 플러그인에서 Webserver 플러그인을 활성화하고, 플러그인 설정에서 사용자 이름을 담고 있는 서버 키(기본값: REMOTE_USER)를 설정합니다.
- 웹 서버 측에서 인증을 활성화합니다.
다음 사항에 유의하십시오:
- 이 경우 LimeSurvey는 자체 인증 과정을 건너뜁니다(비밀번호를 요청하지 않고 웹 서버에서 전달한 로그인 이름을 사용합니다).
- 이는 LimeSurvey GUI 인증 시스템만 대체할 수 있으며, 설문조사 초대 시스템(참여자 인터페이스)은 대체할 수 없습니다.
자동 사용자 가져오기 없는 인증 위임
인증 위임은 기본적으로 LimeSurvey 권한 부여 시스템을 우회하지 않는다는 점에 유의하십시오. 즉, LimeSurvey에서 비밀번호를 관리할 필요가 없더라도 관리 패널에 접근하려면 LimeSurvey 데이터베이스에 사용자를 정의하고 올바른 권한 집합을 할당해야 합니다.
다음 조건을 모두 만족하는 경우에만 사용자에게 LimeSurvey 접근 권한이 부여됩니다:
- 웹 서버에서 인증되었을 것
- 로그인 이름이 LimeSurvey 사용자 데이터베이스에 사용자로 정의되어 있을 것(이 경우 LimeSurvey 사용자 데이터베이스에 정의된 사용자의 권한이 부여됩니다)
- 전역 권한 웹 서버 인증을 사용하여를 가지고 있을 것
자동 사용자 가져오기를 사용한 인증 위임
사용자 데이터베이스 규모가 큰 경우 LimeSurvey 데이터베이스로 사용자를 자동으로 가져오는 것이 더 쉬울 때가 있습니다:
- auth_webserver_autocreate_user: 'true'로 설정하면 LimeSurvey는 웹 서버에서 인증되었지만 사용자 DB에 아직 없는 사용자를 자동으로 가져오려고 시도합니다.
- 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();
사용자 이름 매핑
일부 사용자의 외부 사용자 이름이 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 로그인 페이지를 열고, 외부 애플리케이션이 users 테이블(one_time_pw 열)에 미리 기록해 둔 사용자 이름과 일회용 비밀번호를 입력할 수 있습니다.
일회용 비밀번호를 사용하려면 config.php 파일에서 이 설정을 켜야 합니다(기본값 = false).
'config'=>array(
'debug'=>0,
'debugsql'=>0,
'use_one_time_passwords'=>true,
)
자세한 내용은 "사용자 관리" 섹션에서 확인할 수 있습니다.
암호화 설정
application/config/security.php 파일에 설정됩니다. 원한다면 이 설정을 config.php로 옮기거나 security.php에 그대로 두어도 됩니다.이 기능에 대한 자세한 내용은 데이터 암호화를 참조하십시오.
- encryptionkeypair
- encryptionpublickey
- encryptionsecretkey
- encryptionnonce
- encryptionsecretboxkey
고급 URL 설정
- publicurl: '공개 스크립트'의 URL 위치로 설정해야 합니다. 공개 스크립트는 "limesurvey" 폴더(또는 다른 모든 스크립트와 디렉터리를 보관하는 디렉터리에 지정한 이름)에 있는 스크립트입니다. 이 설정은 config.php에서 사용할 수 있으며, LimeSurvey에서 절대 URL이 필요할 때(예: 토큰 이메일을 보낼 때) 사용됩니다.
- tempurl: "/limesurvey/tmp" 디렉터리의 URL 위치 또는 LimeSurvey가 임시 파일을 제공하는 데 사용할 디렉터리의 URL 위치로 설정해야 합니다.
- uploadurl: "/limesurvey/upload" 디렉터리의 URL 위치 또는 LimeSurvey가 업로드된 파일을 제공하는 데 사용할 디렉터리의 URL 위치로 설정해야 합니다. 이를 통해 업로드된 파일을 다른 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 파일에서만 수정할 수 있습니다. 예: Red Hat 기반 리눅스의 경우
/usr/share/misc/magic.mgc - magic_file: MIME 유형별 확장자 배열을 가져올 때 기본 포함된 파일 대신 다른 파일을 사용할 수 있습니다. 배열을 반환하는 PHP 파일이어야 합니다. config.php 파일에서만 수정할 수 있습니다.
업데이트
- updatable: 이 설정은 version.php에 있습니다. true 또는 false로 설정할 수 있습니다. true로 설정하면 슈퍼 관리자 사용자가 로그인할 때 LimeSurvey가 사용 가능한 업데이트가 있는지 확인하고 경고를 표시합니다. false로 설정하면 확인을 하지 않으며 간단 업데이트를 사용할 수 없습니다.
토큰
- allowedcharacters_pattern_token : 이 설정을 통해 토큰을 필터링할 때 사용할 정규식 패턴을 지정할 수 있습니다.