FAQ de l'installation

Contenu :

Comment créer la base de données et l'utilisateur par la ligne de commande.
Vous devez bien s&ucirc;r modifier ,  et  dans les commandes précédentes.

Que faire si je ne peux pas créer de base de données gr&acirc;ce à un script ?
En temps normal, un script de LimeSurvey crée une nouvelle base de données avec les tables nécessaires. Cependant, si vous n'avez pas les droits suffisants pour créer une base de données MySQL sur le serveur ou celui de votre FAI, il faudra contacter son administrateur afin qu'il crée cette nouvelle base à votre place en vous donnant les droits requis dessus (càd Lecture / Écriture / Création). Renseignez ensuite le nom de cette base, votre nom d'utilisateur et votre mot de passe dans le fichier config.php puis exécutez le script /admin/install/index.php script. Celui-ci ajoutera toutes les tables nécessaires dans la base.

Quelles sont les permissions à définir ?
Le dossier /limesurvey/tmp doit être en lecture/écriture/exécution (chmod 777). C'est ici que sont stockés les fichiers temporaires et les fichiers téléchargés. Les autres dossiers peuvent rester en lecture/exécution (chmod 755) sauf si vous souhaitez utiliser le mécanisme de protection "htaccess" d'Apache (pour pouvoir créer les fichiers htpasswd et htaccess). Dans ce cas, le dossier admin devra être en lecture/écriture/exécution (777) mais les fichiers à l'intérieur devront rester seulement en lecture/exécution (755)

Qu'est-ce que la librairie "mbstring" ?
Il s'agit d'une librairie PHP qui permet de convertir les caractères d'une langue à l'autre. Vous en aurez besoin si vous voulez utiliser LimeSurvey. Pour vérifier si elle est installée sur votre système, créez un fichier test.php qui contiendra ceci :



Ouvrez ce fichier depuis votre navigateur web. Plein d'informations vont s'afficher. Recherchez le texte "mbstring" dans la section Configuration. Si vous le trouvez, tout va bien et vous pouvez continuer l'installation de LimeSurvey.

Si vous ne trouvez pas la section mbstring, il va falloir régler ça...

Trois scénarios sont possibles :
 * Un serveur fourni/loué : demandez à votre fournisseur d'activer cette extension PHP. Cela ne devrait pas poser de problème.
 * Votre serveur sous Linux : il faudra recompiler votre PHP en incluant la librairie "mbstring". De nombreux tutoriels sont disponibles sur internet. Google est votre ami. Sinon, demandez aux experts Linux :
 * si vous utilisez une distribution qui supporte "yum" (CentOS, RedHat, Fedora), vous pouvez régler cela facilement via un terminal en tant que root et en tapant :
 * yum install php-mbstring
 * Assurez-vous de mettre à jour le fichier /etc/php.ini en enlevant les commentaires devant les différentes lignes de paramètres de mbstring
 * Pensez à redémarrez les serveur Apache après cette installation :
 * /etc/init.d/httpd restart
 * Votre serveur sous Windows : le cas le plus simple normalement. Recherchez et éditez le fichier php.ini. Recherchez le texte "mbstring". La plupart du temps, la ligne qui contient ce texte est commentée par un point-virgule au début. Effacez ce point-virgule, sauvegardez le fichier php.ini et redémarrez votre serveur web.

Quand j'utilise des caractères spéciaux (chinois, cyrillique, grec) dans mon questionnaire, chaque caractère est représenté par un point d'interrogation ?
Cela se produit si votre base de données n'a pas été créée pour supporter l'encodage des caractères en UTF-8. Cela peut arriver quand vous créez votre base depuis un outil d'administration. Vous pouvez corriger cela en exécutant cette requête SQL (depuis PHPMyadmin par exemple) :

ALTER DATABASE `` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

en remplaçant  par le nom de votre base de données.

Comment configurer les options LDAP pour que cela fonctionne avec Active Directory ?
Active Directory utilise un grand nombre d'attributs d'object non standards ce qui rend la configuration pénible pour un novice de LDAP. Voici quelques pistes.

Réglages du serveur :
 * $ldap_server [ $serverId]] [ 'protoversion']] = "ldapv2";
 * $ldap_server [ $serverId]] [ 'encrypt']] = "none"; // la plupart des serveurs LDAP sous AD sont, par défaut, paramétrés sans encryption

Réglages des requêtes d'utilisateur :
 * $ldap_queries [ $query_id]] [ 'userfilter']] = '(&(objectCategory=Person)(objectClass=user)(!(userAccountControl=514)))'; // AD ne reconnaît pas les comptes activés d'uen façon normale. c'est pourquoi, à la place, nou vérifions que les utilisateurs ne sont pas désactivés
 * comme suggéré dans le fichier de configuration, envisagez d'utiliser (!(email=*)) à votre filtre d'utilisateurs pour ignorer ceux sans adresse mail.

Réglages des requêtes de groupe :
 * $ldap_queries [ $query_id]] [ 'groupfilter']] = '(&(objectClass=group)(cn=Domain Admins))'; // AD n'utilise pas l'attribut standard 'name' pour les groupes, donc utilisez cet exemple à la place.

Installer et configurer LimeSurvey avec Ubuntu Feisty
Voir chez OSS Watch How to install and configure LimeSurvey v1.01 in Ubuntu Feisty.

Voir chez OSS Watch Upgrading from LimeSurvey 1.01 to LimeSurvey 1.52+ build 3304 2007-09-20 in Ubuntu Feisty.

Symptômes :

 * LimeSurvey est correctement installé, la base de données a été créée mais à la place de l'écran d'administration, vous obtenez une page vide.
 * Vous pouvez lire ceci dans les logs du serveur web     * "Fatal error: Call to a member function on a non-object in /path/to/limesurvey/admin/login_check.php on line 69"

Remède
C'est probablement à cause d'un mauvais réglage pour $rooturl ou $rootdir dans config.php. En effet, config.php essaie de déterminer correctement la valeur de $rootdir en appelant 'dirname(FILE)' et si cela fonctionne dans la plupart des cas, cela peut ne pas être le cas quand LimeSurvey est installé dans un répertoire d'utilisateur ou un dossier public_html et que le dossier de l'utilisateur est monté par NFS. Essayez de définir $rootdir manuellement et en particulier, si votre shell ou si la commande pwd vous retourne un chemin du genre "/disks/hostname/home/username/public_html/limewire", essayez d'utiliser "/home/username/public_html/limewire".

ce problème peut aussi survenir par un paramétrage incorrect de $rooturl ou par l'oubli de l'activation de mbstrings.

index.php ne veut pas s'ouvrir
Cause possible : les extensions nécessaires ne sont pas installées :
 * vous devez installer les extensions Multi-byte string et MSSQL (ou MySQL)

Cause possible : le filtre ISAPI n'est pas configuré
 * dans IIS, vous devez configurer l'utilisation de php5isapi.dll pour l'ensemble de votre site (au moins pour le dossier)

index.php ne veut pas s'ouvrir et "php.exe -i" renvoie des messages d'erreurs à propos de dll manquantes
Cela peut arriver si vous installer trop d'extensions
 * si vous installez toutes les extensions PHP, PHP ne fonctionnera pas car toutes les dépendances ne seront pas satisfaites (par exemple, le paquet oracle a besoin des dll oracle)
 * installez uniquement les extensions dont vous avez besoin
 * pour tester, essayez de lancer "php.exe -i" depuis une ligne de commande

un message indique que la base est manquante
Cela peut se produire si vous utilisez une mauvaise url
 * assurez-vous d'aller vers limesurvey/admin/install/index.php à la place de limesurvey/index.php !

toute action dans l'écran d'administration vous ramène à l'écran de connexion
Cela peut arriver si le dossier des sessions PHP n'est pas accessible pour IIS
 * créez les dossier de sessions et d'envoi de fichier (pour moi, dans le dossier php sous temp)
 * permettez à l'utilisateur invité de IIS de créer et modifier
 * mettez à jour upload_tmp_dir et session.save_path dans php.ini

Aucune des solutions ci-dessus ne résout mon problème
Pensez à redémarrer IIS

Les petites choses que l'on oublie vite :
 * l'extension .php doit être associée à la dll php5isapi.dll
 * /limesurvey/tmp/ doit avoir des permissions d'écriture pour l'envoi de questionnaires
 * mettre à jour doc_root dans php.ini et $rootdir dans config.php

Je n'arrive pas à faire fonctionner LimeSurvey chez free.fr
C'est normal, il faut faire quelques manipulations supplémentaires :

- Créez un fichier .htaccess contenant seulement "php 1" et mettez le à la racine de votre dossier d'installation.
 * Astuce sous windows :
 * Utilisez le bloc note, tapez "php 1" et enregistrez le sous le nom "htaccess.txt"
 * Transférez le sur le serveur avec votre client ftp habituel. Une fois en place, avec ce même client renommez le en .htaccess
 * Ceci permettra au serveur de comprendre qu'il faut utiliser la version 5.xxx de php

- Pour configurer la base de donnée, n'oubliez pas que si votre site est : http://mon.site.free.fr, votre identifiant pour la base de données est mon_site (avec l'underscore au lieu du point) et l'utilisateur est bien mon.site

- Je ne sais pas si c'est nécessaire, mais je créée systématiquement à la racine d'un site free utilisant php le dossier "sessions"

- pour que ça fonctionne en français, voire d'autres langues,  n'oubliez pas de mettre dans le fichier config.php la variable $translationmode    =   1 (pour moi ça ne fonctionnait pas sans ça)