Actions

FAQ su installazione

From LimeSurvey Manual

Revision as of 22:18, 11 April 2013 by C schmitz (talk | contribs) (Created page with "===Cose facili da dimenticare:=== * .php deve essere associato al file php5isapi.dll (a seconda della versione di PHP questo puo' essere fatto automaticamente dal file di inst...")

Contenuti:

During Installation (Limesurvey 1.92 and below)

How can I create a database and a user in mysql with command line access?

You have to enter the below commands in your mysql.

create database <your_database_name>;

create user <your_database_username>;

create user <your_database_username>@localhost;

set password for <your_database_username> = PASSWORD('<your_database_password>');

set password for <your_database_username>@localhost = PASSWORD('<your_database_password>');

grant all on <your_database_name>.* to '<your_database_username>';

grant all on <your_database_name>.* to '<your_database_username>'@'localhost';

You have to replace <your_database_name>, <your_database_username> and <your_database_password> in above commands with according values.

Cosa succede se non posso creare un database tramite lo script di LimeSurvey?

Normalmente lo script crea un nuovo database e, succesivamente, la struttura delle tabelle. Se il Provider Internet non fornisce direttamente i permessi per creare un nuovo database in MySQL allora sarà necessario contattare l'amministratore del server per creare manualmente il database (e farsi dare il nome e il login) che dovrà avere i corretti permessi di accesso (leggi/scrivi/esegui). In questo caso bisognerà inserire il nome del database, oltre al nome utente e alla password, nel file config.php prima di lanciare il file admin.php. Solo a questo punto lo script potrà creare la struttura delle tabelle.

Cos'e' la PHP Multibyte String Functions library?

La PHP Multibyte String Functions library (o mbstring per PHP) e' una estensione per PHP che serve per manipolare le stringhe di caratteri non limitate a 8 bits. Questo e' il caso per caratteri cirillici, orientali etc che richiedono carattei rappresentati da stringhe di lunghezza in multipli di 8.

Per attivare questa estensione bisogna avere accesso al php.ini file. A seconda dell'installazione di PHP, o del server sui cui avete installato Limesurvey, questa opzione e' disponibile in diversi modi.

  • Nel caso di XAMPP e' necessario aprire il file php.ini e rimuovere i commenti (o aggiungere come nell'esempio) nelle linee che incominciano con mbstring usando il seguente formato:
Opzioni del linguaggio

mbstring.language        = Neutral    ; definisci la lingua standard Neutral(UTF-8) (default)

mbstring.detect_order    = auto

mbstring.internal_encoding    = UTF-8  ; Susa l'encoding intenro del sistema UTF-8

mbstring.encoding_translation = On

mbstring.detect_order         = auto    ; attiva l'ordine di inizializzazione delle lingue automatico

  • Nel caso utilizzate un hosting provider esterno, a seconda del tipo di servizio disponibile, e' possibile che queste modifiche possono essere fatte ne .htaccess file.

Consultate il vostro hosting provider prima di fare qualsiasi modifica poiche' il cambiamento dei file di configurazione potrebbe risultare in un malfunzionameto del server!

 http://<your_server>/<your_limesurvey_directory>/admin/install/phpinfo.php

from the web browser. A lot of information will be shown. Search for the string 'mbstring' under the Configuration section.

If you find the mbstring section then all should be well and you can continue on with your LimeSurvey installation!

If you don't find the mbstring section you might have a problem on your hands.

There are three possible scenarios:

  • If it's your providers server: Ask your provider to activate that extension in PHP or how to activate it - if you have a good administration panel for your server you may be able to activate it yourself.
  • If it's your own Linux server: You may have to re-compile PHP and include the mbstring library. Ask the Linux experts how to do that. In most Linux versions today you can install it using your Linux packet manager.
    • If you are using a version of Linux that supports 'yum' (CentOS, RedHat, Fedora):
      1. Use the terminal (as a super user) and type: yum install php-mbstring
      2. Make sure to update /etc/php.ini to update and uncomment the various mbstring params
      3. Make sure to restart apache after installing it:  /etc/init.d/httpd restart
  • If it's your own Windows server: Search for php.ini on your system, open it with an editor and search for mbstring. Most probably the line that contains that string is commented out with a semicolon. Remove the semicolon, save and restart your web server.

Quando si usano caratteri speciali (cinese, cirillico, greco) nei miei questionari tutti i caratteri appaion con un punto di domanda

  • Bisogna attivare l'estensione Multibyte String di PHP. (vedi sopra)
  • Assicurarsi che il Browser che utilizzate ha l'opzione multi linguaggio installata

ALTER DATABASE `<your_database_name>` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Replace <your_database_name> with the name of your database. You need to do this before installing LimeSurvey.

Blank page when accessing the Install page

The problem is not with the LimeSurvey installation but with the PHP installation.

  • Verify you have the MySQL PHP module (php-mysql) installed.
  • Verify your PHP install is loading the PHP.ini file your are modifying and not parsing other PHP.INI files on your system.
  • Verify the location and permissions of the following setting in your PHP.ini
upload_tmp_dir="/temp"

session.save_path="/temp"
  • Verify your server runs a suitable PHP version (e.g. this "blank page" problem appeared with PHP v4.4 and LimeSurvey v2.00+).

Error messages because of a not existing ressources

Sometimes files are not uploaded correctly or were broken during upload. This leads to several different error messages. Most of them refer to a file or function within a file which can't be found.

Solution: Re-upload all files using the binary mode of your FTP program.

During Installation (Limesurvey 2.0 and above)

ADD NEW TOPICS HERE (Thanks!)

After Database Creation

Blank Page after Database Creation

Symptoms

  • LimeSurvey installed OK, and database was created, but instead of the admin page, you get an empty page
  • Web surver log shows "Fatal error: Call to a member function on a non-object in /path/to/limesurvey/admin/login_check.php on line 69"

Fix

This is probably an incorrect setting for $rooturl or $rootdir in config.php. In particular, config.php attempts to set $rootdir correctly by calling dirname('''FILE''') and while this usually works, it can be upset when LimeSurvey is installed in a user's home or public_html directory and the home directory is mounted over NFS. Try setting $rootdir manually, and in particular, while your shell or pwd command may show a path like "/disks/hostname/home/username/public_html/limesurvey", try using "/home/username/public_html/limesurvey".

When accessing admin page, the browser keeps running and will eventually fail to show it

Symptoms

  • LimeSurvey installed OK and database was created. But when you access the admin page, the browser keeps running and will eventually fail to show the page.
  • When you check the web server access log, its size has become so big (in some cases, more than 2 GB).
  • Inside the access log, you get this message filling the log.

Warning: fread() [function.fread]: Length parameter must be greater than 0 in /limesurvey/classes/php-gettext/streams.php on line 120

Note: line number may be different depending on your LimeSurvey version.

Fix

This may be caused by the mbstring.func_overload setting. Check the setting in your php.ini and set as the following.

mbstring.func_overload = 0

Note: This means no function overloading. See PHP manual for this setting: Function Overloading Feature

When accessing admin page, the browser reports Fatal error: Call to a member function gT() on a non-object in login_check.php on line 76

Symptoms

  • LimeSurvey installed OK and database was created. But when rdirected to the admin page, the browser displayed the the listed error.
  • $rootdir and $rooturl are correctly set in config.php.
  • The disk path name for limesurvey installation directory includes one of the following characters: ()+

Note: Other characters may also induce the same behaviour

Fix

Move / rename the limesurvey installation directory so that pathname does not include either the ( or ) characters

After Login

Any action in admin page will return you to login screen

This may happen for the following two main reasons :

  • PHP sessions problems
  • UTF8 encoding problems
  • IE (6,7 and 8) problems

PHP Sessions :

  1. Update upload_tmp_dir and session.save_path in php.ini
  2. Create the configured session and upload directories
  3. IIS: Assigned permission to create and modify to IIS guest user account
  4. Apache: Make sure your webserver has permissions to write into the configured directory
  5. Check if the variable  "session.use_cookies" in php.ini is set to 1.
  6. Check the variable "session.auto_start" in php.ini. If it is set to 1, change it to 0.

UTF8 Encoding :

If you edit any file (most probably config.php) do not save it as UTF8 to support special language chars! Always save .php files as true ANSI/ISO format. Starting with 1.87 you can set the most important settings inside the application using the 'Global settings' dialog (like site name, administrator name, etc.).

IE Cookies :

IE (6,7 and 8) does not support underscore "_" in the server hostname. If it is the case, the cookies are not managed and cookie(s) is(are) not set. So change the server hostname under apache or IIS.

LimeSurvey and suhosin ("Session has expired")

You might, at one point, get a message like :

ERROR

We are sorry but your session has expired.

Either you have been inactive for too long, you have cookies disabled for your browser, or there were problems with your connection.

And if you have Suhosin activated on your server, that's might be the reason why you get this in the middle of a survey.

NB : when your survey is not active, the behaviour might be different, you could be redirected in the middle of a survey to the public list of surveys. The solution is the same.

Suhosin is an advanced protection system for PHP installations. Suhosin default configuration can make trouble to LimeSurvey installation.

First think to test with suhosin log, set suhosin.log.sapi = 511 and suhosin.simulation = on according with suhosin documentation.

The configuration file is usually located in /etc/php5/apache2/conf.d/suhosin.ini but to be sure you can check your phpinfo (Limesurvey administration > Global Settings > Button Show phpinfo > Line : "Additional .ini files parsed") to get the correct path.

Don't forget to restart your Apache server for the parameters to be taken into account (service apache2 restart).

When the simulation is on, Suhosin is not blocking anything and the errors are reported into the logs (usually in your syslog : /var/log/syslog). If you appear to get error messages such as "ALERT-SIMULATION - configured POST variable limit exceeded" that's Suhosin alerting...

This configuration seems to work well with Limesurvey:

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

With those parameters, you should be able to put the suhosin.simulation back at the "off" value (so that the serveur is protected and limesurvey still works).

The default values of suhosin are not working well with limesurvey. If you really want to secure your serveur tightly you might want to use the simulation mode to tune the setting and find the good values between 1000 and 5000 for the vars and 1000000 and 5000000 for the value_lenghts.

Note: There was an additional PHP setting introduced recently: max_input_vars - this setting is the same as suhosin.post.max_vars but needs to be set separately in php.ini .

LimeSurvey and suhosin ("quick translate trouble")

You can have some problem with the quick translate module when you are on OpenBSD 5.1 with php-5.3.10.

The symptom is : modification via "Quick translate --> options answer" are not update

You must downgrade your php version to php-5.2.17p8 and use the suhosin tweak proposed above.

I can't change the language!

No matter what language you choose, the interface (admin und user) always is in English language. Normally this is caused by a bug in your PHP version. There is no other fix for this than updating your PHP version.

Acuni errori comuni con il web server di Windows (IIS)

Il file Index.php non si apre

Causa: Il problema puo' essere causato dal fatto che le necessarie extensions non sono state installate in modo approapriato.

  • Assicurarsi che queste extensions sono configurate nel php.ini file:
    • Multi-byte string,
    • MSSQL (or MySQL)

Un'altra possibile causa: il filtro ISAPI non e' stato configurato

  • Con il IIS, la configurazione appropriata dipende dalla versione di windows e del Servizio web. Si consiglia di usare il file php5isapi.dll. Per maggiori dettagli consultare il manuale dell'utente per la versione PHP installata sul vostro server.

NOTA che spesso l'installazione automatica di PHP 5 non funziona perche' l'estensione .php e' collegata al file php5~api.dll che ovviamente non esiste, pero' e' semplice correggere il problema.

Il file index.php non si apre e il comando "php.exe -i" produce un errore che indica la mancanza di alcuni file .dll

Questo potrebbe essere causato se ci sono troppe extensions attivate nella configurazione di PHP

  • Se si installano tutte le extensions PHP non funziona perche' i vari file dipendenti non sono caricati. (per esempio il pacchetto di oracle necessita previa installazione delle .dll di oracle)
  • Si consiglia l'installazione minima, con solo le extensions necessarie per il funzionamento del sistema
  • per verificare il funzionamento del sistema, provate ad usare il comando php.exe -i dal prompt di comando (esegui > cmd per lanciare il prompt)

Errore che indica che il database e' mancante

Questo e' posibile se si commette un errore nell'indirizzo

  • assicurarsi che l'indirizzo e' del tipo:

www.tuodominio.it/limesurvey/install/index.php invece di limesurvey/index.php !

Le soluzioni proposte non funzionano

Questo puo' verificarsi se il server IIS non e' stato fatto ripartire

  • Restart IIS

Cose facili da dimenticare:

  • .php deve essere associato al file php5isapi.dll (a seconda della versione di PHP questo puo' essere fatto automaticamente dal file di installazione.
  • la cartella limesurvey/tmp deve essere impostata con accesso di scrittura per fare upload di files
  • assicurarsi che doc_root nel file php.ini e $rootdir nel file config.php sono aggiornati

Missing files ("No such file or directory")

When uploading LimeSurvey to your server it might happen that the connection is interrupted so that some files are not transferred or not transferred completely. Depending on the files you can receive error message at different part of LimeSurvey usage. Normally missing files throw errors like

"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)" OR

"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"

Solution

1. Delete all uploaded files.

2. Re-upload the files.

(3. If necessary: Re-install by browsing to /limesurveyfolder/admin/install)

Not able to add or edit subquestions/answers after upgrade

If you're not capable of editing or adding a question, ask youre host provider to change the mod_security setting of the domain name. See the forum thread Not Able to Add or Edit Questions on new 1.90 for more info.

Fancy URLs by removing index.php from the URL path

If you want to use fancy URLs and so not have /index.php in every URL please edit /application/config/config.php and change

'showScriptName' => true,

to

'showScriptName' => false,

For this to work properly you must use an Apache webserver with a properly installed mod_rewrite module.