Vianmääritys
From LimeSurvey Manual
Yleistä
Tällä sivulla luetellaan tyypillisiä teknisiä ongelmia ja niiden ratkaisuja onnistuneen asennuksen jälkeen. Jos asennuksen aikana ilmenee ongelmia, katso asennuksen UKK.
Kun yrität avata hallinnan kirjautumissivun
Virheilmoitus: "No input file specified" asennuksen jälkeen
tai
Mikä tahansa URL johtaa kyselylistasivulle
Asennuksen aikana LimeSurvey yrittää määrittää parhaan URL-muodon. Joskus tämä ei toimi oikein.
Sinun täytyy pakottaa LimeSurvey käyttämään toista URL-hallintajärjestelmää muokkaamalla asetustiedostoa.
Korvaa tiedostossa /application/config/config.php
'urlFormat' => 'path',
tällä:
'urlFormat' => 'get',
Yritä sitten avata hallintapaneeli käyttämällä lyhyttä hallinnan URL-osoitetta:
http://<yourserver.net>/<limesurvey_dir>/admin
Hallintaan kirjautumisen jälkeen
Mikä tahansa toiminto hallintasivulla palauttaa sinut kirjautumisnäkymään
Tämä voi johtua seuraavista pääsyistä:
- PHP-istuntojen ongelmat
- UTF8-koodauksen ongelmat
- IE-ongelmat
PHP-istunnot:
- Päivitä upload_tmp_dir ja session.save_path tiedostossa php.ini
- Luo määritetyt istunto- ja latauskansiot
- IIS: Anna IIS-vierailijakäyttäjätilille oikeudet luoda ja muokata
- Apache: Varmista, että verkkopalvelimella on oikeudet kirjoittaa määritettyyn kansioon
- Tarkista, että muuttujan "session.use_cookies" arvo tiedostossa php.ini on 1.
- Tarkista muuttuja "session.auto_start" tiedostossa php.ini. Jos sen arvo on 1, vaihda se arvoon 0.
Internet Explorer -ongelmat LimeSurvey ei enää tue hallintakäyttöliittymän käyttöä Internet Explorerilla.
UTF8-koodaus:
Jos muokkaat mitä tahansa tiedostoa (todennäköisimmin config.php), älä tallenna sitä UTF8-muodossa erikoiskielimerkkien tukemiseksi! Tallenna .php-tiedostot aina aitona ANSI/ISO-muodossa.
Sivun lähettäminen ei onnistu, kun se sisältää paljon kysymyksiä/vastausvaihtoehtoja/alikysymyksiä
PHP 5.3.9:ssä otettiin käyttöön uusi asetus (ja se siirrettiin myös joihinkin aiempiin PHP-versioihin): max_input_vars. Tämä asetus rajoittaa palvelimelle POST-menetelmällä lähetettävien muuttujien enimmäismäärää. Oletusarvo on 1000, mutta jos kysymyksessä on paljon vastausvaihtoehtoja tai kyselysivulla on hyvin paljon kysymyksiä/vastauksia, raja voi ylittyä. Tämä asetus täytyy määrittää PHP:n asetustiedostossa (php.ini).
Päivämäärät eivät näy oikein, kun käytetään MSSQL Serveriä ja FreeTDS:ää Linuxissa
Etsi FreeTDS:n locales.conf-tiedosto ja muokkaa sitä. Jos et käytä FreeTDS:ää muissa sovelluksissa, korvaa sisältö seuraavalla:
[default]
date format = %Y-%m-%d %H:%M:%S.%z
Jos käytät FreeTDS:ää muissa sovelluksissa, kannattaa ensin tarkistaa, mitä locale-asetusta sinun täytyy muokata.
Tallenna ja käynnistä palvelin uudelleen. Päivämäärien pitäisi nyt näkyä oikein. Jos tämä ei auta, olet ehkä muokannut väärää tiedostoa – toista vaiheet.
Kun syötän erikoismerkkejä (kiina, kyrilliset, kreikka, arabia) kyselyyni tai hallintaan, jokainen merkki näytetään kysymysmerkkinä?
Näin käy, jos tietokantaa ei ole luotu käyttämään UTF-8-merkistöä. Tämä voi tapahtua, kun tietokanta täytyy luoda palveluntarjoajan hallintapaneelissa. Voit korjata ongelman suorittamalla tietokannassasi seuraavan SQL-komennon (esimerkiksi phpMyAdminilla) ALTER DATABASE `<your_database_name>` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Korvaa <your_database_name> tietokantasi nimellä. Tämä täytyy tehdä ennen LimeSurveyn asentamista.
PageSpeed aiheuttaa ongelmia LimeSurveyssa
Lisää LimeSurveyn virtualhostiin rivi ModPagespeed off.
Muuten et voi käyttää ComfortUpdatea etkä viedä tietoja. Todennäköisesti myös jokin muu lakkaa toimimasta.
Kyselyyn vastattaessa
Virhe "Session has expired" (istunto on vanhentunut)
Saatat jossain vaiheessa saada seuraavanlaisen ilmoituksen:
ERROR
Valitettavasti istuntosi on vanhentunut.
Joko olet ollut passiivinen liian pitkään, selaimesi evästeet on poistettu käytöstä tai yhteydessäsi oli ongelmia.
Jos Suhosin on käytössä palvelimellasi, se voi olla syy siihen, että saat tämän viestin kesken kyselyn.
Suhosin on edistynyt suojausjärjestelmä PHP-asennuksille, mutta Suhosinin oletusasetukset voivat aiheuttaa ongelmia LimeSurveyn kanssa.
Tarkista ja testaa ensin Suhosinin lokin avulla asettamalla suhosin.log.sapi = 511 ja suhosin.simulation = on Suhosinin dokumentaation mukaisesti.
Asetustiedosto sijaitsee yleensä polussa /etc/php5/apache2/conf.d/suhosin.ini, mutta varmistaaksesi oikean polun voit tarkistaa phpinfon (LimeSurveyn hallinta > Yleiset asetukset > painike Näytä PHPInfo > rivi: "Additional .ini files parsed").
Muista käynnistää Apache- tai Nginx-palvelin uudelleen, jotta parametrit tulevat voimaan (service apache2 restart tai service nginx restart).
Kun simulaatio on päällä, Suhosin ei estä mitään, vaan virheet kirjataan lokeihin (yleensä järjestelmälokiin: /var/log/syslog). Jos saat virheilmoituksen, kuten "ALERT-SIMULATION - configured POST variable limit exceeded", se on Suhosinin hälytys. Kokeile silloin seuraavaa asetusta (joka näyttää toimivan hyvin LimeSurveyn kanssa):
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
Näillä parametreilla sinun pitäisi pystyä asettamaan suhosin.simulation takaisin arvoon "off", jolloin palvelin on suojattu ja LimeSurvey toimii edelleen.
Suhosinin oletusarvot eivät toimi hyvin LimeSurveyn kanssa. Jos haluat suojata palvelimesi tiukasti, voit käyttää simulaatiotilaa asetusten hienosäätöön ja löytää sopivat arvot väliltä 1000–5000 muuttujille (vars) ja 1000000–5000000 arvojen pituuksille (value_lengths).
En voi vaihtaa kieltä!
Riippumatta valitsemastasi kielestä käyttöliittymä (hallinta ja käyttäjä) näkyy aina englanniksi. Yleensä tämä johtuu PHP-versiosi virheestä. Ainoa korjaus on päivittää PHP-versio.
Yleisiä virheitä (IIS-painotteisesti)
Index.php ei avaudu
Mahdollinen syy: Näin voi käydä, jos et ole asentanut tarvittavia laajennuksia
- Sinun täytyy asentaa Multi-byte string- ja MSSQL- (tai MySQL-) laajennukset
Mahdollinen syy: ISAPI-suodinta ei ole määritetty
- Määritä IIS:ssä verkkosivusto (voit tehdä sen myös hakemistotasolla) käyttämään php5isapi.dll-tiedostoa
Index.php ei avaudu ja "php.exe -i" antaa virheilmoituksia puuttuvista .dll-tiedostoista
Näin voi käydä, jos asennat liian monta laajennusta
- Jos asennat kaikki PHP-laajennukset, PHP ei toimi, koska kaikkia riippuvuuksia ei ole täytetty (esim. oracle-paketti tarvitsee oraclen dll-tiedostoja)
- Asenna vain tarvitsemasi laajennukset
- Voit testata ajamalla komentoriviltä php.exe -i
Viesti tietokannan puuttumisesta
Näin voi käydä, jos siirryt väärään osoitteeseen:
- Varmista, että menet osoitteeseen limesurvey/admin/install/index.php etkä osoitteeseen limesurvey/index.php!
Yllä olevat korjaukset eivät ratkaise ongelmaa
Näin voi käydä, jos et ole käynnistänyt IIS:ää uudelleen
- Käynnistä IIS uudelleen
Helposti unohtuvia asioita:
- .php-päätteen täytyy olla liitetty suodattimeen php5isapi.dll
- limesurvey/tmp-hakemistoon tarvitaan kirjoitusoikeus kyselyiden tiedostolatauksia varten
- doc_root-arvon päivittäminen php.ini-tiedostossa ja $rootdir-arvon päivittäminen config.php-tiedostossa
Puuttuvat tiedostot ("No such file or directory")
Kun lataat LimeSurveyn palvelimellesi, yhteys voi katketa, jolloin jotkin tiedostot eivät siirry lainkaan tai eivät siirry kokonaan. Tiedostoista riippuen saat erilaisia virheilmoituksia käyttäessäsi LimeSurveyn eri toimintoja tai osia. Puuttuvien tiedostojen aiheuttamat virheet näyttävät tältä:
"Warning: require_once(/path/to/your/limesurvey/installation/filename) [function.require-once]: failed to open stream: No such file or directory in /path/to/your/limesurvey/installation/filename on line 12345" TAI
"Fatal error: 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"
Ratkaisu
1. Poista kaikki ladatut tiedostot.
2. Lataa tiedostot palvelimelle uudelleen.
(3. Tarvittaessa: asenna uudelleen siirtymällä osoitteeseen /limesurveyfolder/admin/install)
Sivun lähettämisen jälkeen päädyt yleiselle etusivulle tai 404-sivulle tai saat viestin 'The CSRF token could not be verified'
tai
Kun napsautan 'Seuraava' sivulla, jossa on suuri määrä vastausvaihtoehtoja tai alikysymyksiä, kaikkia vastauksia ei tallenneta
tai
Kun napsautan 'Seuraava', päädyn samalle sivulle
tai
Pikakäännöksen käyttäminen ei tallenna vastausvaihtoehtoja tai alikysymyksiä
tai
Kun viet suuren määrän vastauskenttiä, kaikkia niistä ei viedä
- Tämä johtuu todennäköisimmin verkkopalvelimesi rajoittavasta asetuksesta: max_input_vars. Tämä asetus rajoittaa palvelimelle POST-menetelmällä lähetettävien muuttujien enimmäismäärää.
Oletusarvo on 1000, mutta jos kysymyksessä on paljon vastausvaihtoehtoja tai kyselyn sivulla on todella paljon kysymyksiä ja vastauksia, raja voi ylittyä. Sinun täytyy muokata PHP-asetuksia (php.ini).
- Tarkista myös PHP-asetukset, jos palveluntarjoajasi käyttää Apachen Suhosin-laajennusta, sillä sen asetukset voivat olla muutamien arvojen osalta liian rajoittavia.
- Esimerkiksi asetusten "suhosin.post.max_vars" ja "suhosin.request.max_vars" oletusarvo on molemmilla 200. Nosta molemmat arvoon 400 tai suurempaan, jotta käyttäjät voivat täyttää ja lähettää pitkiä kyselyjä.
- Jos ongelmat jatkuvat, kokeile vaihtaa moduuli simulation_mode-tilaan (jolloin se käytännössä poistetaan käytöstä), sillä Maksimiarvo riippuu aina kyseisestä kyselystäsi.
- Toinen syy voi olla välityspalvelin tai vastaava ohjelmisto, joka ei salli suuria POST-pyyntöjä tai saman sivun pyytämistä useita kertoja taustalla (mikä johtaa uuden CSRF-avaimen luomiseen). Kokeile tässä tapauksessa toista internetyhteyttä.
Kysymyksiä ei näytetä, kun käytetään MSSQL Serveriä ja FreeTDS:ää Linuxissa
Jos tarkastelet kysymysryhmää tarkasti, huomaat, että Ryhmän relevanssiyhtälö -kentässä on välilyönti, joka tekee koko ryhmästä ei-relevantin. Taustalla oleva ongelma on, että FreeTDS palauttaa tyhjistä kentistä välilyöntejä virheellisen määrityksen vuoksi. Voit korjata ongelman pakottamalla FreeTDS:n protokollaversioksi vähintään 8.0. Muokkaa siis tiedostoa freetds.conf (esim. /etc/freetds/freetds.conf) ja muuta vastaava rivi seuraavaksi:
tds version = 8.0
Tämän pitäisi korjata ongelma.
Kyselyyn vastaamisen jälkeen
Osallistujan syöttämät tekstit näkyvät tuloksissa kysymysmerkkeinä
Tämä tapahtuu, jos tietokanta ei oletuksena käytä UTF-8-merkistöä. Näin voi käydä, kun tietokanta täytyy luoda palveluntarjoajan hallintapaneelin kautta. Voit korjata ongelman suorittamalla tietokannassasi seuraavan SQL-komennon (esimerkiksi phpMyAdminin avulla):
ALTER DATABASE `<your_database_name>` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Korvaa <your_database_name> tietokantasi nimellä. Kun olet tehnyt tämän, deaktivoi kyselysi ja aktivoi se uudelleen.
Tietokantakohtaiset ongelmat
Haluan LimeSurveyn käyttävän tiettyä Postgres-skeemaa
Aseta tiedostossa config.php 'initSQLs' => array('SET search_path TO "LimeSurvey";'), Katso esimerkki tiedostosta config-defaults.