常规问答
From LimeSurvey Manual
入门指南
如果您想在不阅读大半本手册的情况下了解 LimeSurvey 能做什么,可以观看我们在 YouTube 上的一些视频教程:
在哪里可以找到 LimeSurvey 的快速入门介绍?
要快速了解 LimeSurvey,请参阅:
- LimeSurvey Cloud 快速入门指南 – 在 LimeSurvey Cloud 中创建并发布您的第一个调查
- 安装 LimeSurvey 社区版 – 如果您想在自己的服务器上运行 LimeSurvey
调查的设计和布局
如何从 URL 中删除 index.php 以获得更短的 URL?
如果您想使用更短的 URL(每个 URL 中不带 /index.php),请编辑 application/config/config.php,并在 urlManager 部分中修改
'showScriptName' => true,
为
'showScriptName' => false,
要在 Apache 上使其生效,必须启用 mod_rewrite,并且 LimeSurvey 自带的 .htaccess 文件必须位于 LimeSurvey 根目录中。 对于 nginx,请参阅我们的 LimeSurvey nginx 示例配置。
如何隐藏必答问题上的红色星号?
LimeSurvey 会在必答问题的问题文本开头显示一个红色星号。在 LimeSurvey 7.x 中,旁边还会显示“必须的”字样。要隐藏它们,请在您的调查主题中添加一条 CSS 规则:
.asterisk, .ls-question-mandatory {display: none;}
保存更改。然后在调查的常规设定中选择扩展后的主题。
这也会隐藏公开注册表单上的星号。
我如何创建一个所有人都可以用的调查问卷?
要创建任何人都可以填写的调查,请不要创建调查参与者表。请分享概览面板中显示的调查链接。
如何将所有公开注册字段都设为必填?
如果您使用调查参与者表并同时允许公开注册,想要参与的人需要填写一份包含名、姓和电子邮件地址的注册表单。其中只有电子邮件地址是必填的:

要将名和姓也设为必填,请编辑您的调查主题的注册表单。对于 Fruity TwentyThree,请先扩展主题,为该副本打开主题编辑器,然后编辑文件 views/subviews/registration/register_form.twig。电子邮件字段展示了必填字段的构建方式:
{# 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 中,“退出并清除调查”按钮由主题选项 Show 'Clear all' button(位于简单选项下)控制。该选项默认设置为否,因此只有开启该选项后,参与者才会看到此按钮。要隐藏该按钮,请在调查的主题选项中将该选项设置为否。
救命,我不小心...
我忘了密码,怎么重置密码?
使用命令行
- 通过命令行(例如使用 SSH)登录您的服务器。
- 确保您可以在命令行中运行 PHP(请参阅 PHP 文档)。
- 进入您的 LimeSurvey 目录。
- 运行以下命令:
php application/commands/console.php resetpassword USERNAME NEWPASSWORD
USERNAME 是现有管理员账户的名称,例如 admin。如果找不到 php 命令,请使用其完整路径,例如 /usr/bin/php。新密码会保存在您的 shell 历史记录中,因此请在登录 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 字节。LimeSurvey 使用的 utf8mb4 字符集中,一个字符最多可能占用四个字节,因此一行最少可能只能容纳 16,383 个字符。这通常是您最先遇到的限制。
- InnoDB:一个表最多 1,017 列。
有关详细信息,请参阅 MySQL 文档。
你可以大致计算调查的尺寸:
- 每个数字问题:每个答案 20个字符
- 每个多选和阵列题:每个答案5个字符
- 每个其他问题类型:5个字符
- 再打 10% 的富裕
Microsoft SQL Server
Microsoft SQL Server 每个表最多允许 1,024 列,每行最多 8,060 字节(请参阅 Microsoft 文档)。即使您的调查可以激活,如果反馈中包含大量文本,参与者也可能无法提交。
激活后,在浏览或导出反馈时,8,060 字节的限制也可能导致错误。请导出回复编号而不是答案文本,或者只导出部分列。
PostgreSQL
PostgreSQL 每个表允许 250 到 1,600 列,具体取决于列的类型(请参阅 PostgreSQL 文档)。导出反馈时,您可能会遇到 SQLSTATE[54000] 错误。在这种情况下,请只导出部分列。请参见这篇论坛帖子。
如何增加PostgreSQL的最大列的数量
如果您的调查包含的问题过多,可以使用更大的块大小(例如 32 kB,配置选项 --with-blocksize=32)编译 PostgreSQL,以便在一行中容纳更多列。使用某一块大小创建的数据库无法被以其他块大小编译的 PostgreSQL 服务器使用,因此请在创建 LimeSurvey 数据库之前完成此操作。
有关分步说明,请参阅在 Linux 上增加 PostgreSQL 最大列数的说明。
致命错误:允许的内存尺寸
取决于你的系统配置,你可能在运行中遇到类似下面的内存问题 "致命错误: 允许的内存尺寸 8388608 bytes 耗尽 (尝试分配 233472 bytes) 在 /path/to/htdocs/limesurvey/filename.php 的 7296 行".
LimeSurvey 会设置自己的内存限制,默认为 256 MB。您可以通过在 LimeSurvey 的配置文件中添加可选设置 memory_limit 来提高该限制。
请注意,服务器 PHP 配置中设置的更高限制具有优先权。要将服务器的 PHP 内存限制提高到 512 MB,请添加:
memory_limit = 512M到服务器的主 php.ini 文件(如果您有权限,推荐使用此方式)php_value memory_limit 512M到 LimeSurvey 根文件夹中的 .htaccess 文件(仅当 PHP 以 Apache 模块运行时)memory_limit = 512M到 LimeSurvey 根文件夹中的 php.ini 或 .user.ini 文件(适用于某些托管环境)
特殊配置
在某些情况下,您需要更新 application/config/config.php 中的 LimeSurvey 配置。
同一域名下的两个 LimeSurvey 实例
您可以在同一域名下运行多个 LimeSurvey 实例,例如 example.org/ls1 和 example.org/ls2。每个实例都需要有自己的会话 Cookie 名称,该名称通过 application/config/config.php 中 session 部分的 sessionName 进行设置。安装程序会设置一个随机名称,因此全新安装无需任何更改。
如果您将 config.php 从一个实例复制到了另一个实例,或者您的 config.php 来自早于 LimeSurvey 4.0 的版本,请检查每个实例是否有各自独立的值。否则,登录其中一个实例会使您退出另一个实例。请在现有的 session 部分中添加或修改 sessionName 行,例如在 ls1 的配置文件中:
'session' => array (
'sessionName' => 'LS-ABCDEFGHIJKLMNOP',
),
请在 ls2 的配置文件中使用另一个不同的随机值。另请参阅会话设置。