- 1
[Opened] Jelix 1.2.1 et Erreur sur serveur IIS
Posted by misterben02 on 03/08/2011 11:06
Bonjour,
J'ai dévellopé mon site en local avec un serveur apache pour les tests, ceux-ci fonctionnent sans problème. Mais lors du déploiement sur un serveur IIS, il arrive assez fréquemment mais de manière aléatoire que l'erreur suivante se produise : Notice: Constant JELIX_APP_PATH already defined in C:\Inetpub\wwwroot\Site\Site\application.init.php on line 11 Notice: Constant JELIX_VERSION already defined in C:\Inetpub\wwwroot\Site\lib\jelix\init.php on line 20 Notice: Constant JELIX_NAMESPACE_BASE already defined in C:\Inetpub\wwwroot\Site\lib\jelix\init.php on line 26 Notice: Constant JELIX_LIB_PATH already defined in C:\Inetpub\wwwroot\Site\lib\jelix\init.php on line 28 Notice: Constant JELIX_LIB_CORE_PATH already defined in C:\Inetpub\wwwroot\Site\lib\jelix\init.php on line 29 Notice: Constant JELIX_LIB_UTILS_PATH already defined in C:\Inetpub\wwwroot\Site\lib\jelix\init.php on line 30 Notice: Constant LIB_PATH already defined in C:\Inetpub\wwwroot\Site\lib\jelix\init.php on line 31 Notice: Constant BYTECODE_CACHE_EXISTS already defined in C:\Inetpub\wwwroot\Site\lib\jelix\init.php on line 33 Fatal error: Cannot redeclare class jICoordPlugin in C:\Inetpub\wwwroot\Site\lib\jelix\core\jICoordPlugin.iface.php on line 17
Lorsque l'erreur survient, il suffit de faire F5 pour que l'on puisse continuer normalement sans que cela n'affecte le bon fonctionnement du site.
Avez-vous déja rencontré ce problème et avez-vous une solution ou une piste?
Merci par avance.
[Opened] Jelix 1.2.1 et Erreur sur serveur IIS
Posted by laurentj on 03/08/2011 15:42
Salut,
on dirait que ton serveur execute deux fois le application.init.php (et donc le lib/jelix/init.php).
Tu n'as rien fais de spécial dans ton application.init.php ou ton index.php ?
[Opened] Re: Jelix 1.2.1 et Erreur sur serveur IIS
Posted by misterben02 on 03/09/2011 08:45
Mon index.php n'a pas été modifié, par contre dans mon application.init.php, je charge des classes nécessaires à mon site.
define ('JELIX_APP_PATH', dirname (__FILE__).DIRECTORY_SEPARATOR); // don't change require (JELIX_APP_PATH.'/../lib/jelix/init.php'); define ('JELIX_APP_TEMP_PATH', realpath(JELIX_APP_PATH.'../temp/COGCRM/').'/'); define ('JELIX_APP_VAR_PATH', JELIX_APP_PATH.'var/'); define ('JELIX_APP_LOG_PATH', JELIX_APP_PATH.'var/log/'); define ('JELIX_APP_CONFIG_PATH', JELIX_APP_PATH.'var/config/'); define ('JELIX_APP_WWW_PATH', JELIX_APP_PATH.'www/'); define ('JELIX_APP_CMD_PATH', JELIX_APP_PATH.'scripts/'); // Chargement des classes //------------------------------------------------ require(JELIX_APP_PATH.'/modules/main/classes/jAuthUserAMoi.class.php'); require(JELIX_APP_PATH.'/modules/main/classes/jDroit.class.php'); require(JELIX_APP_PATH.'/modules/main/classes/jControllerCRM.class.php'); // Pour le cryptage RSA include(JELIX_APP_PATH.'/modules/main/classes/rsa.php');
Dois-je effectuer ce chargement autre part?
[Opened] Jelix 1.2.1 et Erreur sur serveur IIS
Posted by laurentj on 03/09/2011 13:18
Faudrait expliquer déjà pourquoi tu charges toutes ces classes, à priori, elles ne sont pas nécessaire tout le temps.
Pourquoi par exemple charger ton jControllerCRM à chaque page ? je doute que TOUT les controlleurs héritent de cette classe.
Pareil pour jDroit et rsa (évite d'appeler tes classes par un j*, on pourrait confondre avec jelix). C'est utilisé par qui ? par quoi ?
Pareil pour le jAuthUserAMoi (au passage, le nom n'est pas terrible :-p). Probablement pour l'authentification, pour l'objet stocké en session ? Sache alors qu'il y a une autre façon pour déclarer les classes d'objets stockés en session, même si je ne pense pas que le problème vient de là.
vérifier ce qu'il y a dans ces fichiers inclus, si ils ne font pas eux même des includes etc...
Et sinon, <troll>utilise un vrai serveur web en production, genre apache, nginx...</troll> :-)
[Opened] Re: Jelix 1.2.1 et Erreur sur serveur IIS
Posted by misterben02 on 03/10/2011 09:56
Bon pour expliquer, déjà le projet a été initié par deux personnes (dont moi). Cette partie que je décris n'est pas de mon fait (lol mais non ça fait pas celui qui rejette la faute ) mais je vais essayer d'expliquer à mon avis pourquoi ces classes sont là.
Pour jControllerCRM, tous mes controlleurs héritent de cette classe et celle-ci hérite elle-même de jControllerDaoCrud.
Pour jDroit et rsa, l'un sert à identifier les droits de l'utilisateur (On n'utilise pas les classes de Jelix car cette gestion dépend de notre AS400) et l'autre au cryptage du mdp de connexion.
Pour jAuthUserAMoi, je vais tester ta solution et oui le nom est pas terrible .
Sinon IIS m'est imposé sinon j'aurais pris apache lol.
Merci pour tout déjà.
- 1