Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] traitements en ligne de commande - "Unknown module"

Posted by lucky on 02/27/2012 23:07

foxmask, quand tu me demandais si le cache avait été vidé, tu parlais bien du répertoire temp/monappli ? Ou bien y a-t-il autre chose qui m'a échappé ?

  [Opened] traitements en ligne de commande - "Unknown module"

Petit comparatif dev/prod au niveau du contenu du fichier généré 'cmdline~config.ini.php.resultini.php' (dans le répertoire temp/monappli) :

Dev.
urlScript="C:\wamp\www\jelix\monappli\scripts/jcline.php"
urlScriptPath="C:\wamp\www\jelix\monappli\scripts/"
urlScriptName=jcline.php
urlScriptId=jcline
urlScriptIdenc=jcline
Prod
urlScript=jcline.php => OK ?
urlScriptPath="/" => KO
urlScriptName=cline.php => KO (il manque la 1ère lettre)
urlScriptId=cline => KO (il manque la 1ère lettre)
urlScriptIdenc=cline => KO (il manque la 1ère lettre)

Je précise que 'jcline.php' est le nom du fichier script se trouvant dans monappli\scripts.
Est-ce que ces différences peuvent vous évoquer un début de piste ?

  [Opened] traitements en ligne de commande - "Unknown module"

Reply #2 Posted by foxmask on 02/28/2012 10:50

lucky a dit :
foxmask, quand tu me demandais si le cache avait été vidé, tu parlais bien du répertoire temp/monappli ?

oui


@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !

  [Opened] traitements en ligne de commande - "Unknown module"

Reply #3 Posted by foxmask on 02/28/2012 10:51

lucky a dit :
! Prod
urlScript=jcline.php => OK ?

urlScriptPath="/" => KO

urlScriptName=cline.php => KO (il manque la 1ère lettre)

urlScriptId=cline => KO (il manque la 1ère lettre)

urlScriptIdenc=cline => KO (il manque la 1ère lettre)

manifestement il y a un soucis dans ces paramètres surtout le path je trouve


@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !

  [Opened] traitements en ligne de commande - "Unknown module"

Reply #4 Posted by lucky on 02/28/2012 13:51

Je pense que quelque chose ne se passe pas correctement dans jConfigCompiler.class.php (lib/jelix/core) car si j'ai bien compris c'est cette classe qui génère le fichier .resultini.php dans le répertoire temp/monappli.

Le soucis c'est que ce code est trop pointu pour que je puisse mettre le doigt sur ce qui "coince". J'aurai vraiment besoin de l'avis d'un expert (si possible quelqu'un connaissant bien le core de Jelix, laurent par exemple ;)).

Sinon, je vais devoir truffer cette classe de jLog::dump() pour tenter de cerner le problème (je pense que cela se joue dans le corps de la fonction getPaths), malheureusement je n'ai pas accès à ma machine pour le moment...

  [Opened] traitements en ligne de commande - "Unknown module"

Reply #5 Posted by lucky on 02/28/2012 21:28

J'avance, doucement mais j'avance. Le problème vient de la variable $_SERVER['SCRIPT_NAME'] qui ne contient que "jcline.php" (le nom du script invoqué), au lieu du path complet jusqu'au nom de fichier.

J'ai vu qu'il existait la possibilité de paramétrer un autre nom de variable SERVER pour récupérer cette info : http://jelix.org/articles/fr/manuel-1.3/details-configuration (voir scriptNameServerVariable dans la section urlengine).
J'ai vérifié les variables disponibles sur mon serveur de prod en faisant un phpinfo(), mais aucune ne contient ce path !?

Comment puis-je m'en sortir ?

  [Opened] traitements en ligne de commande - "Unknown module"

Reply #6 Posted by foxmask on 02/28/2012 22:11

Bonsoir,

Ce peut-il que le fichier application.init.php soit incomplet (manque de la ligne 'scripts')?

voici celui du tuto jelixnews

$appPath = dirname (__FILE__).'/';
require (realpath($appPath.'../lib/jelix/').'/'.'init.php');

jApp::initPaths(
    $appPath,
    $appPath.'www/',
    $appPath.'var/',
    $appPath.'var/log/',
    $appPath.'var/config/',
    $appPath.'scripts/'
);
jApp::setTempBasePath(realpath($appPath.'../temp/actu.org/').'/');

nota : /!\ l'ordre importe /!


@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !

  [Opened] traitements en ligne de commande - "Unknown module"

Reply #7 Posted by lucky on 02/28/2012 22:12

J'ai aussi testé la méthode préconisée aux "utilisateurs d'un hébergement OVH mutualisé" (voir la note les concernant ici et en particulier le 2nd point sur la variable superglobale $_SERVER['SCRIPT_NAME']).

Mais ça ne fonctionne toujours pas. Ceci dit j'obtiens un message d'erreur que je n'avais pas avant : "Error during initialization: In config file the parameter urlengine :scriptNameServerVariable is empty and Jelix doesn't find the variable in $_SERVER which contains the script name...".

  [Opened] traitements en ligne de commande - "Unknown module"

Reply #8 Posted by lucky on 02/28/2012 22:17

foxmask a dit :
Bonsoir,

Ce peut-il que le fichier application.init.php soit incomplet (manque de la ligne 'scripts')?

Bonsoir,

Non non tout y est bien, comme dans ton exemple, et dans le même ordre.

  [Opened] traitements en ligne de commande - "Unknown module"

Reply #9 Posted by lucky on 02/29/2012 00:01

J'avais dis un peu plus tôt :
J'avance, doucement mais j'avance. Le problème vient de la variable $_SERVER['SCRIPT_NAME'] qui ne contient que "jcline.php" (le nom du script invoqué), au lieu du path complet jusqu'au nom de fichier.

Et je faisais fausse route. Finalement le problème vient du fait que la constante PHP_SAPI ne renvoie pas la chaine 'cli' dans mon contexte php-cli en prod. J'ai un peu retouché la définition de la fonction jConfigCompiler::readAndCache() dans lib/jelix/jConfigCompiler.class.php, et ça a l'air de fonctionner !

 
Page
  1. traitements en ligne de commande - "Unknown module"