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

MVC PHP Discussion :

Index.php à la racine versus \public


Sujet :

MVC PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    87
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 87
    Par défaut Index.php à la racine versus \public
    Bonjour à toutes et tous,

    je dois mettre en place un site sur un serveur mutualisé pour lequel l'index.php devra se situer à sa racine et non dans le classique /public

    Voici donc en local, dans un 1er temps, mon arborescence :
    \application (classique ZF)
    \public (classique zf) avec son traditionnel index.php
    \include qui contient \zend..., \css, \scripts, \images...
    A la racine, index.php qui se contente d'un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include 'public/index.php';
    Et maintenant voici ce qui se passe :

    1 - en collant le .htaccess dans \public :

    - la page index.php s'affiche correctement avec prise en compte des css, scripts... Tout va bien
    - par contre impossible de naviguer sur les autres pages
    The requested URL /monsite/galerie was not found on this server.
    2 - en collant le même .htaccess à la racine, soit un cran au-dessus de public

    - je peux naviguer dans toutes les pages avec la même url que ci-dessus
    - par contre je n'ai plus accès à mes ressources \css, \scripts... alors que le chemin indiqué dans firebug est correct et que dans le même temps, \zend situé dans le même répertoire \include est lui parfaitement fonctionnel

    404 Not Found - http://localhost/monsite/include/css/mon.css"
    Je me suis bien inspiré de http://blog.generation-pc.net/2011/0...ent-mutualise/ et de son original en anglais, mais rien n'y fait.

    Demandez moi les contenus de fichier que vous souhaitez pour régler cette question :

    comment démarrer son site depuis la racine et non depuis \public ?

    Merci à tous

  2. #2
    Membre très actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Par défaut
    Salut.

    Est-ce que tu pourrais nous montrer le code de ton index.php STP ?

    DarkSeiryu

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    87
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 87
    Par défaut \public\index.php
    Salut, aucun soucis, le voici :

    \public\index.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <?php
     
        define('GLOBAL_INCLUDE_PATH', "http://".$_SERVER['HTTP_HOST'].'/include/');
        defined('APPLICATION_PATH') || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
        defined('APPLICATION_ENV') || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
     
        // Inclusion de la librairie ZendF dans l'include_path
        set_include_path(implode(PATH_SEPARATOR, array(
            realpath(APPLICATION_PATH . '/../include/zend/library'),
            realpath(APPLICATION_PATH . '/../include'),
            get_include_path(),
        )));
     
        require_once 'Zend/Application.php';
        $application = new Zend_Application(APPLICATION_ENV, APPLICATION_PATH . '/configs/application.ini');
     
        $application->bootstrap()
                    ->run();
     
    ?>
    Rien que du très classique.

    Et pour rappel, je n'ai pas accès aux ressources autres que le Zend malgré des urls vers celles-ci correctes en debug (j'insiste).

    Merci d'avance de ton intérêt.

  4. #4
    Membre très actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Par défaut
    Ton dossier include où se trouve la librairie Zend, où qu'il se trouve ? Parce que si il est dans ton projet comme l'indique realpath(APPLICATION_PATH . '/../include/zend/library'), ton include 'public/index.php';, dans le index.php à la racine de ton projet, fausse tout.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    87
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 87
    Par défaut
    Il se trouve au même niveau que application et public.
    Comme je l'ai indiqué :

    \application
    \models
    \config
    \....
    \include
    \zend\library\Zend\..
    \css
    \scripts
    \images
    \public

    ce qui justifie que pour y accéder on remonte d'un niveau par rapport à APPLICATION_PATH.

    D'ailleurs, aucun soucis du point de vue de zend puisque la navigation entre les pages fonctionne. En revanche, aucun accès à css, scripts... qui se trouvent au même niveau que zend pourtant.

  6. #6
    Membre très actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Par défaut
    Effectivement, j'aurais dû vérifier le fonctionnement du include avant de parler... Ben du coup désolé mais je ne vois pas d'om ça peut venir. Peut-être du .htaccess mais j'suis à la masse là-dessus.

    Bon courage.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    87
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 87
    Par défaut
    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 !

  8. #8
    Membre Expert
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Par défaut
    Citation Envoyé par Flamenco Voir le message
    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 !
    ServerName c'est l'url par laquelle tu voudra accéder à ton site, c'est généralement ton host.
    Et DocumentRoot c'est le chemin absolu vers ton dossier public

Discussions similaires

  1. redirection de index.php vers racine
    Par redah75 dans le forum Référencement
    Réponses: 4
    Dernier message: 10/05/2012, 13h15
  2. htaccess protection du rép sauf index.php - possible?
    Par nagouille dans le forum Apache
    Réponses: 5
    Dernier message: 28/02/2006, 08h28
  3. [MySQL] les messages de mon index.php.
    Par cari dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 18/01/2006, 09h21
  4. Réponses: 2
    Dernier message: 29/10/2005, 17h15
  5. exécution des fichiers index.php
    Par berry dans le forum Apache
    Réponses: 4
    Dernier message: 20/12/2004, 20h29

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