Skip to end of metadata
Go to start of metadata

这些可选设置仅在标准安装文件 config-defaults.php 内能找到 - 某些项目仅在首次安装时使用后就被全局设置(全局设定)覆盖了。 

如果你想改变这些设置,请不要在 config-defaults.php 文件内直接修改,而应该复制这些特定项目/行到 config.php 文件后再行修改。

config.php 文件内的所有设置会覆盖 config-defaults.php 文件内的默认设置。自1.87版本开始,某些项目设置可以在全局设置对话框内覆盖。


希望更新 LimeSurvey  的配置,你可以更新配置数组:

        'LimeSurveySetting'=>'New value',

Yii 设置

LimeSurvey 使用 Yii 框架。Yii 在系统中有自己的配置参数,配置参数位于 application/config/config.php 文件。

你可以通过 Yii 配置来访问有关 LimeSurvey 的配置。


在 LimeSurvey  第一次安装的时候将会对数据库进行设置。如果需要的话,你可以对数据库的配置进行更新。

请注意,当你对数据库的配置进行修改的时候,所有的风险都需要你自己来承当。请参考 Yii 的相关文档进行配置。请注意 LimeSurvey 仅可以使用 mysql,pgsql,dblib,mssql 和 sqlsrv 数据库。





你可以在 config.php 中设置一些会话参数,第一个参数是数据库的会话参数示例。如果需要的话,你可以取消备注符号。请参考 Yii 的相关文档进行配置。


         // Set the cookie via SSL
        'session' => array (
            'cookieParams' => array(
                    'secure' => true,

        // Set the domain for cookie
        'session' => array (
            'cookieParams' => array(
                    'domain' => '',



请求设置是非常重要的部分,但是默认的设置需要能提供 LimeSurvey 最好的使用。请参考 Yii 的相关文档进行配置。


        // Disable CSRF protection
        'request' => array(

        // Set the base Url for all Complete url
        'request' => array(
            'hostInfo' => ''  

        // Set the cookie domain name for Csrf protection
        'request' => array(
            'csrfCookie' => array( 'domain' => '' )


  • sitename: 你调查使用的站点名。这个站点名字将会在调查系统的的概述界面和管理员界面的头上显示。这个设置将会覆盖全局设置中的对话框。
  • siteadminemail: 这个是站点管理员和系统联系选项中默认使用的电子邮件地址。这个设置将会覆盖全局设置中的对话框。
  • siteadminbounce: 这个是设置当电子邮件地址无法投递的时候退回的电子邮件将会发送到哪里。这个设置将会覆盖全局设置中的对话框。
  • siteadminname: 站点管理员的实际名称。这个设置将会覆盖全局设置中的对话框。
  • proxy_host_name: 这个是你代理服务器的主机名称(如果你的服务器安装在代理的后面并且希望使用一键安装) (2.05 build 版本 >140404 ).
  • proxy_host_port: 这个是你代理服务器的端口号(如果你的服务器安装在代理的后面并且希望使用一键安装) (2.05 build 版本 >140404 ).


  • surveyPreview_require_Auth: true by default. If you set this to false any person can test your survey using the survey URL - without logging in to the administration and without having to activate the survey first. This setting is overridden in the Global settings dialog) (New in 1.87 ).
  • usercontrolSameGroupPolicy :  set to true by default. By default non admin users defined in the LimeSurvey management interface will only be able to see users they create or user belongs to,at least one, same group. You can deactivate this behaviour.
  • filterxsshtml: This setting enables filtering of suspicious html tags in survey, group, questions and answer texts in the administration interface. Only leave this to 'false' if you absolutely trust the users you created for the administration of  LimeSurvey and if you want to allow these users to be able to use Javascript, Flash Movies, etc. Super admin never have their HTML filtered. This setting is overridden in the Global settings dialog) (New in 1.87 ).
  • demoModeOnly: If this option is set to true, then LimeSurvey will go into demo mode. The demo mode changes the following things:
    • Disables changing of the admin user's details and password
    • Disables uploading files on the template editor
    • Disables sending email invitations and reminders
    • Disables doing a database dump
    • Disables the ability to save the following global settings: Site name, Default language, Default Htmleditor Mode, XSS filter


  • sessionlifetime: Defines the time in seconds after which a survey session expires. Default: $sessionlifetime    =  3600; .This setting is overridden in the Global settings dialog) (New in 1.87 ).
  • memorylimit: This sets how much memory LimeSurvey can access. '64' is the minimum (M=mb) recommended. If you receive time out errors or have problems generating statistics or exporting files raise this limit to '128' or '256'.
Please mind that such local settings by an application can always be overruled by global server settings.

To increase the memory limit to 128M you could also try adding:

  • memory_limit = 128M to your server's main php.ini file (recommended, if you have access)
  • memory_limit = 128M to a php.ini file in the LimeSurvey root
  • php_value memory_limit 128M in a .htaccess file in the LimeSurvey root


  • $lwcdropdowns: (Obsolete since 2.0) This can be set to either "L" or "R". Setting it to "R" will result in 'List with Comment' questions being displayed as radio buttons, whereas "L" will result in 'List with Comment' questions being displayed in a 'dropdown' list box .
  • $dropdownthreshold: When you have selected "R" for $dropdowns, this allows you to set a maximum number of options that will display as radio buttons, before converting back to a dropdown list. If you have a question that has a large number of options, displaying them all as radio buttons can look unweildy, and be counter-intuitive to users. Setting this to a maximum of, say 25 (which is the default) means that large lists are easier for the survey participant to use.
  • $repeatheadings: With the array (flexible) type question, often you'll have a lot of answers, which - when displayed on screen - take up more than one page. The repeat-headers setting lets you decide how many answers should be displayed before repeating the header information for the question. A good setting for this is around 15. If you don't want the headings to repeat at all, set this to 0 (which is the default).
  • $minrepeatheadings: The minimum number of reaming answers that are required before repeating the headings in array (flexible) questions.
  • $addTitleToLinks: If this option is set to true, then LimeSurvey will add 'title' html element to all links used in menus. This will help screen reader to analyze the menus. Only set this to true if you're using a screen reader because it overlaps with tool tips.
  • $defaulttemplate: This setting specifys the default theme used for the 'public list' of surveys. This setting is overridden in the Global settings dialog) (New in 1.87 ).
  • $defaulthtmleditormode: Sets the default mode for integrated HTML editor. This setting is overridden in theGlobal settings dialog) (New in 1.87 ). Valid settings are: inline (default), popup and none:
    • inline: Inline replacement of fields by an HTML editor. Slow but convenient and user friendly
    • popup: Adds an icon that runs a popup with and html editor. Faster, but html code is displayed on the form
    • none: No html editor


  • $defaultlang: This should be set to the default language to be used in your administration scripts, and also the default setting for language in the public surveys. You can change this setting for public surveys on a survey-by-survey basis from the admin scripts. This setting is overridden in the Global settings dialog) (New in 1.87 ).
  • $timeadjust: If your web server is in a different time zone to the location where your surveys will be based, put the difference between your server and your home time zone here. For example, I live in Australia but use a US web server. The web server is 14 hours behind my local time zone. So my setting here is "14". In other words, it adds 14 hours to the web servers time. This setting is particularly important when surveys timestamp the responses. This setting is overridden in the Global settings dialog) (New in 1.87 ).
  • $modrewrite: (Obsolete since 2.0) If set to 1, it activates the fancy URL feature (Example: instead of⟨=fr&token;=sdlfkjozeiru). Before you activate this, you must rename "htaccess.txt" file to ".htaccess". You need to run an Apache web server with correctly installed mod_rewrite module.


  • $allowmandbackwards: A setting of 1 for this variable will allow survey participants to move to a previous question even if they haven't answered a mandatory question. If it is set on 0, then participants will have to answer that question even to move to a previous question.
  • $deletenonvalues: Use this feature with caution.  By default (a value of 1), irrelevant questions are NULLed in the database.  This ensures that the data in your database is internally consistent.  However, there are rare cases where you might want to hold onto irrelevant values, in which case you can set the value to 0.  Say you ask the person his gender, and he accidentally says 'female' and then answers some female-specific questions (questions that are conditioned on being female, so are only relevant for women).  Then, he realizes his mistake, backs up, sets the gender to 'male', and continues with the survey.  Now, the female-specific questions are irrelevant.  If $deletenonvalues==1, those irrelevant values will be cleared (NULLed) in the database.  If $deletenonvalues==0, his erroneous answers will not be deleted, so they will still be present in the database when you analyze it.
  • $shownoanswer: When a question of a radio button/select type that contains editable answers (ie: List, Array questions) is not mandatory and $shownoanswer is set to 1, an additional entry is shown for "N/A" - so that participants may choose to not answer the question. Some people prefer this not to be available. Set this to 0 to turn this off. This setting is overridden in the Global settings dialog) (New in 1.87 ).
  • $printanswershonorsconditions: This setting determines if the printanswers feature will display entries from questions that were hidden by conditions-branching (Default: 1 = hide answers from questions hidden by conditions).
  • $hide_groupdescr_allinone: (New in 1.85RC3 ) This setting is relevant for all-in-one surveys using conditions . When this is set to true the group name and description is hidden if all questions in the group are hidden. (Default: true (hide group name and description when all conditions in the group are hidden by conditions))
  • $showpopups:  Show popup messages if mandatory or conditional questions have not been answered correctly. 1=Show popup message (default), 0=Show message on page instead, -1=Do not show the message at all (in this case, users will still see the question-specific tips indicating which questions must be answered).


  • $debug: With this setting you set the PHP error reporting to E_ALL. That means every little notice, warning or error with the script is shown. This setting should be only switched to 1 if you are trying to debug the application for any reason, if you are a developer switch it to 2. Don't switch it to 1 or 2 in production since it might cause path disclosure. (Default: 0)

If you have to report a bug or to put some information at forum, you can use application/config/config.php file.



Note: All these settings in this section are overridden in the Global settings dialog (New in 1.87 ).

  • $emailmethod:  This determines how E-mail messages are being sent. The following options are available:
    • mail: use internal PHP mailer
    • sendmail: use sendmail mailer
    • smtp:use SMTP relaying. Use this setting when you are running LimeSurvey on a host that is not your mail server.
  • $emailsmtphost: If you use 'smtp' as $emailmethod then you have to put your SMTP-server here. If you are using Google mail you might have to add the port number like $emailsmtphost = '';
  • $emailsmtpuser: If your SMTP-server needs authentication then set this to your user name, otherwise it must be blank.
  • $emailsmtppassword: If your SMTP-server needs authentication then set this to your password, otherwise it must be blank.
  • $emailsmtpssl: Set this to 'ssl' or 'tls' to use SSL/TLS for SMTP connection
  • $maxemails: When sending invitations or reminders to survey participants, this setting is used to determine how many emails can be sent in one bunch. Different web servers have different email capacities, and if your script takes too long to send a bunch of emails, the script could time out and cause errors. Most web servers can send 100 emails at a time within the default 30 second time limit for a PHP script. If you get script timeout errors when sending large numbers of emails, reduce the number in this setting.  Clicking the 'send email invitation' button on the token control toolbar, (not the button on the right of each token), sends the maxemails number of invitations, then displays a list of the addresses sent to and a warning that "There are more emails pending than could be sent in one batch. Continue sending emails by clicking below. There are ### emails still to be sent." and provides a "continue button" to proceed with the next batch. I.e., the user determines when to send the next batch after each batch gets emailed.  It is not necessary to wait with this screen active.  The admin could log off and come back at a later time to send the next batch of invites.


  • usejpgraph: (Obsolete since 1.8) The JPGraph-library lets you display the results of your survey in the statistics part of LimeSurvey  in bar- and pie charts. If you have a correctly configured jpgraph class set up on your server, you can turn this feature on or off (1=on, 0=off). Please have a look, every version of PHP needs another version of JPGraph! This feature is currently in development, so expect a few weird outcomes.
  • jpgraphdir: (Obsolete since 1.8) The physical disk location of the jpgraph class scripts. This setting is only required if $usejpgraph is equal to 1.
  • jpgraphfont: (Obsolete since 1.8) The font to use with graphs. A failsafe setting would be "FF_FONT1"
  • embedded: (Obsolete since 2.0) If you want to integrate LimeSurvey into another page then you can turn off sending HTML headers by using this setting and point instead to the header method of a custom function. This is a dirty hack but should work for a quick integration.
  • filterout_incomplete_answers: Control the default behaviour of  filtering incomplete answers when browsing or analyzing responses. For a discussion on incomplete Responses see Browsing survey results. Since these records can corrupt the statistics, an option is given to switch this filter on or off in several GUI forms. This parameter config.php is just the default state for the incomplete answer filter. The following options are available:
    • show: Show both complete and incomplete answers
    • filter: Show only complete answers
    • incomplete: Show only incomplete answers
  • strip_query_from_referer_url: This setting determine if the referrer URL saves parameter or not. Default value is "false" (in this case referrer URL saves all parameter). Alternatively this value can be set to "true" and the parameter part of the referrer URL will be removed.
  • showaggregateddata: (New in 1.8 ) When activated there are additional values like arithmetic mean and standard deviation at statistics. Furthermore data is aggregated to get a faster overview e.g. results of scale 1+2 and 4+5 are added to have a general ranking like "good" (1/2), "average" (3) and "bad" (4/5). This only affects question types "A" (5 point array) and "5" (5 point choice).
  • PDF Export Settings: (New in 1.85 ) This feature activates PDF export for printable survey and Print Answers. The PDF export is totally experimental. The output is mostly ugly. At this point no support can be given - if you want to help to fix it please get in touch with us.
    • usepdfexport: Set 0 to disable; 1 to enable
    • pdfdefaultfont: Default font for the pdf Export
    • pdffontsize: Fontsize for normal text; Surveytitle is +4; grouptitle is +2
    • notsupportlanguages = array('zh-Hant-TW','zh-Hant-HK','zh-Hans','ja','th');
    • pdforientation: Set L for Landscape or P for portrait format
  • $showsgqacode: (New in 1.91 ) This setting is used at the printable survey feature and defaults to false. If you set showsgqacode = true; the IDs for each question - and answer if applicable - will be shown; these IDs match the column heading at the Lime_survey_12345 table which holds the answer data for a certain survey. These Ids can be used for a code book for manual database queries.


As this is an extensive topic we have moved LDAP settings to another page.


In LimeSurvey 2.05 authentication will be handled by plugins. Because of this the information below might be outdated. See Plugins for most up to date information.

[edit]Delegate Authentication to the Webserver

System Administrators may want to have their survey administrators authenticated against a central authentication system (Active Directory, openLdap, Radius, ...) rather than using the internal LimeSurvey database. An easy way to do this is to setup your Webserver software to use this external authentication system, and then ask LimeSurvey to trust the user identity reported by the webserver. In order to enable this feature you have to:

  • set auth_webserver to true in config.php
  • enable authentication at the webserver side

Please note that:

  • LimeSurvey will then bypass its own authentication process (by using the login name reported by the webserver without asking for a password)
  • this can only replace the LimeSurvey GUI authentication system, not the survey invitation system(participant interface)

[edit]Authentication Delegation with no automatic user import

Please note however than by default Authentication Delegation doesn't bypass the LimeSurvey authorization system: this means that, even if you don't have to manage passwords in LimeSurvey, you still need to define the users in the LimeSurvey database and assign them the correct set of rights in order to let them access survey resources.

A user is then granted access to LimeSurvey if and only if:

  • he has been authenticated to the webserver
  • his login name is defined as a user in the LimeSurvey user database (the user is then granted the privileges of the user defined in the LimeSurvey user database).

[edit]Authentication Delegation with automatic user import

When managing huge user database, it is sometimes easier to auto-import user in the LimeSurvey database.

  • auth_webserver_autocreate_user: if set to true LimeSurvey will try to autoimport users authenticated by the webserver but not already in its users' DB
  • auth_webserver_autocreate_profile: an array describing the default profile that will be assigned to the user (including fake First and Last name, email, privileges)

If you want to customize the user profile so that it matches the logged-in user, you'll have to develop a simple function called hook_get_autouserprofile: with this function you can retrieve from a central User account database (for instance an LDAP directory), the true First&Last; names and email of a particular user. You can even customize his privileges on the system based on his groups on the external DB.

The hook_get_auth_webserver_profile function takes the user login name as the only argument and can return:

  • False or an empty array: in this case the user is denied access to LimeSurvey
  • an array containing all common userprofile entries as described in the  $WebserverAuth_autouserprofile
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
     ... from groups defined in your backend set $user_admin_status_frombackend_0_or_1
     return Array(
                     'full_name' => "$user_name_from_backend",
                     'email' => "$user_email_from_backend",
                     'lang' => '$user_lang_from_backend',
                     'htmleditormode' => 'inline',
                     'templatelist' => 'default,basic,MyOrgTemplate',
                     'create_survey' => 1,
                     'create_user' => 0,
                     'delete_user' => 0,
                     'superadmin' => $user_admin_status_frombackend_0_or_1,
                     'configurator' =>0,
                     'manage_template' => 0,
                     'manage_label' => 0);

     // If user should be denied access, return an empty array

     // return Array();


In case some users have an external user name that is different from their LimeSurvey user name, you may find useful to use a user name mapping. This is done in LimeSurvey by using the auth_webserver_user_mapparameter. For instance imagine you don't have an 'admin' username defined in your external authentication database. Then in order to login to LimeSurvey as admin, you'll have to map your external username let's call it 'myname' to the admin login name ine LimeSurvey. The corresponding setup is :

$config['auth_webserver_user_map'] = Array ('myname' => 'admin');

After a successful authentication with the 'myname' login and password to the webserver, you'll be directly authorized to use LimeSurvey as the 'admin' user.

This obviously has serious security implications, so use it with care, and please protect your config.php from write access by the web server.


Hint: This features is available starting in version 1.81

A user can call the limesurvey login at /limesurvey/admin and pass username and a one time password which was previously written into the users table (column one_time_pw) by an external application.

This setting has to be turned on (use_one_time_passwords => true) to enable the usage of one time passwords (default = false). More information can be found at "Manage Users".


If possible do no touch these settings. Additionally these settings can only be adjusted on config-defaults.php.

  • $homeurl: This should be set to the URL location of your administration scripts. These are the scripts in the /limesurvey/admin folder. This should be set to the WEB URL location - for example "". Don't add a trailing slash to this entry. The default setting in config.php attempts to detect the name of your server automatically using a php variable setting - {$_SERVER['SERVER_NAME']}. In most cases you can leave this and just modify the remainder of this string to match the directory name you have put the LimeSurvey scripts in.
  • $publicurl: This should be set to the URL location of your 'public scripts'. The public scripts are those located in the "limesurvey" folder (or whatever name you gave to the directory that all the other scripts and directories are kept in).
  • $tempurl: This should be set to the URL location of your "/limesurvey/tmp" directory - or a directory which you would like LimeSurvey to use to store temporary files, including uploads. This directory must be set to read & write for your webserver (e.g. chmod 755)
  • $imagefiles: By default you should leave this pointing to the URL location of /limesurvey/admin/images - where the images are installed initially. You may, however, prefer to move these images to another location and if so point this to the URL directory where they are stored.
  • $homedir: This should be set to the physical disk location of your administration scripts - for example "/home/usr/htdocs/limesurvey/admin". Don't add a trailing slash to this entry. The default setting in config.php attempts to detect the default root path of all your documents using the php variable setting - {$_SERVER['DOCUMENT_ROOT']}. In most cases you can leave this and just modify the remainder of this string to match the directory name you have put the LimeSurvey scripts in.
  • $publicdir: This should be set to the physical disk location of your 'public scripts'.
  • $tempdir: This should be set to the physical disk location of your /limesurvey/tmp directory so that the script can read and write files.
  • $fckeditordir: url of the fckeditor script
  • $fckeditexpandtoolbar: defines if the FCKeditor toolbar should be opened by default
  • $pdfexportdir: Directory with the tcpdf.php extensiontcpdf.php
  • $pdffonts: Directory for the TCPDF fonts
  • No labels