Ustawienia opcjonalne
From LimeSurvey Manual
Poniższa sekcja jest skierowana do osób, które chcą edytować te ustawienia konfiguracyjne, których nie można zmienić za pomocą GUI (graficznego interfejsu użytkownika) instalacji LimeSurvey. Pamiętaj, że wszelkich zmian w katalogu głównym LimeSurvey dokonujesz na własne ryzyko. Jeśli jednak napotkasz problemy lub będziesz potrzebować dalszych wskazówek, dołącz do forów dyskusyjnych, aby uzyskać pomoc od społeczności LimeSurvey.
Wprowadzenie
Aby zmodyfikować ustawienia konfiguracyjne instalacji, należy edytować ustawienia opcjonalne. Można je znaleźć w pliku /application/config/config-defaults.php, który znajduje się w katalogu głównym LimeSurvey. Domyślne ustawienia standardowej instalacji można znaleźć w config-defaults.php. Niektóre z nich można zastąpić za pomocą okna dialogowego ustawienia globalne, inne trzeba będzie edytować ręcznie.
Kiedy nastąpi aktualizacja, zmieniane są tylko ustawienia config-defaults.php. Dlatego edycja pliku config.php spowoduje zapisanie dostosowanych ustawień.
Aby zaktualizować/dodać ustawienia LimeSurvey w /application/config/config.php, musisz zaktualizować tablicę config:
'config'=>array(
'debug'=>0,
'debugsql'=>0,
'LimeSurveySetting'=>'Nowa wartość', // Zaktualizuj tutaj domyślną konfigurację LimeSurvey
)
Ustawienia Yii
LimeSurvey wykorzystuje framework Yii, który posiada własne parametry konfiguracyjne w plikach application/config/internal.php i application/config/config.php. Możesz także uzyskać dostęp do niektórych ustawień konfiguracyjnych LimeSurvey poprzez konfigurację Yii.
Ponieważ tablica config.php jest połączona z całą konfiguracją, możesz zastąpić dowolne parametry Yii w pliku config.php.
Ustawienia specyficzne dla Yii są ustawione w tablicy komponentów:
'components' => array(
'db' => array(
....
),
'Specyficzne ustawienia'=>array(
....
),
),
Ustawienia bazy danych
Ustawienia bazy danych są zapisywane w config.php przez plik instalacyjny podczas pierwszej instalacji LimeSurvey. W razie potrzeby możesz zaktualizować tę część pliku config.php. Pamiętaj, że robisz to na własne ryzyko! Zapoznaj się także z dokumentacją Yii i proszę pamiętaj, że LimeSurvey obsługuje tylko następujące typy baz danych: mysql, pgsql, dblib, mssql i sqlsrv.
Ustawienia sesji
Możesz ustawić niektóre parametry sesji w config.php (sprawdź dwa przykłady poniżej). Możesz odkomentować/dodać potrzebną część w config.php. Zobacz Yii Dokumentacja, aby poznać inne ustawienia.
Użyj sesji opartych na tabelach
LimeSurvey może korzystać z sesji opartych na tabelach, część z komentarzem znajdziesz w domyślnym pliku wygenerowanym przez config.php. Aby użyć sesji opartej na tabeli, usuń // przed każdą linią.
'session' => tablica (
'class' => 'application.core.web.DbHttpSession',
'connectionID' => 'db',
'sessionTableName' => '{{sessions} }',
),
Inne aktualizacje sesji
Jeśli używasz SSL („https”) do instalacji LimeSurvey, dodanie następujących linii do pliku config.php zwiększy bezpieczeństwo sesji:
// Ustaw plik cookie przez SSL
'session' => array (
'cookieParams' => array(
'secure' => true, // używaj protokołu SSL dla plików cookie
'httponly' => true // Pliki cookie nie mogą być używane przez inne protokoły - eksperymentalne
),
),
Jeśli chcesz naprawić domenę dla pliku cookie, użyj następującej składni w config.php:
// Ustaw domenę dla pliku cookie
'session' => tablica (
'cookieParams' => tablica(
'domain' => '.example.org',
),
),
Każda instancja LimeSurvey w tej samej domenie wymaga własnej nazwy sesji. W przeciwnym razie zalogowanie się do jednej instancji spowoduje wylogowanie z drugiej. Instalator ustawia losową nazwę sesji w pliku config.php. Jeśli skopiowano plik config.php z innej instancji lub Twój plik config.php pochodzi z wersji starszej niż LimeSurvey 4.0, dodaj lub zmień wiersz sessionName w istniejącej sekcji session i użyj innej wartości dla każdej instancji:
// Set the name of the session
'session' => array (
'sessionName' => 'LS-ABCDEFGHIJKLMNOP',
),
Ustawienia żądania
Ustawienia żądania są ważne, ale ustawienia domyślne są już zoptymalizowane pod kątem użycia LimeSurvey. Aby przeczytać więcej na ich temat, zobacz Dokumentacja Yii.
Przykładowo konfigurację ustawień żądania LimeSurvey można zmodyfikować w następujący sposób (na własne ryzyko):
// 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
'request' => array(
'csrfCookie' => array(
'domain' => '.example.com',
'path' => '/limesurvey/',
)
),
Jeśli chcesz zaktualizować tylko adres URL dla e-maili zawierających tokeny, ustaw publicurl w pliku config.php.
Zezwól na użycie sesji i walidacji CSRF w iFrame
Po zezwoleniu na Osadzanie elementów iframe musisz zaktualizować jakąś część konfiguracji. Uwaga, nawet przy wszystkich ustawieniach: zezwolenie na formularz w ramce iframe może się zepsuć w niektórych przeglądarkach. Te ustawienia zostały przetestowane w przeglądarkach Firefox 81.0.2 i Chromium 85.0.4183.121.
Zezwól na rozpoczęcie sesji w ramce iframe
Plik cookie sesji musi być bezpieczny (wymaga prawidłowego połączenia HTTPS) i httponly, a parametr samesite musi mieć wartość None. Klucze w cookieParams muszą być zapisane małymi literami.
'session' => array (
'sessionName'=>'LS-VBXZZORFJZCAKGYI',
// Odkomentuj poniższe linie, jeśli potrzebujesz sesji opartych na tabelach.
// Uwaga: Sesje oparte na tabelach są obecnie nieobsługiwane na serwerze MSSQL.
// 'class' => 'application.core.web.DbHttpSession',
// 'connectionID' => 'db',
// 'sessionTableName' = > '{{sessions}}',
'cookieParams' => array(
'secure' => true,
'httponly' => true,
'samesite' => 'Brak' ,
),
),
Zezwalaj na plik cookie csrf w ramce iframe
Podobnie jak w przypadku pliku cookie sesji, plik cookie CSRF musi być bezpieczny, a parametr sameSite musi mieć wartość None. Zwróć uwagę, że klucz jest tu zapisany jako sameSite. Dodaj całą tabelę request na tym samym poziomie co session.
'request' => array(
'enableCsrfValidation'=>true,
'csrfCookie' => array(
'sameSite' => 'Brak',
'secure' => true,
),
),
Ustawienia adresu URL
Aby zmienić domyślne ustawienia adresu URL, zaktualizuj urlManager:
// Użyj krótkiego adresu URL
'urlManager' => array(
'urlFormat' => 'ścieżka',
'showScriptName' => false,
),
Możesz także dodać .html po identyfikatorze ankiety w następujący sposób:
// Użyj krótkiego adresu URL
'urlManager' => array(
'urlFormat' => 'ścieżka',
'rules' => tablica (
'<sid:\d+> ' => array('ankieta/indeks','urlSuffix'=>'.html','matchValue'=>true),
),
'showScriptName' => fałsz,
),
Więcej informacji znajdziesz w dokumentacji Yii.
Ustawienia rejestrowania
Yii zapewnia różne rozwiązania do generowania logów. Aby dowiedzieć się więcej na ich temat, zapoznaj się z specjalny temat dotyczący rejestrowania. LimeSurvey domyślnie używa „1” lub „2”, co pozwala każdemu użytkownikowi sieci zobaczyć logi. Możesz tworzyć własne ustawienia bezpośrednio za pomocą Yii.
Na przykład, szybkim sposobem rejestrowania błędów i ostrzeżeń w plikach jest:
return array(
'components' => array(
/* Inna część komponentu tutaj 'db' na przykład */
'log' => array(
'routes' => array(
'fileError' => array(
'class' => 'CFileLogRoute',
'levels' => 'ostrzeżenie, błąd',
'except' => 'wyjątek.CHttpException .404',
),
),
),
/* Inna część komponentu tutaj „urlManager”, na przykład */
),
/* Część końcowa (z ' runtimePath' 'config' na przykład) */
);
application.controller.customInit.max_execution_time i application.controller.customInit.memory_limit służą do rejestrowania prób zmiany ustawień PHP.
Jeśli znasz te komunikaty dziennika i chcesz wykluczyć je z dzienników, możesz dodać te kategorie do opcji except w konfiguracji trasy dziennika, jak pokazano poniżej:
'except' => [
'exception.CHttpException.404',
'application.controller.customInit.max_execution_time',
'application.controller.customInit.memory_limit',
],
limesurvey/tmp/runtime/application.log, który znajduje się w folderze głównym LimeSurvey. Możesz ustawić inną nazwę pliku za pomocą logFile..
Ścieżka wykonania
Ścieżka środowiska wykonawczego musi być katalogiem możliwym do odczytu i zapisu dla „użytkownika sieci”. Ścieżka środowiska wykonawczego zawiera jednak pliki z potencjalnymi informacjami dotyczącymi bezpieczeństwa, które znajdują się w publicznym obszarze dostępu do sieci. LimeSurvey gromadzi te pliki w katalogu tymczasowym katalogu głównego LimeSurvey. Aby wyeliminować dostęp do tak ważnych danych, możesz ustawić ścieżkę uruchomieniową poza publicznym dostępem do Internetu, edytując odpowiednie linie w pliku /application/config/config.php:
return array(
'components' => array(
[…]
'runtimePath'=>'/var/limesurvey/runtime/',
'config'=>array(
[…]
)
)
)
Ustawienia ogólne
- sitename: Nadaje nazwę witrynie z ankietami. Nazwa ta pojawi się w przeglądzie listy ankiet oraz w nagłówku administracyjnym. Wartość domyślna to „LimeSurvey” i można ją zastąpić w oknie dialogowym ustawienia globalne lub edytować w config.php.
- siteadminemail: To jest domyślny adres e-mail administratora witryny i jest używany do wiadomości systemowych i opcji kontaktu. To ustawienie jest używane tylko jako wartość domyślna i można je zastąpić w oknie dialogowym ustawienia globalne.
- siteadminbounce: To jest adres e-mail, na który będą wysyłane odsyłane wiadomości e-mail. To ustawienie jest używane tylko jako wartość domyślna i można je zastąpić w oknie dialogowym ustawienia globalne.
- siteadminname: Prawdziwe imię i nazwisko administratora witryny. To ustawienie jest używane tylko jako wartość domyślna i można je zastąpić w oknie dialogowym ustawienia globalne.
- nazwa_hosta_proxy: To jest nazwa hosta Twojego serwera proxy (ma o czym należy wspomnieć, jeśli korzystasz z serwera proxy i chcesz zaktualizować LimeSurvey za pomocą ComfortUpdate).
- proxy_host_port: To jest port twojego serwera proxy (musi być wspomniane, jeśli korzystasz z serwera proxy i chcesz zaktualizować LimeSurvey za pomocą ComfortUpdate).
Bezpieczeństwo
- maxLoginAttempt: Jest to liczba prób, jakie musi podjąć użytkownik, aby wprowadzić prawidłowe hasło, zanim jego adres IP zostanie zablokowany/zablokowany. Wartość domyślna to 3 i można ją zmodyfikować w pliku config.php.
- timeOutTime: Jeśli użytkownik wprowadzi nieprawidłowe hasło dla<maxLoginAttempt> , ona lub on zostaje zablokowany<timeOutTime> sekundy. Wartość domyślna to 10 minut i można ją zmodyfikować w config.php.
- maxLoginAttemptParticipants: Jest to liczba prób, jakie uczestnik musi wprowadzić ważny token, zanim otrzyma swój Adres IP zablokowany/zablokowany. Wartość domyślna to 3 i można ją zmodyfikować w pliku config.php.
- timeOutParticipants: Jeżeli uczestnik wprowadzi błędnie token dla<maxLoginAttemptParticipants> , ona lub on zostaje zablokowany<timeOutParticipants> sekundy. Wartość domyślna to 10 minut i można ją zmodyfikować w config.php.
- surveyPreview_require_Auth: Domyślnie ustawione na true. Jeżeli ustawisz tę opcję na 'false', każda osoba będzie mogła przetestować Twoją ankietę korzystając z adresu URL ankiety, bez konieczności logowania się do panelu administracyjnego i bez konieczności wcześniejszej aktywacji ankiety. To ustawienie jest wartością domyślną i można je zastąpić w oknie dialogowym ustawienia globalne lub edytować w config.php.
- usercontrolSameGroupPolicy: Domyślnie ustawione na true. Domyślnie użytkownicy niebędący administratorami zdefiniowani w interfejsie zarządzania LimeSurvey będą mogli zobaczyć tylko użytkowników, których utworzyli lub użytkowników należących do co najmniej jednej tej samej grupy. Wartość domyślną można zmienić w oknie dialogowym ustawienia globalne lub edytować w config.php.
- filterxsshtml: To ustawienie umożliwia filtrowanie podejrzanych znaczników HTML znajdujących się w ankietach, grupy oraz pytania i odpowiedzi w interfejsie administracyjnym. Pozostaw tę opcję na „false” tylko wtedy, gdy całkowicie ufasz użytkownikom, których utworzyłeś do administrowania LimeSurvey i jeśli chcesz pozwolić tym użytkownikom na korzystanie z JavaScript, filmów Flash itp.. Superadministratorzy nigdy nie filtrują kodu HTML . Wartość domyślną można zastąpić w oknie dialogowym ustawienia globalne lub edytować w config.php.
- demoMode: Jeśli ta opcja jest ustawiona na 'true' w config.php , wtedy LimeSurvey przejdzie w tryb demonstracyjny. Tryb demo zmienia następujące rzeczy:
- Wyłącza dane administratora i zmianę hasła;
- Wyłącza przesyłanie plików w edytorze szablonów;
- Wyłącza wysyłanie zaproszeń i przypomnień e-mailem;!N !** Wyłącza tworzenie zrzutu bazy danych;
- Wyłącza możliwość modyfikacji następujących ustawień globalnych: nazwa witryny, domyślny język, domyślny tryb edytora HTML, filtr XSS.
- 'forcedsuperadmin:' Tablica identyfikatorów użytkowników ze wszystkimi uprawnieniami we wszystkich LimeSurvey. Te ustawienia można zaktualizować tylko w pliku config.php. Prawa tego użytkownika nie mogą być edytowane w globalne uprawnienia użytkownika nawet przez innego wymuszonego superadministratora. Domyślnie: użytkownikiem z tymi uprawnieniami jest użytkownik o identyfikatorze: 1. Pierwszy użytkownik utworzony tuż po instalacji.
- force_ssl: zmusza LimeSurvey do działania przez HTTPS lub blokowania HTTPS. Zobacz Force HTTPS w graficznym interfejsie administratora ustawień globalnych.
- ssl_emergency_override:' To ustawienie wymusza wyłączenie protokołu SSL. Jeśli w ustawieniach globalnych włączyłeś HTTPS/SSL, ale Twój serwer nie ma włączonego protokołu HTTPS, jedynym sposobem na jego wyłączenie jest bezpośrednia zmiana wartości w bazie danych. Umożliwia to wymuszenie wyłączenia protokołu HTTPS podczas zmiany ustawień globalnych funkcji Force Secure. Wartość ta powinna zawsze być fałszywa, z wyjątkiem sytuacji awaryjnych, w których zmienia się ją na true do czasu rozwiązania problemu. To ustawienie można ustawić tylko poprzez plik config.php.
- ssl_disable_alert: Wyłącz alert dla superadministratora o niewymuszonym SSL, jeśli naprawdę nie możesz lub nie chcesz wymusić SSL. To ustawienie można ustawić tylko za pomocą pliku config.php.
Ochrona przed skryptami międzywitrynowymi (XSS)
LimeSurvey nie zezwalał na żadne skrypty użytkownika na stronie administracyjnej. Jeśli znajdziesz sposób na dodanie skryptu XSS na stronie administracyjnej przez dowolnego użytkownika, zapoznaj się z naszą polityką bezpieczeństwa.
Skrypty na stronach publicznych są zarządzane za pomocą ustawień filtra XSS.
- filterxsshtml: To ustawienie włącza filtrowanie podejrzanych znaczników HTML znajdujących się w ankietach, grupach oraz tekstach pytań i odpowiedzi w interfejsie administracyjnym. Pozostaw wartość 'false' tylko wtedy, gdy w pełni ufasz użytkownikom utworzonym do administrowania LimeSurvey i chcesz pozwolić im na używanie JavaScript, filmów Flash itp. Kod HTML superadministratorów nigdy nie jest filtrowany. Wartość domyślną można zastąpić w oknie dialogowym ustawienia globalne.
- filterxsshtml_forcedall: Wymusza wartość true dla
filterxsshtmldla wszystkich użytkowników i wyłącza zmiany w interfejsie administracyjnym. Włącza filtrowanie podejrzanych znaczników HTML także dla superadministratora. - filterxsshtml_allowforcedsuperadmin: Używane tylko wtedy, gdy
filterxsshtml_forcedallma wartość true. Pozwalaforcedsuperadmin(domyślnie administratorowi o numerze 1) dodawać dowolny skrypt i HTML. - disablescriptwithxss: Zezwala na aktualizację skryptu w pytaniu: domyślnie true – obowiązują reguły XSS; ustaw false, aby zezwolić wszystkim użytkownikom. Wartość domyślną można zastąpić w oknie dialogowym ustawienia globalne.
- filterxsshtml_enablescript: Używane tylko wtedy, gdy filterxsshtml_forcedall ma wartość true. Włącza skrypt pytania dla określonego użytkownika:
gui: zezwala na zmianę ustawienia przez GUI;superadmin: tylko superadministrator;forcedsuperadmin: tylko wymuszony superadministrator; domyślnie: żaden użytkownik i brak możliwości zmiany przez GUI
Dozwolone przesyłanie plików
- allowedthemeimageformats : Typy plików obrazów, które można przesyłać w sekcji motywów. Domyślnie pliki SVG są wyłączone ze względu na potencjalny atak XSS.
- allowedthemeuploads : Inne typy plików, które można przesyłać w sekcji motywów (plik zip)
- allowedresourcesuploads : Typy plików, które można przesyłać w sekcji zasobów oraz za pomocą edytora HTML
- allowedpluginuploads : Typy plików dozwolone podczas przesyłania pliku zip wtyczki.
Wprowadź po prostu ciąg rozszerzeń oddzielonych przecinkami. Na przykład:
'allowedthemeimageformats' => 'jpg,jpeg,gif,png,webm,svg',
Ostrzeżenie: Zawsze zachowuj ostrożność, zezwalając na przesyłanie plików. Należy się liczyć z działaniami o złośliwym charakterze.
Wtyczki
- usePluginWhitelist : Jeśli ma wartość true, wtyczki, których nie ma na liście dozwolonych (zobacz 'pluginWhitelist'), nie mogą być instalowane ani ładowane. Może to wyłączyć już zainstalowane wtyczki.
- pluginWhitelist : Lista nazw wtyczek, które można instalować i ładować, gdy 'usePluginWhitelist' ma wartość true. Wtyczki podstawowe są domyślnie uznawane za dozwolone.
- corePluginBlacklist : Lista nazw wtyczek podstawowych, które są zabronione, gdy 'usePluginWhitelist' ma wartość true.
- disablePluginUpload : Gdy to ustawienie ma wartość true, funkcja „Plugin Upload” jest wyłączona
Kontrola hosta
- allowedHosts : aby uniknąć ataku Host Header Injection, możesz ustawić dozwolony host dla wszystkich akcji. Jeśli używasz różnych hostów dla strony publicznej i strony administracyjnej, musisz ustawić oba jako dozwolone hosty.
'config'=>array(
....
, // Update default LimeSurvey config here
'allowedHosts' => [
'survey.example.org',
'proxy.survey.example.com',
'example.limesurvey.org',
],
),
Zasoby
- iSessionExpirationTime: Określa czas w sekundach, po którym sesja ankiety wygasa. Dotyczy tylko sytuacji, gdy używasz sesji w bazie danych. Jeśli używasz sesji w bazie danych, zmień parametr w config.php lub zastąp wartość domyślną w oknie dialogowym ustawienia globalne.
- memory_limit: Określa, ile pamięci (w megabajtach) może wykorzystać LimeSurvey. Wartość domyślna to '256'. Jeśli pojawiają się błędy przekroczenia limitu czasu lub masz problemy z generowaniem statystyk albo eksportem plików, zwiększ ten limit do '512' lub więcej. Jeśli Twój serwer WWW ma w php.ini ustawiony wyższy limit, to ustawienie zostanie zignorowane.
Aby zwiększyć limit pamięci do 128M, możesz także spróbować dodać:
- memory_limit = 128M do głównego pliku php.ini serwera (zalecane, jeśli masz dostęp)
- memory_limit = 128M do pliku php.ini w katalog główny LimeSurvey
- php_value memory_limit 128M w pliku .htaccess w katalogu głównym LimeSurvey
- max_execution_time: Ustawia liczbę sekund, przez jaką skrypt może działać. Jeśli zostanie osiągnięty, skrypt zwróci błąd krytyczny. Aby móc eksportować duże dane i statystyki z ankiet, LimeSurvey próbuje ustawić go domyślnie na 1200 sekund. W razie potrzeby możesz ustawić większy lub krótszy czas. Dostępne tylko poprzez plik konfiguracyjny php.
Wygląd
- dropdownthreshold (Obsolete since 2.50): Gdy dla
$dropdownswybrane jest "R", administrator może ustawić maksymalną liczbę opcji, które będą wyświetlane jako przyciski opcji , przed konwersją z powrotem do listy rozwijanej. Jeśli pytanie ma dużą liczbę opcji, wyświetlenie ich wszystkich na raz w postaci przycisków opcji może wyglądać nieporęcznie i może stać się sprzeczne z intuicją dla użytkowników. Ustawienie tej wartości na maksymalnie, powiedzmy 25 (co jest wartością domyślną) oznacza, że administratorom łatwiej będzie używać dużych list dla uczestnika ankiety. - powtarzanie nagłówków: W przypadku pytania typu Array, często będziesz mieć wiele pytań podrzędnych, które - wyświetlane na ekranie - zajmują więcej niż jedną stronę. To ustawienie pozwala Ci zdecydować, ile pytań podrzędnych powinno zostać wyświetlonych przed powtórzeniem informacji z nagłówka pytania. Dobre ustawienie to około 15. Jeśli nie chcesz, aby nagłówki w ogóle się powtarzały, ustaw tę wartość na 0. To ustawienie zostanie zastąpione w oknie dialogowym ustawienia globalne (New in 2.05 ) .
- minrepeatheadings: Minimalna liczba pozostałych pytań podrzędnych wymaganych przed powtórzeniem nagłówków w pytaniach tablicowych. Wartość domyślna to 3 i można ją edytować w config.php.
- defaulttemplate: To ustawienie określa domyślny motyw używany dla „publicznej listy” ankiet. To ustawienie można zastąpić w oknie dialogowym ustawienia globalne lub edytować w config.php.
- defaulthtmleditormode: Ustawia domyślny tryb zintegrowanego edytora HTML. To ustawienie można zastąpić w oknie dialogowym ustawienia globalne lub edytować w config.php. Prawidłowe ustawienia to:
- 'inline' - Inline zastępowanie pól przez edytor HTML. Powolny, ale wygodny i przyjazny dla użytkownika;
- „popup” — w razie potrzeby dodaje ikonę uruchamiającą edytor HTML w wyskakującym okienku. Szybciej, ale kod HTML jest wyświetlany w formie;
- 'none' - Brak edytora HTML;
- column_style: Określa sposób renderowania kolumn z odpowiedziami na ankietę przy użyciu kolumny_wyświetlające. Można go edytować w pliku config.php. Poprawne ustawienia to:
- 'css' - używa jednej z różnych metod CSS do tworzenia kolumn (szczegóły znajdziesz w arkuszu stylów szablonu);
- 'ul' - kolumny są renderowane jako wielokrotne pływające listy nieuporządkowane (domyślnie);
- 'table' - wykorzystuje konwencjonalny układ oparty na tabelach;
- NULL - wyłącza użycie kolumn.
Język i czas
- defaultlang: Należy ustawić domyślny język używany w skryptach administracyjnych, a także domyślne ustawienie języka na liście ankiet publicznych. To ustawienie można zastąpić w oknie dialogowym ustawienia globalne lub edytować w config.php.
- timejust: Jeśli Twój serwer WWW znajduje się w innej strefie czasowej niż lokalizacja, w której na których będą opierać się Twoje ankiety, wpisz tutaj różnicę pomiędzy Twoim serwerem a Twoją domową strefą czasową. Na przykład mieszkam w Australii, ale korzystam z serwera internetowego w USA. Serwer internetowy jest 14 godzin za moją lokalną strefą czasową. Zatem moje ustawienie to „14”. Innymi słowy, dodaje 14 godzin do czasu serwerów internetowych. To ustawienie jest szczególnie ważne, gdy ankiety oznaczają czas odpowiedzi. To ustawienie można zastąpić w oknie dialogowym ustawienia globalne lub edytować w config.php.
Zachowanie ankiety
- deletenonvalues: Używaj tej funkcji ostrożnie. Domyślnie (wartość 1) nieistotne pytania mają w bazie danych wartość NULL. Dzięki temu dane w bazie danych będą wewnętrznie spójne. Istnieją jednak rzadkie przypadki, w których warto zachować nieistotne wartości i w takim przypadku można ustawić wartość na 0. Na przykład pytasz mężczyznę o płeć, a on przypadkowo mówi „kobieta”, a następnie odpowiada jakiejś kobiecie -pytania szczegółowe (pytania uwarunkowane byciem kobietą, a więc istotne tylko dla kobiet). Następnie zdaje sobie sprawę ze swojego błędu, cofa się, ustawia płeć na „męską” i kontynuuje badanie. Pytania dotyczące kobiet są teraz nieistotne. Jeśli
$deletenonvalues==1, te nieistotne wartości zostaną usunięte (zero) w bazie danych. Jeśli$deletenonvalues==0, jego błędne odpowiedzi nie zostaną usunięte, więc nadal będą obecne w bazie danych podczas jej analizy. - shownoanswer: Gdy pytanie typu przycisk radiowy/wybierz, które zawiera edytowalne odpowiedzi (np. pytania typu lista, tablica) nie jest obowiązkowe, a parametr „shownoanswer” jest ustawiony na 1, pojawia się dodatkowe „Brak odpowiedzi” wpis zostanie wyświetlony, aby uczestnicy mogli zdecydować się na nieodpowiadanie na pytanie. Niektórzy wolą, żeby ta opcja nie była dostępna. To ustawienie można zastąpić w oknie dialogowym ustawienia globalne lub edytować w config.php. Poprawne wartości to:
- '0': Nie;
- '1': Tak;
- '2': Administrator ankiety może wybrać.
- printanswershonorconditions: To ustawienie określa, czy funkcja drukowania odpowiedzi będzie wyświetlać wpisy z pytań ukrytych w wyniku rozgałęzienia warunków (Domyślnie: 1 = ukryj odpowiedzi w przypadku pytań ukrytych w warunkach).
- ' hide_groupdescr_allinone:' To ustawienie ma zastosowanie w przypadku ankiet typu „wszystko w jednym” wykorzystujących warunki . Gdy ta opcja jest ustawiona na „true”, nazwa i opis grupy są ukryte, jeśli ukryte są wszystkie pytania w grupie. Wartość domyślna to „prawda” — ukrywa nazwę i opis grupy, gdy wszystkie pytania w grupie są ukryte za pomocą warunków. Można go edytować w config.php.
- showpopups: Pokaż wyskakujące komunikaty, jeśli nie udzielono prawidłowej odpowiedzi na pytania obowiązkowe lub warunkowe:
- '2' = zdefiniowane przez opcję Motywu (domyślnie )
- '1'= pokaż wyskakujący komunikat;
- '0'= zamiast tego pokaż komunikat na stronie;
- '-1'= w ogóle nie pokazuj komunikatu (w tym przypadku , użytkownicy nadal będą widzieć wskazówki dotyczące konkretnych pytań, wskazujące, na które pytania należy odpowiedzieć).
Zachowanie typu pytania numerycznego
- bFixNumAuto: Pola numeryczne mogą być automatycznie filtrowane w celu usunięcia wszystkich wartości innych niż numeryczne. Domyślnie jest to włączone, można je wyłączyć globalnie. Te ustawienia są powiązane z opcją „Automatycznie napraw wartość liczbową” w podstawowych opcjach motywu. Było włączone dla „Tak”, wyłączone dla „Tylko dla wyrażenia” i „Nie”.
- bNumRealValue: Pola numeryczne używane w menedżerze wyrażeń mogą być naprawione lub nie. Domyślnie jest to naprawione. Jeśli NUMERIC jest pytaniem numerycznym: wyłącz lub 0: wyślij {NUMERIC} ze złymi znakami „” , włącz lub 1 : {NUMERIC} wyślij wszystkie wprowadzone znaki. Te ustawienia są powiązane z opcją „Automatycznie napraw wartość liczbową” w podstawowych opcjach motywu. Było włączone dla „Tak” i „Tylko dla wyrażenia” i wyłączone dla „Nie”.
Rozwój i debugowanie
- debug: Dzięki temu ustawieniu ustawiasz raportowanie błędów PHP na E_ALL. Oznacza to, że wyświetlana jest każda drobna uwaga, ostrzeżenie lub błąd związany ze skryptem. To ustawienie powinno zostać przełączone na „1” tylko wtedy, gdy z jakiegokolwiek powodu próbujesz debugować aplikację. Jeśli jesteś programistą, przełącz je na „2”. Nie przełączaj go na „1” lub „2” w środowisku produkcyjnym, ponieważ może to spowodować ujawnienie ścieżki. Wartość domyślna to „0” i można ją edytować w pliku config.php.
- debugsql: Aktywuj to ustawienie, jeśli chcesz wyświetlać na dole każdej strony wszystkie zapytania SQL wykonane dla skryptu. Bardzo przydatne przy optymalizacji liczby zapytań. Aby je aktywować, zmień wartość domyślną na '1' w pliku config.php.
- use_asset_manager: Domyślnie tryb debugowania wyłącza menedżera zasobów. Możesz zezwolić na korzystanie z menedżera zasobów przy włączonym trybie debugowania.
- rpc_log: (New in 7.9.0 ) Ustaw na
true, aby zapisywać w logu każde wywołanie RemoteControl do plikutmp/runtime/remotecontrol.log. Każdy wiersz zawiera wywołaną metodę, jej parametry, adres IP klienta, czas trwania oraz początek odpowiedzi. Hasła są usuwane, klucze sesji są zastępowane krótkim skrótem, a długie wartości są skracane. Log nadal zawiera dane ankiety, uczestników i odpowiedzi, które zostały wysłane i odebrane, dlatego włączaj tę opcję tylko na czas szukania problemu. Wartość domyślna tofalse.
W przypadku wystąpienia błędu w aplikacji zdecydowanie zalecamy aktywację ustawienia debugowania, aby uzyskać bardziej szczegółowy błąd, który można przesłać wraz z raportem o błędzie:
'config'=>array(
'debug'=>2,
'debugsql'=>0,
)
Jeśli pracujesz nad wtyczką i potrzebujesz szybkiego sposobu na zrzucenie zmiennych na ekran: możesz użyć funkcji traceVar. Jeśli ustawione jest debugowanie: ta funkcja używa CWebLogRoute do wyświetlenia na stronie HTML. Użycie traceVar($MyVariable)
Ustawienia poczty e-mail
Wszystkie poniższe ustawienia można zastąpić w oknie dialogowym ustawienia globalne.
- 'emailmethod: Określa sposób wysyłania wiadomości email. Dostępne są następujące opcje:
- 'mail:' używa wewnętrznego programu pocztowego PHP;
- 'sendmail:' używa programu pocztowego sendmail;
- 'smtp:' używa przekazywania SMTP. Użyj tego ustawienia, jeśli uruchamiasz LimeSurvey na hoście, który nie jest Twoim serwerem pocztowym.
- 'emailsmtphost: Jeśli używasz 'smtp' jako
$emailmethod, musisz tutaj podać swój serwer SMTP. Jeśli używasz poczty Google, konieczne może być dodanie numeru portu, np. $emailsmtphost = 'smtp.gmail.com:465'. - emailsmtpuser: Jeśli Twój serwer SMTP wymaga uwierzytelnienia, ustaw tutaj nazwę użytkownika, w przeciwnym razie pole musi być puste.
- emailsmtppassword: Jeśli Twój serwer SMTP wymaga uwierzytelnienia, ustaw tutaj swoje hasło, w przeciwnym razie pole musi być puste.
- emailsmtpssl: Ustaw „ssl” lub „tls”, aby używać protokołu SSL/TLS dla połączenia SMTP.
- maxemails: Podczas wysyłania zaproszeń lub przypomnień do uczestników ankiety to ustawienie określa, ile wiadomości email można wysłać w jednej partii. Różne serwery internetowe mają różne możliwości wysyłania poczty, a jeśli wysyłanie partii wiadomości przez skrypt trwa zbyt długo, może nastąpić przekroczenie limitu czasu i wystąpią błędy. Większość serwerów internetowych może wysłać jednocześnie 100 wiadomości w domyślnym 30-sekundowym limicie czasu dla skryptu PHP. Jeśli podczas wysyłania dużej liczby wiadomości wystąpią błędy przekroczenia limitu czasu skryptu, zmniejsz tę liczbę w tym ustawieniu. Kliknięcie przycisku „Wyślij zaproszenie” na pasku narzędzi kontroli tokenów (a nie przycisku znajdującego się po prawej stronie każdego tokena) powoduje wysłanie liczby zaproszeń równej <maxemails>, następnie wyświetla listę adresów odbiorców i ostrzeżenie, że oczekuje więcej wiadomości email, niż można wysłać w jednej partii. Kontynuuj wysyłanie, klikając poniżej. Pozostało jeszcze ### wiadomości email do wysłania. oraz udostępnia przycisk „Dalej”, aby przejść do następnej partii. Oznacza to, że użytkownik decyduje, kiedy wysłać kolejną partię po wysłaniu każdej z nich. Nie trzeba czekać z aktywnym tym ekranem. Administrator może się wylogować i wrócić później, aby wysłać kolejną partię zaproszeń.
- send_error_saving_results_email: (New in 7.8.0 ) Jeśli nie można zapisać odpowiedzi, LimeSurvey wysyła odpowiedzi do administratora ankiety w wiadomości email z tematem „Błąd podczas zapisywania wyników”. Ustaw na
false, aby wyłączyć te wiadomości. Uczestnicy nadal widzą komunikat błędu. Wartość domyślna totrue. To ustawienie można zmienić tylko w pliku config.php.
Statystyki i przeglądanie odpowiedzi
- filterout_incomplete_answers: Określa domyślne zachowanie filtrowania niekompletnych odpowiedzi podczas przeglądania lub analizowania odpowiedzi. Omówienie niekompletnych odpowiedzi znajdziesz w naszej instrukcji przeglądania wyników ankiety. Ponieważ takie rekordy mogą zniekształcać statystyki, w kilku formularzach GUI dostępna jest opcja włączania lub wyłączania tego filtra. Parametr można edytować w pliku config.php. Dostępne są następujące opcje:
- 'all': Pozwala wyświetlać zarówno kompletne, jak i niekompletne odpowiedzi;
- 'complete': Pokazuje tylko kompletne odpowiedzi;
- 'incomplete': Pokazuje tylko niekompletne odpowiedzi.
- strip_query_from_referer_url: To ustawienie określa, czy odsyłający URL zapisuje parametry, czy nie. Wartość domyślna to 'false' (w takim przypadku odsyłający URL zapisuje wszystkie parametry). Można też ustawić wartość 'true', a część z parametrami zostanie usunięta z odsyłającego URL.
- showaggregateddata: po włączeniu wyświetlane są dodatkowe wartości statystyczne, takie jak średnia arytmetyczna i odchylenie standardowe. Ponadto dane są agregowane, aby szybciej uzyskać przegląd. Na przykład wyniki skali 1+2 i 4+5 są sumowane, aby uzyskać ogólny ranking, taki jak „dobry” (1/2), „przeciętny” (3) i „zły” (4/5). Dotyczy to tylko typów pytań „A” (tabela 5-punktowa) i „5” (Skala 5-punktowa).
- Ustawienia eksportu do PDF: Ta funkcja włącza eksport do PDF dla ankiet do druku i funkcji Drukuj odpowiedzi. Funkcja eksportu do PDF jest całkowicie eksperymentalna, a jej wyniki dalekie od doskonałości. Niestety obecnie nie możemy udzielić wsparcia – jeśli chcesz pomóc w jej naprawie, skontaktuj się z nami.
- 'pdfdefaultfont': Domyślna czcionka używana przez funkcję eksportu do PDF. Wartość domyślna to 'auto'. Aby ją zmienić, ustaw jedną z podstawowych czcionek PDF.
- 'alternatepdffontfile': Tabela z kluczami języków i odpowiadającymi im czcionkami. Domyślną czcionkę dla każdego języka można zastąpić w pliku config.php;
- 'pdffontsize': rozmiar czcionki dla zwykłego tekstu; dla tytułu ankiety jest to <pdffontsize>+4, a dla tytułu grupy <pdffontsize>+2. Można go edytować w pliku config.php lub w oknie dialogowym ustawienia globalne.
- Ustawienia wykresów
- 'chartfontfile': Ustawia nazwę pliku czcionki używanej do tworzenia wykresów statystycznych. Plik musi znajdować się w katalogu czcionek w głównym folderze LimeSurvey. Można go edytować w pliku config.php;
- 'alternatechartfontfile': Tabela z kluczami języków i odpowiadającymi im czcionkami. Można ją edytować w pliku config.php.
- showsgqacode: To ustawienie jest używane w funkcji ankiety do druku i domyślnie ma wartość 'false. Jeśli ustawisz showsgqacode = 'true';, zostaną wyświetlone identyfikatory każdego pytania – oraz odpowiedzi, jeśli ma to zastosowanie. Identyfikatory te odpowiadają nagłówkom kolumn w tabeli Lime_survey_12345, która zawiera dane odpowiedzi dla danej ankiety. Można ich użyć do utworzenia księgi kodów do ręcznych zapytań do bazy danych.
Ustawienia LDAP
Ponieważ jest to obszerny temat, przenieśliśmy Ustawienia LDAP do inna strona.
Uwierzytelnienie
Począwszy od LimeSurvey 2.05, uwierzytelnianie będzie obsługiwane przez wtyczki. W rezultacie poniższe informacje mogą być nieaktualne. Zobacz wiki wtyczek, aby uzyskać najbardziej aktualne informacje.
Delegowanie uwierzytelnienia do serwera WWW
Administratorzy systemów mogą chcieć, aby ich administratorzy ankiet byli uwierzytelniani w centralnym systemie uwierzytelniania (Active Directory, openLdap, Radius, ...), zamiast korzystać z wewnętrznej bazy danych LimeSurvey. Łatwym sposobem jest skonfigurowanie oprogramowania serwera WWW tak, aby korzystało z tego zewnętrznego systemu uwierzytelniania, a następnie nakazanie LimeSurvey zaufania tożsamości użytkownika zgłaszanej przez serwer WWW. Aby włączyć tę funkcję, musisz:
- aktywować wtyczkę Webserver w menu Konfiguracja > Wtyczki i ustawić w ustawieniach wtyczki klucz serwera zawierający nazwę użytkownika (domyślnie: REMOTE_USER);
- włączyć uwierzytelnianie po stronie serwera WWW.
Należy pamiętać, że:
- LimeSurvey ominie wówczas swój własny proces uwierzytelniania (używając nazwy logowania zgłoszonej przez serwer WWW bez pytania o hasło);
- może to zastąpić jedynie system uwierzytelniania GUI LimeSurvey, „nie system zaproszeń do ankiety” (interfejs uczestnika).
Delegowanie uwierzytelnienia bez automatycznego importu użytkowników
Należy pamiętać, że delegowanie uwierzytelnienia domyślnie nie omija systemu autoryzacji LimeSurvey - co oznacza, że nawet jeśli nie musisz zarządzać hasłami w LimeSurvey, nadal musisz zdefiniować użytkowników w bazie danych LimeSurvey i przypisać im odpowiedni zestaw uprawnienia w celu umożliwienia im dostępu do panelu administracyjnego.
Użytkownik uzyskuje wówczas dostęp do LimeSurvey wtedy i tylko wtedy, gdy:
- został uwierzytelniony na serwerze WWW;
- jego nazwa logowania jest zdefiniowana jako użytkownik w bazie użytkowników LimeSurvey (użytkownik otrzymuje wówczas uprawnienia użytkownika zdefiniowanego w bazie użytkowników LimeSurvey);
- ma uprawnienie globalne Użyj uwierzytelniania serwera www.
Delegowanie uwierzytelnienia z automatycznym importem użytkowników
Podczas zarządzania dużą bazą użytkowników czasami łatwiej jest automatycznie zaimportować użytkowników do bazy danych LimeSurvey:
- auth_webserver_autocreate_user: Jeśli ustawiono 'true', LimeSurvey będzie próbował automatycznie zaimportować użytkowników uwierzytelnionych przez serwer WWW, których nie ma jeszcze w jego bazie użytkowników.
- auth_webserver_autocreate_profile: Tabela opisująca domyślny profil, który zostanie przypisany użytkownikowi: pełną (fikcyjną) nazwę, adres e-mail i język.
- auth_webserver_autocreate_permissions: Tabela z uprawnieniami globalnymi, które zostaną przypisane użytkownikowi.
Jeśli chcesz dostosować profil użytkownika tak, aby odpowiadał zalogowanemu użytkownikowi, musisz napisać prostą funkcję o nazwie hook_get_auth_webserver_profile w config.php – za pomocą tej funkcji możesz pobrać z centralnej bazy kont użytkowników (na przykład z katalogu LDAP) prawdziwą pełną nazwę, adres e-mail i język danego użytkownika.
Funkcja hook_get_auth_webserver_profile przyjmuje jako jedyny argument nazwę logowania użytkownika i może zwrócić:
- False lub pustą tabelę – w takim przypadku użytkownik nie ma dostępu do LimeSurvey;
- tabelę zawierającą te same wpisy co
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();
Mapowanie nazwy użytkownika
W przypadku, gdy niektórzy użytkownicy mają zewnętrzną nazwę użytkownika, która różni się od nazwy użytkownika LimeSurvey, przydatne może okazać się użycie mapowania nazwy użytkownika. Odbywa się to w LimeSurvey za pomocą parametru „auth_webserver_user_map”. Załóżmy na przykład, że w zewnętrznej bazie danych uwierzytelniających nie zdefiniowano nazwy użytkownika „admin”. Następnie, aby zalogować się do LimeSurvey jako administrator, musisz zmapować swoją zewnętrzną nazwę użytkownika (nazwijmy ją „moja nazwa”) na nazwę logowania administratora w LimeSurvey. Odpowiednia konfiguracja to:
'config'=>array(
...
'auth_webserver_user_map' => array ('myname' => 'admin');
)
Po pomyślnym uwierzytelnieniu przy użyciu loginu „myname” i hasła serwera WWW, będziesz bezpośrednio upoważniony do korzystania z LimeSurvey jako użytkownik „admin”.
Ma to poważne konsekwencje dla bezpieczeństwa, więc używaj go ostrożnie. Chroń także plik config.php przed dostępem do zapisu przez serwer WWW.
Użyj haseł jednorazowych
Użytkownik może otworzyć stronę logowania LimeSurvey pod adresem default.com/limesurvey/admin i wpisać nazwę użytkownika oraz hasło jednorazowe, które zostało wcześniej zapisane w tabeli użytkowników (kolumna one_time_pw) przez zewnętrzną aplikację.
To ustawienie musi być włączone w pliku config.php, aby umożliwić użycie haseł jednorazowych (domyślnie = false).
'config'=>array(
'debug'=>0,
'debugsql'=>0,
'use_one_time_passwords'=>true,
)
Więcej informacji znajdziesz w sekcja "Zarządzaj użytkownikami".
Ustawienia szyfrowania
Aby uzyskać szczegółowe informacje na temat tej funkcji, zobacz szyfrowanie danych.
- encryptionkeypair
- encryptionpublickey
- encryptionsecretkey
- encryptionnonce
- encryptionsecretboxkey
Zaawansowane ustawienia adresu URL
- publicurl: Należy ustawić adres URL lokalizacji Twoich „skryptów publicznych”. Skrypty publiczne to te, które znajdują się w folderze „limesurvey” (lub w katalogu o dowolnej nazwie, w którym przechowywane są wszystkie pozostałe skrypty i katalogi). To ustawienie jest dostępne w config.php i jest używane, gdy LimeSurvey potrzebuje bezwzględnego adresu URL (na przykład podczas wysyłania e-maili z tokenami).
- tempurl: Należy ustawić adres URL katalogu „/limesurvey/tmp” – lub katalogu, którego LimeSurvey ma używać do udostępniania plików tymczasowych.
- uploadurl: Należy ustawić adres URL katalogu „/limesurvey/upload” – lub katalogu, którego LimeSurvey ma używać do udostępniania przesłanych plików. Pozwala to umieścić przesłane pliki w innej domenie.
Zaawansowane ustawienia ścieżki
- homedir: Należy ustawić fizyczną lokalizację na dysku, w której znajdują się skrypty administracyjne - na przykład „/home/usr/htdocs/limesurvey/admin”. Nie dodawaj końcowego ukośnika do tego wpisu. Domyślne ustawienie w pliku config.php próbuje wykryć domyślną ścieżkę główną wszystkich dokumentów przy użyciu zmiennej PHP
{$_SERVER['DOCUMENT_ROOT']}. W większości przypadków możesz to zostawić i zmodyfikować jedynie pozostałą część tego ciągu, aby pasowała do nazwy katalogu, w którym umieszczono skrypty LimeSurvey. - publicdir: Należy ustawić fizyczną lokalizację na dysku Twoich „skryptów publicznych”.
- tempdir: Należy ustawić fizyczną lokalizację na dysku katalogu /limesurvey/tmp, aby skrypt mógł odczytywać i zapisywać pliki.
- uploaddir: Należy ustawić fizyczną lokalizację na dysku katalogu /limesurvey/upload, aby skrypt mógł odczytywać i zapisywać pliki.
- sCKEditorURL: adres URL skryptu CKEditor.
Inne ustawienia zaawansowane
Prześlij pliki
- magic_database: Pozwala użyć innej bazy danych MIME dla finfo_open. Można ją zaktualizować tylko w pliku config.php. Przykład:
/usr/share/misc/magic.mgcdla systemów Linux opartych na Red Hat. - magic_file: Pozwala użyć innego pliku do pobrania tabeli rozszerzeń według typu MIME niż dołączony plik. Musi to być plik PHP zwracający tabelę. Można go zaktualizować tylko w pliku config.php.
Aktualizacja
- aktualizowalne: To ustawienie znajduje się w wersji.php. Może być prawdą lub fałszem. Jeśli ustawisz wartość true : kiedy loguje się użytkownik superadministrator: LimeSurvey sprawdza, czy jest dostępna aktualizacja i wyświetla ostrzeżenie. Jeśli ustawione na false: nie jest sprawdzane i nie można używać ComfortUpdate.
Tokeny
- allowedcharacters_pattern_token : Te ustawienia pozwalają określić wzorzec wyrażenia regularnego używany podczas filtrowania tokenów.