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

Apache Discussion :

Controleur avec Zend


Sujet :

Apache

  1. #1
    Membre averti

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 52
    Par défaut Controleur avec Zend
    Bonjour,

    Je suis le tutorial que vous pouvez trouver à cette adresse : http://g-rossolini.developpez.com/tu...age=controleur

    J'ai respecter ce qui est dis dans le tutorial (sur l'arborescence ainsi que les noms de fichiers et de classes).

    Mon problème viens de la classe IndexController qui est la suivante :
    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
    21
    22
    23
    24
    25
     
    <?php
     
    class IndexController extends Zend_Controller_Action 
    {
        function indexAction()
        {
            echo "<p>dans IndexController::indexAction()</p>";
        }
     
        function ajouterAction()
        {
            echo "<p>dans IndexController::ajouterAction()</p>";
        }
     
        function modifierAction()
        {
            echo "<p>dans IndexController::modifierAction()</p>";
        }
     
        function supprimerAction()
        {
            echo "<p>dans IndexController::supprimerAction()</p>";
        }
    }
    quand je tape : http://localhost/zf-tutorial/ , il est bien affiché : "dans IndexController::indexAction()"
    or quand je tape : http://localhost/zf-tutorial/ajouter : il me sort
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    404 Not found
    The requested URL /zf-tutorial/ajouter was not found on this server
    Que puis-je faire pour corriger ce problème ?

    Merci d'avance pour vos réponses

  2. #2
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Salut

    Es-tu sûr d'avoir activé le mod_rewrite dans Apache et d'avoir mis en place le .htaccess ?

  3. #3
    Membre averti

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 52
    Par défaut
    En effet, j'avais des soupsons sur le fait que cela pouvait venir de là.

    moi j'avais fait comme dans le tuto : mettre un fichier .htaccess là où il faut sauf que ce fichier n'a pas l'air de marcher.

    Donc suite à votre réponse, j'ai regarder dans httpd.conf et j'ai vu la chose suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    # LoadModule rewrite_module modules/mod_rewrite.so
    j'ai donc enlever le #

    Mais cela ne marche toujours pas car je crois que les fichiers .htaccess ne sont pas interpretés.

    Comment faire pour que le serveur interprete ce genre de fichier.
    J'ai vu qu'il était question de AllowOverride mais il n'y a pas d'AllowOverride global : ils sont tous dans des balises du type <Directory chemin> </Directory>

    Comment faire pour activer les fichiers .htaccess sachant que mon projet se trouve dans un alias

  4. #4
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Oui, c'est bien cela. Il faut modifier celui qui correspond au DocumentRoot.

  5. #5
    Membre averti

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 52
    Par défaut
    J'ai pas très bien compris votre réponse.

    Dans mon fichier httpd.conf j'ai la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DocumentRoot "C:/Program Files/Apache Group/Apache2/htdocs"
    ainsi que cela :
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    <Directory "C:/Program Files/Apache Group/Apache2/htdocs">
     
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs-2.0/mod/core.html#options
    # for more information.
    #
        Options Indexes FollowSymLinks
     
    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
        AllowOverride None
     
    #
    # Controls who can get stuff from this server.
    #
        Order allow,deny
        Allow from all
     
    </Directory>
    Or comme je vous l'ai dis mon projet n'est pas dans un sous répertoire de ce chemin mais tout à fait autre part sur mon disque dur et pointé par un alias du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Alias /zf-tutorial "c:/chemin"
    Comment dois-je faire pour que AllowOverride marche avec cet alias ?

    PS: J'ai quand même essayé de mettre All sur AllowOverride dans la balise du DocumentRoot mais ça ne marche toujours pas (c un peu normal mais bon...)

  6. #6
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    N'oublie pas de redémarrer ton serveur lorsque tu modifies le .htaccess.
    Sinon, je ne sais pas si tu as remarqué mais la directive <Directory> prend en paramètre un chemin système, cela na donc aucun rapport avec le fait que ce soit un alias ou non.

  7. #7
    Membre averti

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 52
    Par défaut
    Bon voilà j'ai essayé de configurer mon apache avec les conseils que vous m'avez donnés.

    Donc j'ai ajouté une balise <directory> dans httpd.conf comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <Directory "F:\Mes Documents\Nicolas\php zend tuto">
    	AllowOverride All
    </Directory>
    Voici également le contenue du fichier .htaccess qui se trouve à la racine du site :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    RewriteEngine on
    RewriteRule .* index.php
    php_flag magic_quotes_gpc off
    php_flag register_globals off
    J'ai redemarré mon serveur et tapé l'url : http://localhost/zf-tutorial/
    et là il me met :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Bad Request
     
    Your browser sent a request that this server could not understand.
    Apache/2.0.54 (Win32) PHP/5.2.1 Server at 127.0.0.1 Port 80
    Or quand je renomme le fichier .htaccess en a.htaccess il m'affiche bien la page principale mais toujours pas le contenue des actions ajouter, modifier, et supprimer

    Donc peut-être ai-je oublié des choses dans la balise Directory de Apache.

    Je vous pose cette question car je n'ai jamais configuré un serveur apache donc je ne sais pas ce que l'on peut mettre dans une balise Directory

    Merci de votre aide

  8. #8
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Je ne suis pas un grand spécialiste non plus... Enlève les php_flag, pour voir ? (En t'assurant que le php.ini est configuré de cette manière)

Discussions similaires

  1. Réponses: 5
    Dernier message: 21/12/2007, 23h33
  2. Réponses: 5
    Dernier message: 22/05/2007, 14h27
  3. Problème de base de données avec Zend exception PDO
    Par websurfeur dans le forum Zend Framework
    Réponses: 8
    Dernier message: 20/04/2007, 16h49
  4. Insert avec zend framework
    Par rugby_roux dans le forum Zend
    Réponses: 1
    Dernier message: 30/01/2007, 17h22
  5. Réponses: 8
    Dernier message: 20/01/2006, 13h46

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