IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Passage en prod, manque du index.php dans les uri [1.x]


Sujet :

Symfony PHP

  1. #1
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Août 2006
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Santé

    Informations forums :
    Inscription : Août 2006
    Messages : 55
    Par défaut Passage en prod, manque du index.php dans les uri
    Bonjour,

    Je viens de développer une appli en dev avec symfony. Tout fonctionne correctement. Donc je décide de passer en prod pour voir. Et là j'ai le routing qui déconne pour l'appli par défaut, soit index.php. Les autres continuent de fonctionner correctement, les helpers également.

    En pratique, ce qui pose problème c'est que le /index.php/ disparaît de l'URI et symfony ne trouve donc pas http://monsite.fr/monmodule/index. Tout revient dans l'ordre quand l'url devient http://monsite.fr/index.php/monmodule/.

    Je n'arrive pas à trouver de solution propre dans la doc et sur le net à ce comportement (qui ne soit pas rajouter des index.php un peu partout, j'entends)... Quelqu'un aurait une idée ? J'ai certainement dû passer à côté d'un truc... mais je n'arrive pas à trouver lequel...

  2. #2
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Août 2006
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Santé

    Informations forums :
    Inscription : Août 2006
    Messages : 55
    Par défaut
    Je me réponds à moi-même : je viens d'avoir une idée... Symphony n'est probablement pas coupable mais plutôt le serveur web et son mod_rewrite.

    Je teste et je vous confirme ça.

  3. #3
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Ceci aurait été ma première réponse

  4. #4
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Août 2006
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Santé

    Informations forums :
    Inscription : Août 2006
    Messages : 55
    Par défaut
    Sauf que pour le moment, ça n'a rien solutionné... Je recreuserai du côté du mod_rewrite demain... Des fois que je trouve une option miracle, mais d'un côté, si le routing fonctionne, c'est bien qu'il est correctement activé... Mais ce tocard d'index.php disparaît quand même.

  5. #5
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    En production, et par défaut, index.php n'apparaît pas.

    C'est la configuration de base de symfony qui veut cela.

    Et c'est, à mon avis, le meilleur comportement pour le site.

    Donc à priori, tu as le comportement standard et il marche.

    Il y a une option qui permet de désactiver cette option au niveau de symfony, je ne sais plus où, mais je peux regarder si c'est ce que tu souhaites.

  6. #6
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Août 2006
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Santé

    Informations forums :
    Inscription : Août 2006
    Messages : 55
    Par défaut
    C'est bien mon avis aussi que la disparition du 'index.php' soit une bonne pratique. Et ça ne m'étonne pas que ce soit la pratique par défaut de symfony.

    Mais du coup, ça met un peu le mod_rewrite hors de cause, vu qu'il prouve au contraire qu'il fonctionne bien.

    Donc, pour reformuler mon soucis, ce n'est pas tant que l'index.php disparaisse qui pose problème mais que symfony ne sache pas interprêter http://monsite.fr/module/index quand http://monsite.org/monapp_dev.php/module/index et http://monsite.fr/index.php/module/index fonctionnent.

  7. #7
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Vérifie que ton htaccess soit bien pris en compte. C'est lui qui prépare la route pour que symfony puisse l'interpréter.

    Tu ne donnes pas l'OS chez toi ni l'OS sur le serveur ce qui ne laisse pas la place à un ciblage des possibilités. Mais, une fois la vérification faîte que sur le serveur de prod, le module rewrite est activé, il y a 90% de chance que le problème provienne du htaccess. Les 10% vont être tellement pénible à gérer que je préfère ne pas envisager ce qui s'y cache (et la petite voix dit : "c'est parce qu'il n'a aucune autre idée qu'il dit cela ! ")

  8. #8
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Août 2006
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Santé

    Informations forums :
    Inscription : Août 2006
    Messages : 55
    Par défaut
    Ben le truc c'est que le mod_rewrite fonctionne bien sur le reste... donc j'aurais plutôt tendance à penser que c'est le moteur de routing de symfony qui prend alors la main et bute sur l'absence de l'index.php... alors qu'il est prévu pour normalement.

    Pour le .htaccess, je n'utilise que celui créé par défaut par symfony dans /web/ (je ne gère pas toutes les subtilités de l'htaccess donc je ne l'ai pas modifié).

    A noter que j'ai essayé d'activer l'option "RewriteBase /" sans résultat.

    Et pour les serveurs :
    • Dev : apache 2 sur Gentoo/Linux
    • Prod : Apache 2 sur Debian GNU/Linux
    • J'ai abandonné temporairement un déploiement de test chez Free, justement à cause du mod_rewrite de Free
    • Je vais peut-être tenter aussi un test sur un autre serveur (Linux aussi a priori + Apache 2) auquel j'ai accès

  9. #9
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Dans nos URL améliorées par symfony, le mod_rewrite gère essentiellement la disparition de index.php.

    Si ton application fonctionne bien avec frontend_dev.php où tous autres contrôleurs, tu peux être sur qu'il n'y a aucun problème avec le moteur de routage de symfony.

    C'est les règles pour le mod_rewrite dans le htaccess qui permettent de "virer" index.php de l'url.

    Question bête, tu n'as pas oublié le "." devant le nom du fichier ?

    Deuxième question bête, tu as vérifié les droits sur le fichier pour être sur que le système puisse le lire ?

    Troisième question bête, peux-tu vérifier (par des changements aberrants) que le htaccess est bien pris en compte ?

  10. #10
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Août 2006
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Santé

    Informations forums :
    Inscription : Août 2006
    Messages : 55
    Par défaut
    Bon, un "cp web/.htaccess web/.toto" ne semble pas changer le comportement de l'appli...

    Pourtant j'ai vérifié que rewrite est activé dans apache et que la prise en compte du .htaccess est bien dans le fichier de conf...

    On a déjà isolé le problème, c'est un grand pas en avant, merci.

  11. #11
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Août 2006
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Santé

    Informations forums :
    Inscription : Août 2006
    Messages : 55
    Par défaut
    Hop ! La réponse se situait tout naturellement dans un "AllowOverride all".

    Merci Mimi68 pour le coup de main !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Joomla!] Passer une valeur d'un fichier templateDétails template "index.php" dans un fichier "index.php
    Par jacma dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 02/02/2015, 10h29
  2. Encapsuler une page index.php dans une page index.html
    Par gorderson dans le forum Débuter
    Réponses: 1
    Dernier message: 04/10/2013, 21h07
  3. Réponses: 6
    Dernier message: 31/01/2013, 23h17
  4. [Index] Utilisation dans les jointures..
    Par argv666 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 07/03/2006, 14h07
  5. ouverture des balises PHP dans les include
    Par FoxLeRenard dans le forum Langage
    Réponses: 5
    Dernier message: 30/01/2006, 12h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo