Welcome to the LimeSurvey Community Forum

Ask the community, share ideas, and connect with other LimeSurvey users!

VirtualHost - Framework Yii - Server_Name et autres

  • riqcles
  • riqcles's Avatar Topic Author
  • Offline
  • Elite Member
  • Elite Member
More
3 months 2 weeks ago - 3 months 1 week ago #266802 by riqcles
Bonjour à tous, (j'ai supprimé les mots http et https car sinon impossible de poster le message)
Désolé si ce problème a déjà été évoqué (j’ai vu plein de sujet qui en parle), mais je pense que le cas est un peu spécifique.
Voici l’exemple de la situation que j’ai actuellement.

J’ai deux serveurs : un de démo et un de production. Ces deux serveurs sont situé derrière un SMI.url d’accès :
demo.example.org
prod.example.org

Voici l’accès que je fait pour la démo :
Je passe par le navigateur, je saisie l’adresse : demo.example.org/admin

Le SMI récupère ma requête, et transmet au serveur associé demo.limesurvey

Ce serveur possède une configuration apache avec un VirtualHost qui redirige l’adresse provenant du SMI (donc demo.limesurvey.fr/admin ) vers le ServerName demo.bo.example.com

Pour la production, c’est le même cheminement.

Ceci fonctionnent correctement…….sauf pour certaines fonctionnalités de LimeSurvey, qui utilise plusieurs variables en provenance de la configuration du VirtulHost.

Si on utilise le PHP Info dans les paramètres globaux de Limesurvey, on peut voir les informations suivantes, qui indiqueront  comme nom : demo.bo.example.com, alors que dans l’url du navigateur on est sur demo.example.org

Apache Environment
SSL_TLS_SNI
HTTP_HOST
SERVER_NAME

HTTP Headers Information
Host

PHP Variables
$_SERVER
$_SERVER
$_SERVER

Donc, certaines fonctionnalités du FrameWork YII utilisent ces variables pour construire par exemple, l’url pour l’envoi du lien en cas d’oubli de mot de passe.
Exemple du code :
            /* Usage of Yii::app()->createAbsoluteUrl, disable publicurl, See mantis #19619 */
            $linkToResetPage = \Yii::app()->createAbsoluteUrl(
                'admin/authentication/sa/newPassword/',
                =
            );postgres=# \password demo;

Un lien pour info ( www.yiiframework.com/doc/api/2.0/yii-web...AbsoluteUrl()-detail  

A part modifier le code et faire un rewrite du contenu du message qui doit être envoyé pour le mot de passe oublié, je n’ai pas vu d’autres solutions.

En ajoutant dans le fichier config.php les variables homeurl ou publicurl, en indiquant l’url demo.limesurvey.fr, cela fonctionne pour l’envoi de lien pour participer à un questionnaire, mais pas pour l’envoi du mot de passe à la création ou à l’oubli.

De plus, les liens contenu dans les mails de création ou d’oubli, indiquent comme url demo.limesurvey-bo.fr Si l’utilisateur clique sur ce lien, il est redirigé vers une page en erreur (car il ne peux pas accéder directement à l’adresse qui contient -bo : seul le serveur SMI peut le faire).

Si vous avez des idées je suis preneur.

illustration cheminement :

ordinateur --> url demo.limesurvey.fr/admin --> Serveur SMI --> url demo.limesurvey.fr/admin transmis au serveur DEMO --> Serveur DEMO --> VirtualHost correspondant url demo.limesurvey-bo.fr/admin

 

LimeSurvey version 3.22.19
OS : CentOS 7.9 / PHP 7.2.4
BDD : PostGresql 11.x /

Future LimeSurvey version 6.4.1
OS : CentOS 7.9 / RockyLinux / PHP 8.2
BDD : PostGresql 15.x
Last edit: 3 months 1 week ago by DenisChenu. Reason: example.com + example.org

Please Log in to join the conversation.

  • riqcles
  • riqcles's Avatar Topic Author
  • Offline
  • Elite Member
  • Elite Member
More
3 months 1 week ago #266830 by riqcles
J'ai oublié de préciser les valeurs qui sont renvoyés par le Proxy (pour les:HTTP_X_FORWARDED_FOR HTTP_X_FORWARDED_HOST HTTP_X_FORWARDED_SERVER
Dans l'image.

LimeSurvey version 3.22.19
OS : CentOS 7.9 / PHP 7.2.4
BDD : PostGresql 11.x /

Future LimeSurvey version 6.4.1
OS : CentOS 7.9 / RockyLinux / PHP 8.2
BDD : PostGresql 15.x

Please Log in to join the conversation.

  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team & Official Partner
  • LimeSurvey Community Team & Official Partner
More
3 months 1 week ago - 3 months 1 week ago #266842 by DenisChenu
La config publicurl n'est que pour les invitations. Puisque, en effet : le bug corrige le fait que l'administration peut être sur un autre lien (d'ailleurs, le bogue est lié a une feature request pour avoir un adminurl).

De son côté, Yii utilise son propre système que tu peux forcer : www.limesurvey.org/manual/Optional_settings/en#Request_settings . Le hiotInfo est fait pour cela.


PS : c'est toi qui as demandé un correctif ici ;)

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member. - Professional support - Plugins, theme and development .
I don't answer to private message.
Last edit: 3 months 1 week ago by DenisChenu.
The following user(s) said Thank You: riqcles

Please Log in to join the conversation.

  • riqcles
  • riqcles's Avatar Topic Author
  • Offline
  • Elite Member
  • Elite Member
More
3 months 1 week ago #266843 by riqcles
Bonjour et merci de ta réponse. 
Effectivement, j'ai bien demandé un correctif (qui fonctionne bien) et j'ai utilisé le hostInfo pour forcer l'url. Mais dans le cas particulier de la génération du mot de passe et l'envoi du lien pour en regénérer un nouveau, la variable de l'environnement APACHE ( SERVER_NAME) du virtual host est utilisé.

et comme je passe par un SMI, l'url dans mon navigateur pour accéder à limesurvey est demo.limesurvey.fr et celle de la variable est demo.limesurvey-bo.fr

Donc, je vais encore chercher ce qui bloque (mais difficile de créer un SMI via XAMPP, je vais créer plusieurs VM dans VirtualBox pour simuler mon environnement de DEV (je n'ai pas la main sur le SMI pour voir les logs).

LimeSurvey version 3.22.19
OS : CentOS 7.9 / PHP 7.2.4
BDD : PostGresql 11.x /

Future LimeSurvey version 6.4.1
OS : CentOS 7.9 / RockyLinux / PHP 8.2
BDD : PostGresql 15.x

Please Log in to join the conversation.

  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team & Official Partner
  • LimeSurvey Community Team & Official Partner
More
3 months 1 week ago #266845 by DenisChenu

Effectivement, j'ai bien demandé un correctif (qui fonctionne bien) et j'ai utilisé le hostInfo pour forcer l'url. Mais dans le cas particulier de la génération du mot de passe et l'envoi du lien pour en regénérer un nouveau, la variable de l'environnement APACHE ( SERVER_NAME) du virtual host est utilisé.

et comme je passe par un SMI, l'url dans mon navigateur pour accéder à limesurvey est demo.limesurvey.fr et celle de la variable est demo.limesurvey-bo.fr

 
Même avec
Code:
// Enforce a certain URL base 
        'request' => array(
            'hostInfo' => 'https://demo.limesurvey.fr/'  
            ),
Ca me semble suprenant ?
 

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member. - Professional support - Plugins, theme and development .
I don't answer to private message.

Please Log in to join the conversation.

  • riqcles
  • riqcles's Avatar Topic Author
  • Offline
  • Elite Member
  • Elite Member
More
3 months 1 week ago #266848 by riqcles
Oui même avec ceci.
Je vais refaire tous mes tests et voir ce qui bloque.

LimeSurvey version 3.22.19
OS : CentOS 7.9 / PHP 7.2.4
BDD : PostGresql 11.x /

Future LimeSurvey version 6.4.1
OS : CentOS 7.9 / RockyLinux / PHP 8.2
BDD : PostGresql 15.x

Please Log in to join the conversation.

  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team & Official Partner
  • LimeSurvey Community Team & Official Partner
More
3 months 1 week ago #266854 by DenisChenu

Oui même avec ceci.
Je vais refaire tous mes tests et voir ce qui bloque.
 
Mer… c'est un bogue.
A rapporter

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member. - Professional support - Plugins, theme and development .
I don't answer to private message.

Please Log in to join the conversation.

  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team & Official Partner
  • LimeSurvey Community Team & Official Partner
More
3 months 1 week ago #266874 by DenisChenu
Attention, c'est pas dans config, c'es(t au même niveau que la bdd ou la session
Code:
            'tablePrefix' => 'lime_',
        ),
        'request' => array(
            'hostInfo' => 'https://webdev.exemple.org'  
        ),
         'session' => array (
            'sessionName'=>'LS-QNDSYJGSASALCMYHZSKI',

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member. - Professional support - Plugins, theme and development .
I don't answer to private message.
The following user(s) said Thank You: riqcles

Please Log in to join the conversation.

  • riqcles
  • riqcles's Avatar Topic Author
  • Offline
  • Elite Member
  • Elite Member
More
3 months 3 days ago #267091 by riqcles
Bonjour et merci de ta réponse.
L'utilisation des paramètres hostinfo et publicurl fonctionnent.
Il s'agissait de problème sur les équipements de messageries et de pare feux.

Le nécessaire a été fait et tout fonctionne correctement.

LimeSurvey version 3.22.19
OS : CentOS 7.9 / PHP 7.2.4
BDD : PostGresql 11.x /

Future LimeSurvey version 6.4.1
OS : CentOS 7.9 / RockyLinux / PHP 8.2
BDD : PostGresql 15.x

Please Log in to join the conversation.

Moderators: Nickkoholchtpartner

Lime-years ahead

Online-surveys for every purse and purpose