Petite question :
pour http://localhost/mon/site/public :
la correspondance est elle
ServerName localhost
DocumentRoot /mon/site/public ?
Et bien sur j'attends de voir l'issue du match sur .htaccess or not !
Le problème c'est que dès le début il a pensait qu'il fallait mettre index.php à la base afin que ça fonctionne.
Il existe une recommandation, qui indique à ce qu'une application ne doit pas possèder de .htaccess, c'est proscrit à moins de ne pas avoir accès au vhost, ce qui ne semble pas être le cas ici.
Ok les gars,
on va essayer de rendre le sujet moins douloureux et + clair ce qui risque de ne pas être aisé.
Pour monter le projet, je pense être parti de tous les tutoriels et guide de démarrage qui soient que ce soit à partir de deveppez.net, de zend (fr et en), des tutos de rob allen...
A priori, j'ai du zapper l'info qui déconseille l'utilisation d'un htaccess, ce qui me gêne un petit peu en théorie car dans l'absolu, je trouve assez pratique de pouvoir configurer ses propres règles de réécriture (ente autre) dans un fichier que l'on aura plus qu'à déposer le moment venu en même temps que toute l'appli, et ce sans avoir à aller configurer chez l'hébergeur un quelconque .conf.
Ceci dit, je ne suis pas sectaire : si pour que cela fonctionne, mon htaccess doit sauter, qu'il saute. Je n'ai pas plus d'avis que cela sur cette question.
Pour l'index.php (qui include celui de public) à la racine que j'ai mis au début, cela vient de ce tutoriel.
A priori, cela ne suffit pas.
En local, et dans les règles de l'art de zend, je n'ai jamais eu aucun soucis et pour cause, puisque tout démarre dans \public.
Et puis voilà qu'un beau jour, je décide de franchir le pas : diffuser un site. L'émotion à son paroxysme. La transe.
Ouais mais là, je constate que je ne vais pas démarrer dans \public, mais à la racine du domaine créé.
Damned : mon esprit tortueux me rappelle à l'ordre. Avant de diffuser, assures toi de pouvoir appliquer ce mode de fonctionnement en local.
Et me voici parmi vous, à vous soumettre ce que je croyais une simple formalité. Non pas que j'ai inversé les étapes de mon apprentissage, mais bien parce que je n'avais pas pensé à cette configuration du mon de réel, dans mon cas.
Bon, ne m'en veuillez pas, mais à défaut d'arriver à mes fins, je me suis soulagé sur quelques lignes peut être inutiles mais à force de tourner en rond, fallait que je m'exprime.
l'article est vieux, c'est une traduction d'un autre qui date de janvier 2010, donc sur une version au max 1.9.6, et beaucoup de choses on changés depuis, donc soit t’utilises la version 1.9.6 du ZF, soit tu prends la dernière version et tu suis le quickstart
Il n'y a aucun soucis.
Ne t'inquiètes pas, tu n'as pas mal vu un tutoriel indiquant de ne pas utiliser le .htaccess, je n'en ai jamais vu avec cette recommandation.
C'est une recommandation de bonne pratique PHP et de recommandation de mise en prod et sécurité.
Car dans ton vhost ça t'oblige à mettre AllowOverride All, ce qui ouvre la porte à tout.
Le fait de tout centraliser au niveau du vhost permet une maintenabilité plus simple.
Ce qu'il faut savoir, si comme tu le dis tu ne démarre pas dans public, as tu réellement la main sur ton vhost, car si c'est le cas, tu ne peux pas dire que tu ne démarre pas dans public, c'est toi qui décide où se trouve ton DocumentRoot
Ok,
avant de vous pousser dans vos plus intimes retranchements et avant de vous faire craquer , je vais vous faire une confidence qui risque de me coûter la solution et de me valoir quelques quolibets.
Pour la pratique, chez l'hébergeur, j'ai en fait déjà trouvé la solution : Ikoula que le client a pris en version windows n'utilise donc pas le htaccess mais un web.config.
J'ai en fait passé plus de temps à traduire mon htaccess en web.config qu'à trouver comment me positionner dans public.
Donc pour info, sous IIS, on garde l'arborescence classique, on met un index.php avec include à la racine, et un web.config à la racine (pas dans public) qui rewrite sur index.php de public.
Donc pour la partie hébergeur, c'est réglé.
Maintenant, on oublie l'hébergeur, si tout le monde est d'accord, et pour coller au + prés de cette réalité, par curiosité aussi car je suis curieux, je voudrais, en local, sur mon petit poste à moi tout seul, pouvoir fonctionner de même.
Est ce que vous m'en voulez ? Est ce qu'on continue de chercher ?
Dans tous les cas, un grand merci pour les recherches déjà entreprises, et il me reste encore à tester cette solution de vhost.
Il n'y a aucun problème, au moins tu ne te contente pas que ça fonctionne.
As tu essayer avec le dernier vhost que j'ai fourni ?
Pas encore,
suis sur un soucis ergonomique en mode js désactivé mais en début d'am, je teste et je remonte info. A priori, le vhost devrait être la piste sérieuse.
A tout à l'heure et merci encore.
VirtualHost, me voici :
avec ceci
ServerName monsite.test
DocumentRoot lecteur:/chemin/de/mon/site/public
puis concernant les autres lignes, j'ai testé les 2 configurations avec et sans htaccess.
Le résultat est le même à savoir :
- navigation possible d'une page à l'autre
- ressources (autres que zend) inaccessibles :
De quoi se les bouffer, n'est il pas !!!NetworkError: 404 Not Found - http://monsite.test/chemin/de/mon/site/include/css/mon.css"
mais c'est normal c'est quoi ce include ? ton css doit être dans le dossier public
Ce include, c'est mon put... de dossier qui contient zend, css, scripts, images... et que je souhaite au même niveau que application et public.
La navigation entre les pages démontre que j'accède bien à ce \include\zend..., par contre je n'accède pas à ce même \include\css.
Et je n'imagine pas le zend framework m'obliger à coller mes ressources dans \public.
je comprend pas pourquoi tu t’embêtes, t'es pas obligé d'utiliser un dossier public, suffit de changer ton APPLICATION_PATH et c'est réglé,ton index.php tu le met ou tu veux
Ok,
de triste mémoire je crois avoir déjà essayé de zapper \public en mettant à la racine le index.php (qui instancie l'application) et le htaccess. De mémoire, zend ne retrouvait plus ses petits mais je n'ai plus les symptômes exacts, donc, je vais probablement encore re-tester, en mélangeant un peu toutes les remontées (vhost..).
Là je vais souffler un peu car ma curiosité commence à m’essouffler.
Mais ne soufflez pas trop vite, je ne vais pas lâcher le morceau.
si tu le mets à la racine t'as pas besoin d'avoir de vhost
faut juste bloquer l’accès au autres répertoires
Me revoilou,
et donc en basculant, ce qui parait être la solution la + simple, index.php + htaccess à la racine du site, j'obtiens mon désormais célèbre :
en vous assurant comme toujours que ce chemin est on ne peut plus correcte.NetworkError: 404 Not Found - http://chemin/de/mon/site/include/css/mon.css"
Sur ce je vais m'enfiler une grosse tartine de nutella avant de me les bouffer...
Et si tu suivais ce que l'on te dis, ne pas mettre de dossier include mais tout mettre dans ton dossier public ?
Oui bien sur je pourrais suivre ce conseil,
et également laisser zend gérer par défaut les controller, aller voter dimanche... mais il se trouve que je souhaite m'organiser comme bon me semble, ce que zend me permettait jusque là.
Et donc je ne veux pas que mes ressources se trouvent dans public : est ce si désastreux ? Et d'ailleurs, tant que je ne souhaite pas démarrer à la racine mais selon le standard \public\index.php, cela fonctionne très bien avec mes ressources où bon me semble !
Je ne pense pas que le soucis vienne de là, puisque j'accède bien aux librairies de zend de mon précieux \include.
Ceci dit, je peux aussi arrêter de chercher. C'est aussi + simple.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager