Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework
Zend Framework Forum d'entraide sur la programmation PHP avec Zend Framework. Avant de poster -> FAQ ZF, Cours ZF
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 20/04/2008, 19h21   #1
Membre Expert
 
Avatar de gwinyam
 
Homme Mathieu ROBIN
Développeur Web
Inscription : mai 2006
Messages : 1 116
Détails du profil
Informations personnelles :
Nom : Homme Mathieu ROBIN
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mai 2006
Messages : 1 116
Points : 2 142
Points : 2 142
Par défaut Erreur 404 systématique

Bonjour!

J'ai suivi le tuto pour démarrer avec le Zend Framework sous MVC et l'autre non-MVC. Voulant développer un petit site avec MVC, j'ai créer quelques classes en suivant le modèle du premier tuto cité plus haut.

Mais hormis sur la toute première page, l'index, je n'ai systématiquement que des erreurs 404.

Je ne comprends pas, alors si vous pouviez me débloquer.
Voilà l'arborescence du site:
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
+ localhost
    + application
        + controllers
            - ActuController.php
            - ArticleController.php
            - IndexController.php
            - UtilisateurController.php
        + models
            - Actu.php
            - Article.php
            - Utilisateur.php
        + views
            + filters
            + helpers
            + scripts
                + Actu
                    - index.phtml
                + Article
                    - index.phtml
                + Index
                    - index.phtml
                    - test.phtml
                + Utilisateur
                    - index.phtml
                - footer.phtml
                - header.phtml
        - .htacces
        - actu.ini
        - article.ini
        - config.ini
        - index.ini
        - utilisateur.ini
    + library
        + Zend    // Zend Framework
        - .htaccess
    + public
        + images
        + scripts
            + Scriptaculous
            + ExtJS
        + styles
            - actu.css
            - article.css
            - config.css
            - index.css
            - utilisateur.css
        - .htaccess
    - .htaccess
    - index.php
J'ai un fichier de configuration .ini par controller en plus d'un général pour la connexion à la base de données. Idem pour les feuilles de style.

J'ai donc respecté l'arborescence suggérée, enfin il me semble.
Voilà le code du fichier index.php à la racine:
Code php :
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
<?php
error_reporting(E_ALL|E_STRICT);
date_default_timezone_set('Europe/Paris');
 
// Chargement des classes
set_include_path('.'.PATH_SEPARATOR.'./library'.PATH_SEPARATOR.'./application/models/'.PATH_SEPARATOR.get_include_path());
include_once("Zend/Loader.php");
Zend_Loader::loadClass('Zend_Controller_Front');
Zend_Loader::loadClass('Zend_Config_Ini');
Zend_Loader::loadClass('Zend_Registry');
Zend_Loader::loadClass('Zend_Db');
Zend_Loader::loadClass('Zend_Db_Table');
 
// Configuration générale
$config_general = new Zend_Config_Ini('./application/config.ini', 'general');
$registry = Zend_Registry::getInstance();
$registry->set('config', $config_general);
 
// Configuration de la base de données
$db = Zend_Db::factory($config_general->db->adapter, $config_general->db->config->toArray());
Zend_Db_Table::setDefaultAdapter($db);
 
// Mise en place du controleur
$frontController = Zend_Controller_Front::getInstance();
$frontController->throwExceptions(true);
$frontController->setControllerDirectory('./application/controllers');
$frontController->dispatch();
?>

Si je fais :
  • localhost : niquel, j'ai ce que je veux
  • localhost/index : là j'ai plus rien à part un beau 404
  • localhost/Actu : et là pareil
  • n'importe quelle URL autre que localhost : 404

Vous sauriez à quoi c'est dû? Je me suis cassé toute la journée là dessus et je commence à en avoir ras-le-bol

Merci d'avance
gwinyam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2008, 20h26   #2
Expert Confirmé
 
Avatar de Eusebe
 
Inscription : mars 2006
Messages : 1 989
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : mars 2006
Messages : 1 989
Points : 3 606
Points : 3 606
Salut !

Tu as bien mis les fichiers .htaccess comme c'est indiqué dans le tuto ?

Si oui, as-tu bien activé le module mod_rewrite d'apache ?
Eusebe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2008, 21h10   #3
Membre Expert
 
Avatar de gwinyam
 
Homme Mathieu ROBIN
Développeur Web
Inscription : mai 2006
Messages : 1 116
Détails du profil
Informations personnelles :
Nom : Homme Mathieu ROBIN
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mai 2006
Messages : 1 116
Points : 2 142
Points : 2 142
Oui pour les fichiers htaccess et pareil pour le mod_rewrite...
gwinyam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2008, 10h05   #4
Expert Confirmé Sénior
 
Avatar de GrandFather
 
Inscription : mai 2004
Messages : 4 490
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : mai 2004
Messages : 4 490
Points : 5 049
Points : 5 049
Bonjour,
Citation:
Envoyé par gwinyam Voir le message
Mais hormis sur la toute première page, l'index, je n'ai systématiquement que des erreurs 404.
As-tu défini une méthode indexAction() pour chacun de tes contrôleurs ?
__________________
FAQ XML
------------
« Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
Giacomo Leopardi
GrandFather est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2008, 10h45   #5
Membre Expert
 
Avatar de gwinyam
 
Homme Mathieu ROBIN
Développeur Web
Inscription : mai 2006
Messages : 1 116
Détails du profil
Informations personnelles :
Nom : Homme Mathieu ROBIN
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mai 2006
Messages : 1 116
Points : 2 142
Points : 2 142
Citation:
Envoyé par GrandFather Voir le message
As-tu défini une méthode indexAction() pour chacun de tes contrôleurs?
Oui c'est le cas. Je ne comprends vraiment pas mon problème, j'ai continué de fouiller et je ne trouve pas
gwinyam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2008, 12h02   #6
Expert Confirmé
 
Avatar de Eusebe
 
Inscription : mars 2006
Messages : 1 989
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : mars 2006
Messages : 1 989
Points : 3 606
Points : 3 606
Si tu as une erreur 404, c'est à mon avis un problème de redirection de l'adresse qui se fait mal.

Pour s'en convaincre, rediriges tes liens vers toto.php (qui n'existe pas), et essaie d'accéder à ton index.php (qui est le seul à fonctionner si je comprend bien).

Si tu le vois toujours, c'est bien un problème de règles de réécriture. Si c'est le cas, peux-tu nous dire comment tu as créé ton fichier .htaccess, et nous en poster le contenu ?
Eusebe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2008, 14h59   #7
Membre Expert
 
Avatar de gwinyam
 
Homme Mathieu ROBIN
Développeur Web
Inscription : mai 2006
Messages : 1 116
Détails du profil
Informations personnelles :
Nom : Homme Mathieu ROBIN
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mai 2006
Messages : 1 116
Points : 2 142
Points : 2 142
Je ne peux pas tester ça tout de suite (je travaille là dessus en local chez moi et là je suis au taf), par contre j'ai pu voir dans une sauvegarde de mes sources que mon code dans le htaccess est:
Code :
1
2
3
4
5
6
 
RewriteEngine on
RewriteRule .* index.php
 
php_flag magic_quotes_gp off
php_flag register_globals off
Il y a une faute au niveau des magic_quotes, j'ai oublié le c à la fin de gp, mais je ne pense pas que ce soit ça, quand même. Si?
gwinyam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2008, 15h30   #8
Expert Confirmé
 
Avatar de Eusebe
 
Inscription : mars 2006
Messages : 1 989
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : mars 2006
Messages : 1 989
Points : 3 606
Points : 3 606
Citation:
Envoyé par gwinyam Voir le message
Il y a une faute au niveau des magic_quotes, j'ai oublié le c à la fin de gp, mais je ne pense pas que ce soit ça, quand même. Si?
Je ne pense pas que ça vienne de là non plus...

Une autre façon de tester aussi ce soir chez toi, pour vérifier si ça viens de la redirection ou du framework Zend, c'est de remplacer tout le contenu de ton fichier index.php à la racine par un texte.

Si quelle que soit l'adresse saisie tu tombes sur ton texte, c'est que la redirection fonctionne et que le problème viens d'ailleurs...
Eusebe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2008, 20h59   #9
Membre Expert
 
Avatar de gwinyam
 
Homme Mathieu ROBIN
Développeur Web
Inscription : mai 2006
Messages : 1 116
Détails du profil
Informations personnelles :
Nom : Homme Mathieu ROBIN
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mai 2006
Messages : 1 116
Points : 2 142
Points : 2 142
Citation:
Envoyé par Eusebe Voir le message
Une autre façon de tester aussi ce soir chez toi, pour vérifier si ça viens de la redirection ou du framework Zend, c'est de remplacer tout le contenu de ton fichier index.php à la racine par un texte.

Si quelle que soit l'adresse saisie tu tombes sur ton texte, c'est que la redirection fonctionne et que le problème viens d'ailleurs...
J'ai essayé, je continue d'avoir le même problème. J'ai le texte remplaçant quand je vais sur index.php, mais je continue d'avoir une 404 sur toutes les autres adresses que je pourrais tester...


J'ai essayé ton autre astuce avec les toto.php inexistants, je vois toujours ma page index.php s'affichait correctement et évidemment les liens me sortent une 404.

Je suis vraiment perdu là
gwinyam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/04/2008, 09h46   #10
Expert Confirmé
 
Avatar de Eusebe
 
Inscription : mars 2006
Messages : 1 989
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : mars 2006
Messages : 1 989
Points : 3 606
Points : 3 606
Citation:
Envoyé par gwinyam Voir le message
J'ai essayé, je continue d'avoir le même problème. J'ai le texte remplaçant quand je vais sur index.php, mais je continue d'avoir une 404 sur toutes les autres adresses que je pourrais tester...


J'ai essayé ton autre astuce avec les toto.php inexistants, je vois toujours ma page index.php s'affichait correctement et évidemment les liens me sortent une 404.

Je suis vraiment perdu là
Ca veut dire que c'est un problème de règle de réécriture : => soit dans le .htaccess soit dans le httpd.conf d'apache.

Question de base (pour être sûr d'éliminer toute erreur de ce côté là) : est-tu bien sûr que ton fichier .htaccess a le bon nom (commence par un point, pas d'extension du style .htaccess.txt) ?

Comment as-tu installé apache, quelle version ?

Peut-être qu'une question dans le forum apache est plus appropriée, pour avoir une réponse plus rapide :
http://www.developpez.net/forums/f205/webmasters-developpement-web/serveurs-apache-iis/apache/
Eusebe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/04/2008, 11h55   #11
Membre Expert
 
Avatar de gwinyam
 
Homme Mathieu ROBIN
Développeur Web
Inscription : mai 2006
Messages : 1 116
Détails du profil
Informations personnelles :
Nom : Homme Mathieu ROBIN
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mai 2006
Messages : 1 116
Points : 2 142
Points : 2 142
Sûr et certain que le fichier .htaccess porte le bon nom.

Pour la configuration d'apache, j'ai suivi le très bon tuto de Matthieu PETIOT, celui-ci:
http://giminik.developpez.com/articles/apache/windows/
Donc même apache, même php, et je ne crois pas avoir fait d'autres modifs que celles qu'il suggère dans son tuto. Hormis bien sur, le fait de décommenter la ligne du module Rewrite...

Il y a un mystère insondable là...
(ah au fait, oui oui j'ai bien redémarré Apache après la reconfiguration du httpd.conf, je prévois la question )
gwinyam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/04/2008, 14h34   #12
Expert Confirmé
 
Avatar de Eusebe
 
Inscription : mars 2006
Messages : 1 989
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : mars 2006
Messages : 1 989
Points : 3 606
Points : 3 606
Une nouvelle idée qui m'est venue : est-ce que tu as créé un alias Apache pour ton site ?

Si oui, il faut que tu ajoutes l'instruction RewriteBase dans ton .htaccess.

Exemple d'un alias monté sur /alias :
Code :
1
2
3
4
 
RewriteEngine on
RewriteBase /alias
RewriteRule .* index.php
Quand tu dis que tu peux accéder à ton index.php, c'est quand tu vas à l'adresse http://localhost ou quand tu vas à l'adresse http://localhost/index.php ou les deux ?
Eusebe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/04/2008, 14h47   #13
Membre Expert
 
Avatar de gwinyam
 
Homme Mathieu ROBIN
Développeur Web
Inscription : mai 2006
Messages : 1 116
Détails du profil
Informations personnelles :
Nom : Homme Mathieu ROBIN
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mai 2006
Messages : 1 116
Points : 2 142
Points : 2 142
Que ce soit sur http://localhost ou http://localhost/index.php
ça ne change rien, si?

Je n'ai pas créé d'alias, enfin pas sans le savoir, en fait, comme je l'ai dit plus haut, j'ai suivi exactement le tuto de Matthieu Petiot et de mémoire on y fait aucun alias

J'essaierai quand même avec la ligne supplémentaire dans le htaccess. De toute façon, je vais tester tout ce qui est testable, j'ai besoin que ça fonctionne en MVC avec le ZF...

Merci de la patience en tout cas
gwinyam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/04/2008, 15h00   #14
Expert Confirmé
 
Avatar de Eusebe
 
Inscription : mars 2006
Messages : 1 989
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : mars 2006
Messages : 1 989
Points : 3 606
Points : 3 606
Citation:
Envoyé par gwinyam Voir le message
Que ce soit sur http://localhost ou http://localhost/index.php
ça ne change rien, si?
Après avoir fait des tests, en effet, ça ne doit rien changer

Pour la question des Alias, dans le tuto que tu as donné, il en parle à la fin
Eusebe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/04/2008, 15h50   #15
Membre Expert
 
Avatar de gwinyam
 
Homme Mathieu ROBIN
Développeur Web
Inscription : mai 2006
Messages : 1 116
Détails du profil
Informations personnelles :
Nom : Homme Mathieu ROBIN
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mai 2006
Messages : 1 116
Points : 2 142
Points : 2 142
Ah bah j'ai loupé un truc alors
Je testerai donc avec la ligne supplémentaire et je te tiens au courant ici.

Merci
gwinyam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/04/2008, 21h20   #16
Membre Expert
 
Avatar de gwinyam
 
Homme Mathieu ROBIN
Développeur Web
Inscription : mai 2006
Messages : 1 116
Détails du profil
Informations personnelles :
Nom : Homme Mathieu ROBIN
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mai 2006
Messages : 1 116
Points : 2 142
Points : 2 142
Bon bah même avec la ligne supplémentaire:
Dans le .htaccess, ça ne change rien, ou que je veuille aller, ça fait une 404. Il y a que l'index.php qui répond bien

Je vais fouiller mon httpd.conf pour voir si je n'aurais pas oublié un truc. Mais là j'avoue que je commence sérieusement à me dire que je suis maudit du MVC
gwinyam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/04/2008, 21h44   #17
Membre Expert
 
Avatar de gwinyam
 
Homme Mathieu ROBIN
Développeur Web
Inscription : mai 2006
Messages : 1 116
Détails du profil
Informations personnelles :
Nom : Homme Mathieu ROBIN
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mai 2006
Messages : 1 116
Points : 2 142
Points : 2 142
J'ai rien trouvé de gênant... je vais poster ici mon httpd.conf, peut-être que quelqu'un y trouvera la solution.

Merci encore une fois pour la patience hein
Fichiers attachés
Type de fichier : conf httpd.conf (33,4 Ko, 3 affichages)
gwinyam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/04/2008, 22h28   #18
Expert Confirmé Sénior
 
Avatar de GrandFather
 
Inscription : mai 2004
Messages : 4 490
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : mai 2004
Messages : 4 490
Points : 5 049
Points : 5 049
Bonjour,

Code :
1
2
3
4
5
6
7
8
9
10
11
<Directory "E:/www">
 
    Options Indexes FollowSymLinks
 
    AllowOverride None
 
    Order allow,deny
 
    Allow from all
 
</Directory>
Avec AllowOverride à None, les fichiers .htaccess ne sont pas pris en compte (et la réécriture ne fonctionne évidemment pas). Remplace "None" par "All", et ça devrait mieux fonctionner.
__________________
FAQ XML
------------
« Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
Giacomo Leopardi
GrandFather est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/04/2008, 09h14   #19
Expert Confirmé
 
Avatar de Eusebe
 
Inscription : mars 2006
Messages : 1 989
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : mars 2006
Messages : 1 989
Points : 3 606
Points : 3 606
Citation:
Envoyé par gwinyam Voir le message
Bon bah même avec la ligne supplémentaire:
Pour préciser au cas où, puisque GrandFather semble avoir trouvé la solution : ce qui suit RewriteBase doit être l'adresse de base de ton site. Si tu as ton site sur localhost/alias, alors ça doit être /alias, mais si c'est localhost, alors c'est juste /...

Mais bon, si tu n'as pas d'alias, tu peux supprimer cette ligne
Eusebe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/04/2008, 09h50   #20
Membre Expert
 
Avatar de gwinyam
 
Homme Mathieu ROBIN
Développeur Web
Inscription : mai 2006
Messages : 1 116
Détails du profil
Informations personnelles :
Nom : Homme Mathieu ROBIN
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mai 2006
Messages : 1 116
Points : 2 142
Points : 2 142
Euh ok... bah euh merci les gars

Il m'en reste encore beaucoup à apprendre sur la configuration d'apache je crois

Je vous tiens au courant, merci encore
gwinyam 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 19h33.


 
 
 
 
Partenaires

Hébergement Web