Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 20-06-2008 12:24:48

bertra
Membre
Date d'inscription: 06-02-2008
Messages: 130

[1.5]Cohabitation de sites

Bonjour,
J'aimerais rajouter un site web sur mon architecture.
Voila l'existant :
var
--www
----site1
------htdocs
--------index.php
------application
------models
------views
------library
--------Zend

le documentRoot est /var/www/htdocs
j'utilise le rewrite sur index.php

j'aimerais rajouter un site2
j'ai mis en place cette architecture.

var
--www
----site1
------htdocs
--------index.php
------application
------models
------views
------library
--------Zend
----site2
------htdocs
--------index.php

Comment paramétrer Apache afin de faire cohabiter les 2 sites (en évitant d'utiliser les Virtual Host) ?

Hors ligne

 

#2 20-06-2008 14:25:52

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: [1.5]Cohabitation de sites

Moi je vois mal ça sans utiliser les Virtual Hosts..
C'est quoi le problème avec cette solution??

Hors ligne

 

#3 20-06-2008 14:38:52

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [1.5]Cohabitation de sites

Tu peux utiliser des "locations"

Si ton documentRoot pointe sur /var/www, tu peux ajouter des confs du type :

Code:

<Location /site1/htdocs>
  AddDefaultCharset UTF-8
  RewriteEngine On
  RewriteBase /site1/htdocs
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule !\.(js|ico|gif|jpg|png|css|html|swf|htm|txt) /site1/htdocs/index.php [L]
</Location>

ensuite tu accèdes à tes sites avec http://localhost/site1/htdocs/

A+, Philippe
PS : cela dit, utiliser des virtualhosts et modifier ton /etc/hosts est souvent assez pratique...


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#4 20-06-2008 14:42:39

bertra
Membre
Date d'inscription: 06-02-2008
Messages: 130

Re: [1.5]Cohabitation de sites

J'ai essayé de mettre  comme documenRoot  : /var/www
J'accede aux sites avec l'adresse : http://www/toto.com/site1
J'ai mon formulaire d'authentification, mais ensuite j'ai le message d'erreur suivant :
The requested URL / was not found on this server.
Je pensais que le problème pouvait venir de mon controller d'authentication qui fait un :
$this->_redirect('/');
Mais j'ai essayé pour tester de lui mettre un chemin en dur vers index.php du site1 et la : même message :
The requested URL / was not found on this server.

Hors ligne

 

#5 20-06-2008 14:43:39

bertra
Membre
Date d'inscription: 06-02-2008
Messages: 130

Re: [1.5]Cohabitation de sites

ok merci philippe. Je teste

Hors ligne

 

#6 20-06-2008 14:44:24

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: [1.5]Cohabitation de sites

Perso pour les _redirect, j'utilise le view helper url()...

Hors ligne

 

#7 20-06-2008 15:34:32

bertra
Membre
Date d'inscription: 06-02-2008
Messages: 130

Re: [1.5]Cohabitation de sites

j'ai essayé le methode de philippe,
<Location /site1/htdocs>
  AddDefaultCharset UTF-8
  RewriteEngine On
  RewriteBase /site1/htdocs
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule !\.(js|ico|gif|jpg|png|css|html|swf|htm|txt) /site1/htdocs/index.php [L]
</Location>
j'appelle la page http://localhost/site1/htdocs
1) mon contrôleur d'identification est trouvé
2) a la redirection j'ai toujours le même message :
The requested URL / was not found on this server (même en mettant un chemin en dur dans le redirect).
J'ai l'impression que c'est le controleur frontal qui va chercher index.php à l'URL / ?
Comment savoir si c'est le cas ? Et si c'est le cas, comment les routes peuvent elle être adaptées à l'architecture du serveur ?

Hors ligne

 

#8 20-06-2008 15:37:27

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: [1.5]Cohabitation de sites

Et si c'est le cas, comment les routes peuvent elle être adaptées à l'architecture du serveur ?

En utilisant le helper url() qui les génères en fonction du routeur et de la baseUrl spécifié au front controller.

Hors ligne

 

#9 20-06-2008 15:41:09

bertra
Membre
Date d'inscription: 06-02-2008
Messages: 130

Re: [1.5]Cohabitation de sites

c'est un view helper ? je peux l'utiliser dans un controller ?

Hors ligne

 

#10 20-06-2008 16:02:15

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [1.5]Cohabitation de sites

Effectivement, regarde la méthode de Mr Moox. Le problème quand tu fais un redirect("/"), c'est qu'il te renvoie vers http://localhost/ et non http://localhost/site1/htdocs/

Vérifie aussi que dans ton bootstrap, tu as un $controller->setBaseUrl("/site1/htdocs");

A+, Phlippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#11 20-06-2008 16:08:31

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: [1.5]Cohabitation de sites

C'est un view helper, tu peux donc l'utilise dans ta vue ainsi

Code:

$this->url(array(
    'module' => '...',
    'controller' => '...',
    'action' => '...',
    'param' => '...'
), 'nomDeLaRoute'); //default si pas de route réécrite

En conséquence tu peux l'utiliser dans ton controller via $this->view->url(...), comme tous les helpers de vue...
Après faut pas non plus abuser de l'utilisation des helpers de vue dans le controller hein smile
Mais bon dans ton cas je ferais (et fais) toujours ainsi wink

Hors ligne

 

#12 20-06-2008 16:26:48

bertra
Membre
Date d'inscription: 06-02-2008
Messages: 130

Re: [1.5]Cohabitation de sites

ok,
juste une question :
pourquoi ne pas faire un

Code:

$frontController->setBaseUrl('/site1/htdocs');

dans le bootstrap
et puis un

Code:

$this->_request->getBaseUrl();

dans les controlleur pour récupérer le chemin ?
J'ai faux ou bien ?

Dernière modification par bertra (20-06-2008 16:27:24)

Hors ligne

 

#13 20-06-2008 17:00:12

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: [1.5]Cohabitation de sites

Tu peux tout à fait faire ça si tu veux rediriger à la racine du site.
L'interêt du view elper url() c'est pour regénérer des liens à partir de tes routes wink

Hors ligne

 

#14 25-06-2008 14:29:05

bertra
Membre
Date d'inscription: 06-02-2008
Messages: 130

Re: [1.5]Cohabitation de sites

bon... alors je ne comprend pas :
je fais un

Code:

$frontController->setBaseUrl('/site1/htdocs');

dans mon bootstrap
ensuite je fais un :

Code:

$this->view->baseUrl = $this->_request->getBaseUrl();

dans le init de mon controler
et la variable est vide sad

Hors ligne

 

#15 25-06-2008 14:31:22

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: [1.5]Cohabitation de sites

Hum... y'a un truc bien louche dans tout ça...
Essaye Zend_Controller_Front::getInstance()->getBaseUrl()...

Hors ligne

 

#16 25-06-2008 15:04:55

bertra
Membre
Date d'inscription: 06-02-2008
Messages: 130

Re: [1.5]Cohabitation de sites

bon...en fait ca fonctionne bien avec

Code:

$this->view->baseUrl = $this->_request->getBaseUrl();

Le probleme est que sur mon environnement de test le chemin est /, j'avais donc fait un

Code:

$frontController->setBaseUrl('/');

En faisant ça, la valeur de

Code:

$this->_request->getBaseUrl();

n'est pas "/" mais "", du coup je pensais que cela ne fonctionnait pas alors que si wink
je vais donc utiliser cette méthode. Merci.

Dernière modification par bertra (25-06-2008 15:06:11)

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