Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 03-10-2011 21:42:40

delorbe
Membre
Date d'inscription: 06-08-2010
Messages: 57

[Résolu] Configuration DNS secondaire admin.monsite.com

Bonjour,

Je développe une application modulaire sous Zend, que j'héberge chez Nuxit.
En local, je bosse avec Xampp, sans souci.
J'utilise, en local, le couple hosts / httpd-vhosts.conf, pour créer un nom de domaine du type www.monsite.dev.

L'administration est un module de mon site, donc situé dans /application/modules/admin, et j'aimerais pouvoir y accéder en créant un DNS secondaire (aussi bien en local, que chez mon hébergeur), du type admin.monsite.com (ou .dev, si je suis en local).

Mais la création d'un DNS secondaire, ou bien la création d'une entrée dans httpd-vhosts.conf, ne me permet apparemment pas d'associer le nom d'hôte à autre chose qu'un répertoire, en l'occurrence : /www/monsite/application/modules/admin.
Alors que j'aurais plutôt besoin de lui associer une url, du type www.monsite.dev/admin...

Donc, une fois que j'ai créé cette entrée, et que je tape admin.monsite.dev dans mon navigateur, je tombe forcément dans le dossier du module, directement et sans passer par le index.php qui est à la racine de mon site...

Quelqu'un saurait m'aider à élucider ça svp?

Merci d'avance wink

Dernière modification par delorbe (10-10-2011 09:20:09)

Hors ligne

 

#2 04-10-2011 09:27:42

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

Re: [Résolu] Configuration DNS secondaire admin.monsite.com

Bonjour,

Il faut que tu utilises les routes.

Tu ne changes pas ta structure apache, tu ajoutes juste ton sous domaine sur le même directory que ton site normal.

Ensuite, tu utilises le routeur hostname, qui va te permettre de définir un module/controlleur/action pour ton sous domaine.

Hors ligne

 

#3 04-10-2011 12:22:14

delorbe
Membre
Date d'inscription: 06-08-2010
Messages: 57

Re: [Résolu] Configuration DNS secondaire admin.monsite.com

Bonjour Théocrite,

Je te remercie pour ta réponse.

Je ne connaissais pas le Zend_Controller_Router_Route_Hostname, je vais m'y intéresser de près.
D'ailleurs, il faut que je me penche sur les routes tout court, car j'ai besoin de mettre ça en place, mais je n'y suis jamais parvenu. J'arrive à créer mes routes, mais pas à les utiliser, je tombe sans cesse sur "page not found"...
Mais je vais faire des recherches dans le forum, et au besoin, je créerai un autre sujet à un endroit plus approprié que celui-ci.

Merci encore, et au passage, très joli site que tu as smile

Hors ligne

 

#4 04-10-2011 14:48:59

delorbe
Membre
Date d'inscription: 06-08-2010
Messages: 57

Re: [Résolu] Configuration DNS secondaire admin.monsite.com

Wow, la doc officielle de Zend n'est vraiment pas mon amie, et ce depuis que j'ai commencé à apprendre ce framework...

J'ai donc suivi leur exemple, après avoir corrigé l'erreur du code fourni, et avoir adapté à mes besoins :

Dans la doc :

Code:

[lang=php]
    $hostnameRoute = new Zend_Controller_Router_Route_Hostname(
        ':username.users.example.com',
        array(
            'controller' => 'profile',
            'action'     => 'userinfo'
        )
    );
     
    $plainPathRoute = new Zend_Controller_Router_Route_Static('');
     
    $router->addRoute('user', $hostnameRoute->chain($plainPathRoute);

Il manque une parenthèse fermante à la toute fin.

Et j'ai donc mis dans mon bootstrap:

Code:

[lang=php]    /**
     * Initialize routes
     * 
     */
    protected function _initRoutes(){
        $frontController     = Zend_Controller_Front::getInstance();
        $router             = $frontController->getRouter();
        $hostnameRoute         = new Zend_Controller_Router_Route_Hostname('admin.nv-webconcept.dev',
                                                                           array('module'         => 'admin',
                                                                                  'controller'    => 'index',
                                                                                  'action'        => 'index'));
        $plainPathRoute     = new Zend_Controller_Router_Route_Static('');     
        $router->addRoute('admin.nv-webconcept.dev', $hostnameRoute->chain($plainPathRoute));
    }

Désolé pour l'indentation, j'ai pas réussi à avoir mieux...

Mon hosts contient bien une entrée 127.0.0.1     admin.nv-webconcept.dev
Mon httpd-vhosts.conf contient également une entrée qui pointe vers la racine de mon site.
Voici :

Code:

NameVirtualHost www.nv-webconcept.dev:80
<VirtualHost www.nv-webconcept.dev:80>
    ServerAdmin nicolas-vauche@wanadoo.fr
    DocumentRoot "C:/xampp/htdocs/www.nv-webconcept.dev"
    ServerName www.nv-webconcept.dev
    ServerAlias www.nv-webconcept.dev
    ErrorLog "logs/www.nv-webconcept.dev-error.log"
    CustomLog "logs/www.nv-webconcept.dev-access.log" combined
</VirtualHost>

NameVirtualHost admin.nv-webconcept.dev:80
<VirtualHost admin.nv-webconcept.dev:80>
    ServerAdmin nicolas-vauche@wanadoo.fr
    DocumentRoot "C:/xampp/htdocs/www.nv-webconcept.dev"
    ServerName admin.nv-webconcept.dev
    ServerAlias admin.nv-webconcept.dev
    ErrorLog "logs/admin.nv-webconcept.dev-error.log"
    CustomLog "logs/admin.nv-webconcept.dev-access.log" combined
</VirtualHost>

Je tombe sur une erreur au chargement : "La page n'est pas redirigée correctement : Firefox a détecté que le serveur redirige la demande pour cette adresse d'une manière qui n'aboutira pas."

Si j'essaie de modifier la ligne :

Code:

[lang=php]$plainPathRoute = new Zend_Controller_Router_Route_Static('');

en ça :

Code:

[lang=php]$plainPathRoute     = new Zend_Controller_Router_Route_Static('admin.nv-webconcept.dev',
                                                                       array('module'         => 'admin',
                                                                              'controller'    => 'index',
                                                                              'action'        => 'index'));

ça aboutit à ma page d'accueil, tout bêtement.
Je sais que ce n'est pas cette modif qui ferait marcher mieux ma route, mais j'essaie de comprendre... et je suis largué sad

Dernière modification par delorbe (04-10-2011 18:08:33)

Hors ligne

 

#5 05-10-2011 16:20:37

delorbe
Membre
Date d'inscription: 06-08-2010
Messages: 57

Re: [Résolu] Configuration DNS secondaire admin.monsite.com

Ayé, ça marche smile

Grâce à tes indications, Théocrite, merci encore!

Pour résumer :

- Le site : www.nv-webconcept.dev
- L'url de l'administration : admin.nv-webconcept.dev

- Mon module d'administration se trouve dans /application/modules/admin

Voici mon c:\windows\system32\drivers\etc\hosts :

Code:

127.0.0.1            www.nv-webconcept.dev
127.0.0.1            admin.nv-webconcept.dev

Voici mon c:\xampp\apache\conf\extra\httpd-vhosts.conf :

Code:

NameVirtualHost www.nv-webconcept.dev:80
<VirtualHost www.nv-webconcept.dev:80>
    ServerAdmin nicolas-vauche@wanadoo.fr
    DocumentRoot "C:/xampp/htdocs/www.nv-webconcept.dev"
    ServerName www.nv-webconcept.dev
    ServerAlias www.nv-webconcept.dev
    ErrorLog "logs/www.nv-webconcept.dev-error.log"
    CustomLog "logs/www.nv-webconcept.dev-access.log" combined
</VirtualHost>

NameVirtualHost admin.nv-webconcept.dev:80
<VirtualHost admin.nv-webconcept.dev:80>
    ServerAdmin nicolas-vauche@wanadoo.fr
    DocumentRoot "C:/xampp/htdocs/www.nv-webconcept.dev"
    ServerName admin.nv-webconcept.dev
    ServerAlias admin.nv-webconcept.dev
    ErrorLog "logs/admin.nv-webconcept.dev-error.log"
    CustomLog "logs/admin.nv-webconcept.dev-access.log" combined
</VirtualHost>

Voici mon Bootstrap.php :

Code:

[lang=php]    /**
     * Initialize routes
     * 
     */
    protected function _initRoutes(){
        // Get router
        $router = Zend_Controller_Front::getInstance()->getRouter();
        
        // Define admin hostname route
        $hostnameRoute = new Zend_Controller_Router_Route_Hostname('admin.nv-webconcept.dev', array('module' => 'admin', 'controller' => 'index', 'action' => 'index'));
        $plainPathRoute = new Zend_Controller_Router_Route_Static('');
        $router->addRoute('adminHostnameRoute', $hostnameRoute->chain($plainPathRoute));
    }

et ça marche smile
Merci encore wink

Hors ligne

 

#6 05-10-2011 16:32:01

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

Re: [Résolu] Configuration DNS secondaire admin.monsite.com

De rien (c'est le cas de le dire, j'ai juste donné une piste !).

Désolé de ne pas t'avoir aidé plus, mais je voulais m'appuyer sur des bouts de codes que j'ai et auxquels je ne peux accéder depuis mon boulot... Et je n'ai pas eu le temps hier soir !

En tout cas merci d'avoir exposé ta solution !

Hors ligne

 

#7 05-10-2011 16:42:49

delorbe
Membre
Date d'inscription: 06-08-2010
Messages: 57

Re: [Résolu] Configuration DNS secondaire admin.monsite.com

J'ai vu tellement de discussions qui ne terminaient ni par merci, ni par j'ai trouvé, encore moins par la solution clairement exposée, que je me suis souvent perdu dans mes recherches, dans dix mille fora différents, et je me suis souvent retrouvé à ne plus savoir ce que je cherchais au départ...

Pourtant, les fora ça sert à ça, non?
Maintenant, ils sont tous tellement pleins, et les moteurs de recherche intégrés sont souvent tellement nuls, qu'on ne trouve plus ce qu'on cherche, et qu'on se voit systématiquement répondre "fais une recherche"... Donc on lâche l'affaire.

Alors quand quelqu'un donne une piste, on le remercie, parce qu'il aide pour de vrai smile

Voilà, je vais pas polluer cette discussion, et j'espère qu'elle servira à quelqu'un d'autre.
A bientôt, pour d'autres problèmes :p

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages