Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour à tous et toutes!
J'ai mis en place Zend en local et tout fonctionne très bien.
J'ai tout transféré sur un hébergement mutualisé chez OVH (un 240plan pour être précis).
Voici l'erreur apparente sur l'index.php :
Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (index)' in /home.10.6/domaine/www/lib/Zend/Controller/Dispatcher/Standard.php:173 Stack trace: #0 /home.10.6/domaine/www/lib/Zend/Controller/Front.php(753): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #1 /home.10.6/domaine/www/monsite/index.php(56): Zend_Controller_Front->dispatch() #2 {main} thrown in /home.10.6/domaine/www/lib/Zend/Controller/Dispatcher/Standard.php on line 173
Maintenant voici le code qui est derrière tout ça ^^ :
<?php //Constantes du site define("ROOT_URL","http://www.domaine.com/monsite/"); define("BASE_PATH","/home.10.6/domaine/www/"); define("BASE_URL","monsite/"); define("INCLUDE_PATH_SEPARATOR",":"); //Définition de l'include_path set_include_path( BASE_PATH.BASE_URL.INCLUDE_PATH_SEPARATOR. BASE_PATH.BASE_URL.'php'.INCLUDE_PATH_SEPARATOR. BASE_PATH.BASE_URL.'php/view'.INCLUDE_PATH_SEPARATOR. BASE_PATH.'lib'.INCLUDE_PATH_SEPARATOR. get_include_path()); // Initialisation du Framework Zend require_once('Zend/Loader.php'); Zend_Loader::loadClass('Zend_Debug'); Zend_Loader::loadClass("Zend_Registry"); // Controller init Zend_Loader::loadClass('Zend_Controller_Front'); Zend_Loader::loadClass('Zend_Controller_Router_Rewrite'); $controller = Zend_Controller_Front::getInstance(); $router = new Zend_Controller_Router_Rewrite(); // Ecriture des routes //route globale $router->addRoute("global", new Zend_Controller_Router_Route(":controller/:action/:param", array('controller' => 'index', 'action' => null, 'param' => null ) )); $router->addRoute("la-ligne", new Zend_Controller_Router_Route("la-ligne/produits/:type/:soustype", array('type' => null, 'soustype' => null, 'controller' => 'la-ligne', 'action' => 'produits') ) ); //Paramétrage du controlleur $controller->setBaseUrl(BASE_PATH.BASE_URL); $controller->setRouter($router); // Zend_Loader::loadClass("Admin_Controller_Plugin"); // $controller->registerPlugin(new Admin_Controller_Plugin()); $controller->setControllerDirectory('php/ctrl'); $controller->throwExceptions(true); //Initialisation des vues Zend_Loader::loadClass('Zend_View'); $view = new Zend_View; $view->setScriptPath('php/view'); Zend_Registry::set('view', $view); // Appel du Dispatcher (gerer les actions en fonction des urls) $controller->dispatch(); ?>
Désolé pour le "méga" copier/coller, mais je préfère tout vous donner pour avoir une aide assez efficace ;-)
Je vous rappelle que tout marche en local... mais sur le web, c'est une autre histoire!
Merci d'avance pour vos réponses,
Pieroket
Hors ligne
Rebonjour Peirre ,
Est-ce l'arborescence de ton site ?
Tonsite/
application/
controllers/
indexController
Dernière modification par fred wolf (19-04-2007 16:26:21)
Hors ligne
En effet j'ai oublié de préciser l'arborescence :
www/
- lib/ (il s'agit de la librairie Zend, elle est là pour pouvoir la réutiliser pour plusieurs sites)
- monsite/
- php/
- ctrl/ (les controllers)
indexController.php
- view/ (les vues ^^)
index.phtml
j'espère que ça aide à comprendre!
Dernière modification par Pieroket (19-04-2007 16:29:01)
Hors ligne
Bonjour,
Il faut vérifier les 2 points suivants :
* Est-ce que tu as créé un IndexController.php contenant une class IndexController avec une méthode indexAction à l'intérieur (avec les bonnes majuscules et minuscules) ?
* Est-ce que tu as bien mis le fichier dans php/ctrl ?
Sinon, quelle URL as-tu appelé quand tu as eu l'erreur ?
A bientôt,
Philippe
Hors ligne
Avec ta précision sur l'arbo, je soupçonne la majuscule de IndexController.php
Philippe
Hors ligne
* pour le premier point, tout marche en local, et la classe est correctement écrite!
* tout y est oui !
J'ai appelé la racine du site : index.php (ou plutôt "www.domaine.com/monsite/")
Hors ligne
Il a dit que cela marchais en local donc...
Sauf que si tu es local sous Windows, il se fout comme une guigne des majuscules mais chez ovh, c'est du unix ou linux, bref, une erreur de majuscule et il ne reconnait plus rien, je pencherais pour ce "i" en minuscule...Il devrait être en majuscule, de toute façon ça ne mange pas de pain d'essayer...
Hors ligne
Alors là les gars, je dis un grand "BRAVO"!
Je lutte depuis hier à trouver l'erreur et c'était en effet le respect de la casse sous linux!!
Merci beaucoup ;-)
Vous pouvez passer le topic en "résolu" ^^
Hors ligne
Bien vu Philippe -)
Hors ligne
Il fait du cinéma aussi ? c'est un expert du sabre laser ?
Hors ligne
Pages: 1