ЧаВо
From LimeSurvey Manual
Начало работы
Чтобы получить представление о возможностях LimeSurvey, не читая половину руководства, посмотрите наши видеоуроки на YouTube:
- Как настроить учётную запись и установку опроса
- Тип вопроса: массив
- Оценки
- Тексты-подсказки внутри полей
- Тип вопроса: Список с одним ответом
- Копирование/импорт опроса
- Импортировать вопрос
Где найти краткое введение в LimeSurvey?
Краткое письменное введение в LimeSurvey:
- Краткое руководство по LimeSurvey Cloud – создайте и опубликуйте свой первый опрос в LimeSurvey Cloud
- Установка LimeSurvey Community Edition – если вы хотите запустить LimeSurvey на собственном сервере
Дизайн опроса и макет
Как удалить index.php из URL, чтобы получить более короткие адреса?
Если вы хотите использовать более короткие URL (без /index.php в каждом адресе), отредактируйте файл application/config/config.php и в разделе urlManager измените
'showScriptName' => true,
на
'showScriptName' => false,
Чтобы это работало на Apache, должен быть включён mod_rewrite, а файл .htaccess, поставляемый с LimeSurvey, должен находиться в корневой папке LimeSurvey. Для nginx ознакомьтесь с нашим примером конфигурации nginx для LimeSurvey.
Как скрыть красную звёздочку у обязательных вопросов?
LimeSurvey показывает красную звёздочку в начале текста вопроса у обязательных вопросов. В LimeSurvey 7.x рядом с ней отображается слово «Обязательно». Чтобы скрыть их, добавьте правило CSS в тему опроса:
- Базовые темы, такие как Fruity TwentyThree, нельзя редактировать напрямую. Сначала расширьте тему. Это создаст редактируемую копию.
- Откройте редактор темы для копии и выберите файл custom.css.
- Добавьте следующую строку:
.asterisk, .ls-question-mandatory {display: none;}
Сохраните изменения. Затем выберите расширенную тему в общих настройках вашего опроса.
Это также скроет звёздочку в форме публичной регистрации.
Как создать опрос, открытый для всех?
Чтобы создать опрос, который может пройти любой желающий, не создавайте таблицу участников опроса. Поделитесь ссылкой на опрос, расположенной на панели обзора.
Как сделать обязательными все поля публичной регистрации?
Если вы используете таблицу участников опроса и также разрешаете публичную регистрацию, желающие принять участие заполняют форму регистрации с именем, фамилией и адресом e-mail. Обязательным является только адрес e-mail:

Чтобы сделать обязательными также имя и фамилию, отредактируйте форму регистрации в теме опроса. Для Fruity TwentyThree сначала расширьте тему, откройте редактор темы для копии и отредактируйте файл views/subviews/registration/register_form.twig. Поле e-mail показывает, как создаётся обязательное поле:
{# Participants email #}
<div class='{{ aSurveyInfo.class.registerformcolrowc }} row mb-3' {{ aSurveyInfo.attr.registerformcolrowc }}>
<label {{ aSurveyInfo.attr.registerformcolrowclabel }} class='{{ aSurveyInfo.class.registerformcolrowclabel }} control-label'> {{ gT("E-mail") }} {{ include('./subviews/registration/required.twig') }}</label>
<div {{ aSurveyInfo.attr.registerformcolrowcdiv }} >
{{ C.Html.emailField('register_email', aSurveyInfo.sEmail, ({'id' : 'register_email','class' : 'form-control ls-important-field','required' : true, 'placeholder' : gT('Enter e-mail address', 'unescaped')})) }}
</div>
</div>
Измените поля имени и фамилии таким же образом:
- Добавьте
{{ include('./subviews/registration/required.twig') }}в метку. Это покажет звёздочку. - Добавьте
'required' : trueв параметры текстового поля. Это сделает поле обязательным.
Отредактированные поля должны выглядеть так (пример взят из LimeSurvey 7.x; в 6.x тексты-подсказки записываются без 'unescaped'):
{# Participants first name #}
<div class='{{ aSurveyInfo.class.registerformcolrow }} col-md-6 col-12 mb-3 mb-md-0' {{ aSurveyInfo.attr.registerformcolrow }}>
<label for='register_firstname' class='{{ aSurveyInfo.class.registerformcolrowlabel }} control-label '>{{ gT("First name") }} {{ include('./subviews/registration/required.twig') }}</label> {# extra label #}
<div class="">
{{ C.Html.textField('register_firstname', aSurveyInfo.sFirstName, ({'id' : 'register_firstname','class' : 'form-control ls-important-field', 'required' : true, 'placeholder' : gT('Enter your first name', 'unescaped') })) }} {# mandatory field #}
</div>
</div>
{# Participants last name #}
<div class='{{ aSurveyInfo.class.registerformcolrowb }} col-md-6 col-12' {{ aSurveyInfo.attr.registerformcolrowb }}>
<label {{ aSurveyInfo.attr.registerformcolrowblabel }} class='{{ aSurveyInfo.class.registerformcolrowblabel }} control-label '>{{ gT("Last name") }} {{ include('./subviews/registration/required.twig') }}</label> {# extra label #}
<div {{ aSurveyInfo.attr.registerformcolrowbdiv }} >
{{ C.Html.textField('register_lastname', aSurveyInfo.sLastName, ({'id' : 'register_lastname', 'class' : 'form-control ls-important-field', 'required' : true, 'placeholder' : gT('Enter your last name', 'unescaped')})) }} {# mandatory field #}
</div>
</div>
Теперь в форме публичной регистрации все три поля обязательны:

Скрытие переключателя языка
Как скрыть переключатели языка (на странице приветствия и в верхнем меню), описано в разделе советов и подсказок по многоязычным опросам.
Скрытие кнопки «Выйти и очистить опрос»
В теме Fruity TwentyThree кнопка «Выйти и очистить опрос» управляется параметром темы Показать кнопку «Очистить все» (в разделе Простые настройки). По умолчанию он имеет значение Нет, поэтому участники видят кнопку, только если параметр был включён. Чтобы скрыть кнопку, установите для параметра значение Нет в настройках темы вашего опроса.
Ой, я случайно...
Я забыл пароль администратора. Как его сбросить?
Использование командной строки
- Подключитесь к серверу через командную строку (например, по SSH).
- Убедитесь, что вы можете запускать PHP из командной строки (см. документацию PHP).
- Перейдите в каталог LimeSurvey.
- Выполните следующую команду:
php application/commands/console.php resetpassword USERNAME NEWPASSWORD
USERNAME — это имя существующей учётной записи администратора, например admin. Если команда php не найдена, укажите полный путь к ней, например /usr/bin/php. Новый пароль сохраняется в истории вашей оболочки, поэтому измените его в LimeSurvey после входа.
Только с доступом по FTP
Используйте стороннй контроллер ResetPasswordController. После сброса пароля снова удалите файл и его настройки из config.php.
Непосредственно в базе данных
Если у вас есть прямой доступ к базе данных LimeSurvey, вы можете задать там новый пароль. LimeSurvey принимает пароль, сохранённый в виде хэша SHA-256, и заменяет его более надёжным хэшем при следующем входе пользователя.
Например, в MySQL или MariaDB этот запрос устанавливает для пользователя admin пароль newpassword:
UPDATE lime_users SET password = SHA2('newpassword', 256) WHERE users_name = 'admin';
В PostgreSQL используйте encode(sha256('newpassword'), 'hex') вместо SHA2('newpassword', 256). Если в ваших таблицах используется префикс, отличный от lime_, измените имя таблицы соответствующим образом. Сразу после этого войдите в систему и смените пароль.
Как восстановить данные из деактивированного опроса?
Мы рекомендуем всегда завершать опрос по сроку действия, а не деактивировать его. Если вы случайно деактивировали опрос, важно ничего в нём не изменять!
Только в этом случае описанные ниже шаги сработают:
- Снова активируйте опрос.
- Откройте ответы опроса.
- Нажмите Импортировать и выберите «Импорт ответов из таблицы деактивированного опроса» (LimeSurvey 6.x) или «Импорт ответов из архивированной таблицы ответов» (LimeSurvey 7.x).
- Выберите исходную таблицу.
- Нажмите кнопку «Импортировать».
Я удалил вопрос/группу вопросов/опрос!
Если вы удалили его, он утрачен безвозвратно. Восстановить его может помочь только резервная копия.
Требования к оборудованию и программному обеспечению
Общие требования описаны в наших инструкциях по установке.
Какие ограничения есть у LimeSurvey...
...по скорости
У LimeSurvey нет ограничения по скорости. Всё зависит от того, насколько быстры ваш сервер и его соединение. Если вы ожидаете большое количество участников за короткое время и не уверены, что ваш сервер справится с нагрузкой, поищите похожие темы на нашем форуме, воспользуйтесь LimeSurvey Cloud или обратитесь к авторизованному партнёру LimeSurvey.
...по размеру опроса
«Размер опроса» означает число вопросов (и ответов) в вашем опросе — не путайте его с числом ответов участников на опрос (оно не ограничено). В самом LimeSurvey нет ограничения на число вопросов и ответов, но используемая вами база данных имеет ряд ограничений. Самые важные из них — максимальное число столбцов в таблице ответов и максимальный размер строки.
MySQL и MariaDB
По умолчанию LimeSurvey создаёт свои таблицы с движком хранения MyISAM. Вместо него при установке можно выбрать InnoDB.
- MyISAM: строка может содержать не более 65 535 байт. В кодировке utf8mb4, которую использует LimeSurvey, для одного символа может требоваться до четырёх байт, поэтому в строке может поместиться всего 16 383 символа. Обычно это ограничение достигается первым.
- InnoDB: таблица может содержать не более 1017 столбцов.
Подробности см. в документации MySQL.
Приблизительно рассчитать размер опроса можно следующим образом:
- каждый вопрос с несколькими числовыми полями: 20 символов на каждый ответ
- каждый вопрос типа «Несколько ответов» и вопрос-массив: 5 символов на каждый ответ
- каждый другой тип вопроса: 5 символов
- добавьте 10% на обычные накладные расходы
Microsoft SQL Server
Microsoft SQL Server допускает до 1024 столбцов в таблице и 8060 байт в строке (см. документацию Microsoft). Даже если опрос удалось активировать, участники могут не суметь отправить ответы, если они содержат много текста.
Ограничение в 8060 байт может также вызывать ошибки после активации при просмотре или экспорте ответов. Экспортируйте коды ответов вместо текстов ответов или экспортируйте только некоторые столбцы.
PostgreSQL
PostgreSQL допускает от 250 до 1600 столбцов в таблице в зависимости от типов столбцов (см. документацию PostgreSQL). При экспорте ответов может возникнуть ошибка SQLSTATE[54000]. В этом случае экспортируйте только некоторые столбцы. См. это сообщение на форуме.
Как увеличить максимальное число столбцов в PostgreSQL
Если ваш опрос содержит слишком много вопросов, можно скомпилировать PostgreSQL с большим размером блока, например 32 КБ (параметр конфигурации --with-blocksize=32), чтобы в строку помещалось больше столбцов. База данных, созданная с одним размером блока, не может использоваться сервером PostgreSQL, скомпилированным с другим, поэтому сделайте это до создания базы данных LimeSurvey.
Пошаговые инструкции см. в разделе Инструкции по увеличению максимального числа столбцов в PostgreSQL в Linux.
Критическая ошибка: превышен допустимый размер памяти
В зависимости от конфигурации вашего сервера могут возникнуть проблемы с памятью, о которых сообщает ошибка вида "Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 233472 bytes) in /path/to/htdocs/limesurvey/filename.php on line 7296".
LimeSurvey устанавливает собственный лимит памяти, по умолчанию он равен 256 МБ. Вы можете увеличить его, добавив необязательную настройку memory_limit в файл конфигурации LimeSurvey.
Помните, что более высокий лимит, заданный в конфигурации PHP вашего сервера, имеет приоритет. Чтобы увеличить лимит памяти PHP вашего сервера до 512 МБ, добавьте:
memory_limit = 512Mв главный файл php.ini вашего сервера (рекомендуется, если у вас есть доступ)php_value memory_limit 512Mв файл .htaccess в корневой папке LimeSurvey (только если PHP работает как модуль Apache)memory_limit = 512Mв файл php.ini или .user.ini в корневой папке LimeSurvey (в некоторых конфигурациях хостинга)
Специальная конфигурация
В некоторых случаях необходимо изменить конфигурацию LimeSurvey в файле application/config/config.php.
Два экземпляра LimeSurvey на одном домене
Вы можете запускать несколько экземпляров LimeSurvey на одном домене, например example.org/ls1 и example.org/ls2. Каждому экземпляру нужно собственное имя cookie сессии. Оно задаётся параметром sessionName в разделе session файла application/config/config.php. Установщик задаёт случайное имя, поэтому при новой установке ничего менять не нужно.
Если вы скопировали config.php из одного экземпляра в другой или ваш config.php создан в версии старше LimeSurvey 4.0, проверьте, что у каждого экземпляра своё значение. Иначе вход в один экземпляр приведёт к выходу из другого. Добавьте или измените строку sessionName в существующем разделе session, например в файле конфигурации ls1:
'session' => array (
'sessionName' => 'LS-ABCDEFGHIJKLMNOP',
),
Используйте другое случайное значение в файле конфигурации ls2. См. также настройки сессии.