문제 해결
From LimeSurvey Manual
__목차__
일반
이 페이지에는 일반적인 기술 문제와 성공적인 설치 후 해결 방법이 나열되어 있습니다. 설치 중 발생하는 문제를 해결해야 하는 경우 설치 FAQ를 참조하세요.
관리 로그인 페이지를 열려고 할 때
오류 메시지: 설치 후 "입력 파일이 지정되지 않았습니다"
또는
어떤 URL이든 설문조사 목록 페이지에 표시될 수 있습니다
설치 과정에서 LimeSurvey는 URL 형식에 가장 적합한 솔루션을 결정하려고 시도합니다. 때로는 이것이 제대로 작동하지 않을 때도 있습니다.
config 파일을 편집하여 LimeSurvey가 다른 URL 관리자 시스템을 사용하도록 강제해야 합니다.
/application/config/config.php 에서 교체
'urlFormat' => 'path',
이것에 의해서:
'urlFormat' => 'get',
그런 다음 짧은 관리 URL을 사용하여 관리 패널을 열어보세요. http://<yourserver.net>/<limesurvey_dir>/admin
관리실 로그인 후
관리자 페이지에서 어떤 작업을 수행해도 로그인 화면으로 돌아갑니다
이는 다음과 같은 주요 이유로 발생할 수 있습니다:
- PHP 세션 문제
- UTF8 인코딩 문제
- IE 문제
PHP 세션:
- php.ini에서 upload_tmp_dir 및 session.save_path를 업데이트합니다
- 구성된 세션을 생성하고 디렉터리를 업로드합니다
- IIS: IIS 게스트 사용자 계정을 생성하고 수정할 수 있는 권한이 할당됩니다
- Apache : 웹서버가 구성된 디렉터리에 쓸 수 있는 권한이 있는지 확인하세요
- php.ini의 "session.use_cookies" 변수가 1로 설정되어 있는지 확인하세요.
- php의 "session.auto_start" 변수를 확인하세요. 1로 설정되어 있으면 0으로 변경합니다.
Internet Explorer 문제 LimeSurvey는 더 이상 Internet Explorer를 통한 관리 인터페이스 액세스를 지원하지 않습니다.
UTF8 인코딩:
파일(아마도 config.php)을 편집하는 경우 특수 언어 문자를 지원하기 위해 UTF8로 저장하지 마십시오! .php 파일은 항상 실제 ANSI/ISO 형식으로 저장하세요.
질문/답변 옵션/하위 질문이 너무 많은 페이지 제출이 작동하지 않습니다
PHP 5.3.9에는 max_input_vars라는 새로운 설정이 도입되었습니다(일부 이전 PHP 버전으로 백포트되기도 했습니다). 이 설정은 서버에 게시(제출)될 수 있는 최대 변수 수를 제한합니다. 기본값은 1000으로 설정되지만 답변 옵션이 많은 질문이 있거나 질문/답변이 많은 설문조사 페이지가 있는 경우 이 한도가 초과될 수 있습니다. PHP 구성 파일(php.ini)에서 이를 설정해야 합니다.
Linux에서 FreeTDS가 포함된 MSSQL Server를 사용하면 날짜가 올바르게 표시되지 않습니다
FreeTDS의 locales.conf 파일을 찾아 편집하세요. FreeTDS를 사용하는 다른 응용 프로그램이 없으면 내용을 다음으로 바꾸십시오:
[default]
date format = %Y-%m-%d %H:%M:%S.%z
FreeTDS를 사용하는 다른 애플리케이션이 있는 경우 먼저 편집해야 할 로케일을 확인하는 것이 좋습니다.
서버를 저장하고 다시 시작하십시오. 이제 날짜가 올바르게 표시됩니다. 그래도 작동하지 않으면 잘못된 파일을 편집했을 수 있습니다. 헹구고 반복하세요.
설문조사나 관리에 특수 문자(중국어, 키릴 문자, 그리스어, 아랍어)를 입력하면 모든 문자가 물음표로 표시됩니까?
이는 데이터베이스 자체가 UTF-8 문자 세트를 사용하도록 생성되지 않은 경우 발생합니다. 이는 공급자 관리 패널을 사용하여 데이터베이스를 생성해야 할 때 발생할 수 있습니다. 데이터베이스에서 다음 SQL 명령을 실행하여(예: phpMyAdmin 사용) 이 문제를 해결할 수 있습니다 ALTER DATABASE `<your_database_name>` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
<your_database_name>를 귀하의 데이터베이스 이름으로 바꾸십시오. LimeSurvey를 설치하기 전에 이 작업을 수행해야 합니다.
PageSpeed는 Limesurvey에 몇 가지 문제를 야기합니다
LimeSurvey 가상 호스트에 ModPagespeed off를 포함해야 합니다.
그렇지 않으면 ComfortUpdate를 사용할 수 없으며 데이터를 내보낼 수도 없습니다. 아마도 다른 일도 실패할 것입니다.
설문조사 중
"세션이 만료되었습니다" 오류
어느 시점에서 다음과 같은 메시지를 받을 수 있습니다:
오류
죄송합니다. 세션이 만료되었습니다.
귀하가 너무 오랫동안 활동하지 않았거나, 브라우저에서 쿠키가 비활성화되었거나, 연결에 문제가 있었습니다.
귀하의 서버에서 'Suhosin(수호신)'이 활성화되어 있다면, 설문조사 중간에 이런 내용이 나오는 이유일 수도 있습니다.
Suhosin은 PHP 설치를 위한 고급 보호 시스템이지만 Suhosin 기본 구성으로 인해 LimeSurvey에 문제가 발생할 수 있습니다.
먼저 Suhosin 문서에 따라 suhosin.log.sapi = 511 및 suhosin.simulation = on을 설정하여 Suhosin 로그를 사용하여 확인하고 테스트합니다.
구성 파일은 일반적으로 /etc/php5/apache2/conf.d/suhosin.ini에 있지만, 올바른 경로를 얻으려면 phpinfo를 확인할 수 있습니다(LimeSurvey 관리 > 전역 설정 > 버튼 phpinfo 표시 > 줄: "추가 .ini 파일 구문 분석됨).
매개변수를 고려하려면 Apache/Nginx 서버를 다시 시작하는 것을 잊지 마세요(service apache2 restart 또는 service nginx restart).
시뮬레이션이 실행되면 Suhosin은 아무 것도 차단하지 않으며 오류는 로그에 보고됩니다(보통 시스템 로그: /var/log/syslog). "ALERT-SIMULATION - 구성된 POST 변수 한도 초과", 이는 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 버전의 버그로 인해 발생합니다. PHP 버전을 업데이트하는 것 외에는 다른 해결 방법이 없습니다.
몇 가지 일반적인 오류(IIS 중심으로)
Index.php가 열리지 않습니다
가능한 원인: 필요한 확장을 설치하지 않은 경우 이런 일이 발생할 수 있습니다
- 멀티바이트 문자열 및 MSSQL(또는 MySQL) 확장을 설치해야 합니다.
가능한 원인: ISAPI 필터가 구성되지 않았습니다
- IIS에서 웹 사이트(디렉터리 수준에서 수행할 수 있음)의 경우 php5isapi.dll을 사용하도록 구성해야 합니다.
Index.php가 열리지 않고 "php.exe -i"가 .dll 누락에 대한 오류 메시지를 표시합니다
너무 많은 확장을 설치하면 이런 일이 발생할 수 있습니다
- 모든 PHP 확장을 설치하면 모든 종속성이 충족되지 않기 때문에 PHP가 실패합니다(예: oracle 패키지에는 oracle dll이 필요함)
- 필요한 확장만 설치하세요
- 테스트하려면 명령줄에서 php.exe -i를 실행해 보세요
데이터베이스가 누락되었다는 메시지
잘못된 URL로 이동하면 이런 일이 발생할 수 있습니다:
- limesurvey/index.php 대신limesurvey/admin/install/index.php로 이동하십시오!
위의 수정 사항으로는 문제가 해결되지 않습니다
IIS을 다시 시작하지 않은 경우 이런 일이 발생할 수 있습니다
- IIS를 다시 시작하세요
잊어버리기 쉬운 사항:
- .php는 필터 php5isapi.dll과 연결되어야 합니다
- limesurvey/tmp 디렉토리는 설문조사 업로드를 위한 쓰기 권한이 필요합니다
- php.ini의 doc_root 및 config.php의 $rootdir을 업데이트합니다
파일 없음("해당 파일이나 디렉터리가 없습니다.")
LimeSurvey를 서버에 업로드할 때 연결이 중단되어 일부 파일이 전송되지 않거나 완전히 전송되지 않을 수 있습니다. 파일에 따라 LimeSurvey의 다른 기능/부분에 액세스할 때마다 다른 오류 메시지가 나타날 수 있습니다. 누락된 파일로 인해 발생하는 오류는 다음과 같습니다.
"경고: require_once(/path/to/your/limesurvey/installation/filename) [function.require-once]: 스트림을 열지 못했습니다: No such file or directory in /path/to/your/limesurvey/installation/filename on line 12345" OR
"치명적 오류: 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로 이동하여 다시 설치하세요)
페이지를 제출한 후, you end up on the general index page/on a 404 page 또는 'CSRF 토큰을 확인할 수 없습니다'라는 메시지가 표시됩니다.
또는
답변/하위 질문이 많은 페이지에서 '다음'을 클릭한 후 모든 응답이 저장되지는 않습니다.
또는
After clicking 'Next', I end up on the same page
or
빠른 번역 시스템을 사용해도 답변이나 하위 질문이 저장되지 않습니다
or
많은 수의 응답 필드를 내보낼 때 모든 응답 필드가 내보내지지 않습니다
- 이는 웹 서버의 제한 설정 때문일 가능성이 높습니다: max_input_vars . 이 설정은 서버에 게시(제출)될 수 있는 변수의 최대 개수를 제한합니다.
기본값은 1000으로 설정되지만, 답변 옵션이 많은 질문이 있거나 질문이 많은 설문조사 페이지가 있는 경우/ 답변이 있으면 이 한도를 초과했을 수 있습니다. PHP 구성(php.ini)을 편집해야 합니다.
- 또한 호스트가 Apache용 Suhosin 확장을 사용하고 있다면 PHP 설정을 확인하세요. 이 확장 프로그램은 몇 가지 설정을 너무 제한적으로 설정했을 수 있습니다.
- 예를 들어 "suhosin.post.max_vars"와 "suhosin.request.max_vars" 두 가지 설정은 모두 기본적으로 200 값으로 설정되어 있습니다. 사용자가 긴 설문조사를 완료하고 제출할 수 있도록 해당 설정을 400 이상으로 늘립니다.
- 여전히 문제가 있는 경우 모듈을 시뮬레이션 모드로 전환하여 기본적으로 비활성화해 보십시오. 최대값은 항상 특정 측량에 따라 달라지기 때문입니다.
- 또 다른 이유는 대규모 게시물 요청을 허용하지 않거나 백그라운드에서 동일한 페이지를 여러 번 요청하는 프록시 또는 유사한 소프트웨어일 수 있습니다(이로 인해 새 CSRF 키가 생성됨). 이 경우에는 다른 인터넷 연결을 시도해 보십시오.
Linux에서 FreeTDS와 함께 MSSQL Server를 사용할 때 질문이 표시되지 않습니다
질문 그룹을 주의 깊게 확인하면 그룹 관련성에 공백이 있어 전체 그룹이 관련되지 않게 됩니다. 근본적인 문제는 FreeTDS가 잘못된 구성으로 인해 빈 필드에 공백을 반환한다는 것입니다. FreeTDS 프로토콜 버전을 8.0 이상으로 설정하면 이 문제를 해결할 수 있습니다. 그러므로 freetds.conf(예: /etc/freetds/freetds.conf)를 편집하고 해당 줄을 다음으로 변경합니다.
tds 버전 = 8.0
그러면 이 문제가 해결될 것입니다.
설문조사 진행 후
참가자가 입력한 텍스트는 결과에 물음표로 나타납니다
이것은 데이터베이스 자체가 기본적으로 UTF-8 문자 집합을 사용하지 않는 경우에 발생합니다. 이는 공급자 관리 패널을 사용하여 데이터베이스를 생성해야 할 때 발생할 수 있습니다. 데이터베이스에서 다음 SQL 명령을 실행하여(예: phpMyAdmin 사용) 이 문제를 해결할 수 있습니다.
데이터베이스 변경 `<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 사례를 참조하세요.