Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework > MVC
MVC Forum de support sur le développement d'applications de type modèle-vue-contrôleur avec Zend Framework ainsi que vos questions sur les plugins, les helpers etc. Avant de poster -> Cours MVC, FAQ ZF Controller
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/07/2007, 09h45   #1
Membre confirmé
 
Inscription : avril 2007
Messages : 313
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 313
Points : 243
Points : 243
Par défaut Erreur 404 sur appel de vues dans tuto de Rob

Salut à tous,

je suis en train de faire le tuto de Rob Allen (traduit par Guillaume Rossolini, merci ), mais j'ai manifestement un problème.

Configuration:
----------------
MAMP v1.5b1, soit Apache 2.0 et PHP5.2.0
mod_rewrite activé
----------------

L'adresse http://localhost:8888/zf-tutorial/ "fonctionne" (c'est-à-dire que je me retrouve bien dans index.php)

En revanche, dès que j'essaye d'appeler une vue du contrôleur Index, je tombe sur du 404:

http://localhost:8888/zf-tutorial/index/index
http://localhost:8888/zf-tutorial/index/ajouter
http://localhost:8888/zf-tutorial/index/modifier
http://localhost:8888/zf-tutorial/index/supprimer

Ces adresses-là ne fonctionne pas.

J'ai ajouté

Code :
$frontController->setBaseUrl('/zf-tutorial/');
dans index.php, comme indiqué dans la section "Résolution des problèmes" en fin de tuto, mais rien n'a changé.

Une idée ?

Merci aux bonnes âmes qui répondront ainsi qu'à tous ceux qui prendront la peine de lire ceci mais qui n'ont pas de solution à proposer.
*.Har(d)t est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2007, 10h11   #2
Invité régulier
 
Inscription : avril 2006
Messages : 14
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : avril 2006
Messages : 14
Points : 5
Points : 5
Envoyer un message via MSN à allbizznet
bonjour.
Et concernant le fichier .htaccess ?
tout est redirigé sur index.php ?
allbizznet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2007, 10h21   #3
Membre confirmé
 
Inscription : avril 2007
Messages : 313
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 313
Points : 243
Points : 243
Citation:
Envoyé par allbizznet
bonjour.
Et concernant le fichier .htaccess ?
tout est redirigé sur index.php ?
Pardon pour l'oubli

Effectivement c'est redirigé normalement, puisque j'ai suivi à la lettre le tutorial.

Voici le contenu du fichier .htaccess qui se trouve à la racine du projet, dans le répertoire zf-tutorial:

Code :
1
2
3
4
5
RewriteEngine on
RewriteRule .* index.php
 
php_flag magic_quotes_gpc off
php_flag register_globals off
*.Har(d)t est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2007, 10h52   #4
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
regarde dans la configuration d'Apache si tu n'as pas un "AllowOverride none" qui interdirai l'utilisation des fichiers .htaccess
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2007, 11h09   #5
Membre confirmé
 
Inscription : avril 2007
Messages : 313
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 313
Points : 243
Points : 243
Citation:
Envoyé par mathieu
regarde dans la configuration d'Apache si tu n'as pas un "AllowOverride none" qui interdirai l'utilisation des fichiers .htaccess
Je pense que de ce côté-là, ça fonctionne, puisque j'ai créé des fichiers .htaccess dans certains sous-dossiers, comme prévu dans le tuto, pour interdire l'accès direct à ces sous-dossiers (par exemple /application/library). Effectivement, le serveur répond 403 dans ce cas-là, donc le .htaccess fonctionne.

Voici toutefois ce que j'ai trouvé dans le httpd.conf, qui je pense doit correspondre à la gestion des accès (car il y a plusieurs directives Allow Override) :

Code :
1
2
3
4
5
6
7
8
9
10
11
# Each directory to which Apache has access can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories). 
#
# First, we configure the "default" to be a very restrictive set of 
# features.  
#
<Directory />
    Options Indexes FollowSymLinks
    AllowOverride All
</Directory>
*.Har(d)t est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2007, 12h02   #6
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
Citation:
Envoyé par *.Har(d)t
Voici toutefois ce que j'ai trouvé dans le httpd.conf, qui je pense doit correspondre à la gestion des accès (car il y a plusieurs directives Allow Override) :
là c'est les droits généraux à la racine, c'est possible qu'il y aie des autres directives qui modifient le code que tu as montrée

pour les erreurs 403, est ce que le contenu du répertoire s'affiche quand tu renommes le fichier .htaccess ?
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2007, 12h17   #7
Membre confirmé
 
Inscription : avril 2007
Messages : 313
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 313
Points : 243
Points : 243
Citation:
Envoyé par mathieu
là c'est les droits généraux à la racine, c'est possible qu'il y aie des autres directives qui modifient le code que tu as montrée

pour les erreurs 403, est ce que le contenu du répertoire s'affiche quand tu renommes le fichier .htaccess ?
Il y a des AllowOverride None, mais ils ne concernent que des répertoires précis de MAMP :

Code :
1
2
3
4
5
6
<Directory "/Applications/MAMP/Library/icons">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
Code :
1
2
3
4
5
6
<Directory "/Applications/MAMP/bin/phpMyAdmin">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
Code :
1
2
3
4
5
6
<Directory "/Applications/MAMP/bin/SQLiteManager">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
Code :
1
2
3
4
5
6
<Directory "/Applications/MAMP/bin/mamp">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<Directory "/Applications/MAMP/Library/manual">
    Options Indexes
    AllowOverride None
    Order allow,deny
    Allow from all
 
    <Files *.html>
        SetHandler type-map
    </Files>
 
    SetEnvIf Request_URI ^/manual/de/ prefer-language=de
    SetEnvIf Request_URI ^/manual/en/ prefer-language=en
    SetEnvIf Request_URI ^/manual/es/ prefer-language=es
    SetEnvIf Request_URI ^/manual/fr/ prefer-language=fr
    SetEnvIf Request_URI ^/manual/ja/ prefer-language=ja
    SetEnvIf Request_URI ^/manual/ko/ prefer-language=ko
    SetEnvIf Request_URI ^/manual/ru/ prefer-language=ru
    RedirectMatch 301 ^/manual(?:/(de|en|es|fr|ja|ko|ru)){2,}(/.*)?$ /manual/$1$2
</Directory>
Code :
1
2
3
4
5
6
<Directory "/Applications/MAMP/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>
Si je renomme le .htaccess en "toto" dans un sous-répertoire, j'obtiens bien la liste du contenu.
*.Har(d)t est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2007, 12h28   #8
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
Citation:
Envoyé par *.Har(d)t
Si je renomme le .htaccess en "toto" dans un sous-répertoire, j'obtiens bien la liste du contenu.
d'accord donc ça confirme que les fichiers .htaccess sont bien pris en compte et donc je n'ai absolument aucune autre idée pour t'aider
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2007, 12h33   #9
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
Où se situe index.php dans ton arborescence ?
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2007, 12h46   #10
Membre confirmé
 
Inscription : avril 2007
Messages : 313
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 313
Points : 243
Points : 243
Citation:
Envoyé par mathieu
d'accord donc ça confirme que les fichiers .htaccess sont bien pris en compte et donc je n'ai absolument aucune autre idée pour t'aider
Merci quand même

Citation:
Envoyé par vg33
Où se situe index.php dans ton arborescence ?
index.php est situé directement dans le répertoire zf-tutorial. Voici le détail de l'arborescence (sauf le répertoire Zend, qui est trop volumineux pour être détaillé ici, mais que certains connaissent sûrement déjà
Je n'ai pas mis les .htaccess non plus.

Code :
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
 
zf-tutorial
|_index.php
|_application
   |_config.ini
   |_controllers
      |_IndexController.php
   |_library
      |_Zend
   |_models
   |_public
      |_images
      |_scripts
      |_styles
         |_site.css
   |_views
         |_filters
         |_helpers
         |_scripts
            |_footer.phtml
            |_header.phtml
            |_index
               |_ajouter.phtml
               |_index.phtml
               |_modifier.phtml
               |_supprimer.phtml
*.Har(d)t est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2007, 13h16   #11
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
Citation:
Envoyé par *.Har(d)t
Voici le détail de l'arborescence
chez moi le répertoire "library" et au même niveau que "application". mais ça ne change rien à ton problème actuel, c'est un point à vérifier plus tard si tu as une erreur PHP

pour ton problème actuel, j'ai peut-être trouvé autre chose, essaye ça dans le fichier .htaccess :
Code :
1
2
3
4
5
6
7
RewriteEngine on
RewriteBase /zf-tutorial/
 
RewriteRule .* index.php
 
php_flag magic_quotes_gpc off
php_flag register_globals off
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2007, 13h31   #12
Membre confirmé
 
Inscription : avril 2007
Messages : 313
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 313
Points : 243
Points : 243
Citation:
Envoyé par mathieu
chez moi le répertoire "library" et au même niveau que "application". mais ça ne change rien à ton problème actuel, c'est un point à vérifier plus tard si tu as une erreur PHP

pour ton problème actuel, j'ai peut-être trouvé autre chose, essaye ça dans le fichier .htaccess :
Code :
1
2
3
4
5
6
7
RewriteEngine on
RewriteBase /zf-tutorial/
 
RewriteRule .* index.php
 
php_flag magic_quotes_gpc off
php_flag register_globals off
Ah ah ah ! On progresse !

Effectivement, en vérifiant dans le tuto, la structure des répertoires n'était pas bonne. Heureusement que tu l'as remarqué !

J'ai créé mes répertoires en ligne de commande et je n'ai pas fait trop attention, j'ai fait une fausse manip.

En remontant /library et /public dans /zf-tutorial, le fichier index.php affiche maintenant un titre en gras "Mes albums"

Par contre, le problème sur les url type http://localhost:8888/zf-tutorial/index/ajouter est toujours d'actualité, avec ou sans la modif dans le .htaccess

Merci en tout cas pour ce premier pas dans la bonne direction, ça m'apprendra à être plus attentif !

EDIT:

Ca n'aura pas fonctionné longtemps !
Maintenant il mouline pour interpréter index.php, et finalement il me propose de le télécharger !
Et il n'affiche plus "Mes albums", comme la première fois.

Bref, status quo...
*.Har(d)t est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2007, 14h06   #13
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
pour l'erreur du fichier index, essaye de redémarrer Apache à tout hasard

qu'est ce qui apparait dans les log d'erreur et d'accès quand tu as l'erreur 404 ?
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2007, 14h35   #14
Membre confirmé
 
Inscription : avril 2007
Messages : 313
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 313
Points : 243
Points : 243
Citation:
Envoyé par mathieu
pour l'erreur du fichier index, essaye de redémarrer Apache à tout hasard

qu'est ce qui apparait dans les log d'erreur et d'accès quand tu as l'erreur 404 ?
J'ai redémarré Apache, mais ça ne change rien.

J'en ai profité pour modifier la config de MAMP et repasser sur le port 80, pour ne plus avoir besoin de spécifier le port dans l'URL, mais rien à faire, même sur le port standard ça ne marche pas.

Ta question est intéressante, ça me donne une poiste : En vérifiant le log, j'ai l'impression que ce qui merde c'est surtout l'existence du répertoire "index", car quelle que soit l'url appelée, il bloque au niveau de "index" (et pas "index/ajouter" par exemple)

Code :
[Tue Jul 10 14:28:43 2007] [error] [client 127.0.0.1] File does not exist: /Users/Philippe/Documents/www/zf-tutorial/index
J'en ai des lignes et des lignes, toutes les mêmes.

EDIT:
------

Cette piste me fait penser qu'il s'agir très certainement d'un problème de réécriture Apache.
Je vais tout reprendre à zéro...
*.Har(d)t est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2007, 14h51   #15
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
Personnellement, j'ai suivi les préconisations de Zend pour l'arborescence, et ça marche pour le même tutoriel :
Code :
1
2
3
4
5
6
7
8
9
|_zf-tutorial
    |_application
    |_library
    |_www
        |_css
        |_images
        |_js
        |_.htaccess
        [_index.php
Le .htaccess dans cette arborescence est celui qui configure le rewriting.
Chez moi, ça fonctionne.
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2007, 18h56   #16
Membre confirmé
 
Inscription : avril 2007
Messages : 313
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 313
Points : 243
Points : 243
Bon j'arrive à le faire tourner sur Windows sous WAMP maintenant, mais sous MAMP sous Mac OS X ça veut pas.

Probablement un AllowOverride dans un fichier conf, mais pas moyen de mettre la main dessus.
*.Har(d)t est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2007, 20h06   #17
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
Citation:
Envoyé par *.Har(d)t
Probablement un AllowOverride dans un fichier conf, mais pas moyen de mettre la main dessus.
mets le fichier httpd.conf en pièce jointe si tu veux qu'on jette un coup d'oeil
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h24.


 
 
 
 
Partenaires

Hébergement Web