Salut à tous!!

je fais appels à vos connaissances et expériences car j'ai un problème avec le tuto "Site de A à Z" voila les messages d'erreurs qui sont généré ( je tient à préciser que j'ai ces 2 messages en suivant le tuto ainsi qu'en ayant téléchargé la source ):

( ! ) Warning: require(C:\wamp\www\ageda1\controller\Controller.php) [function.require]: failed to open stream: No such file or directory in C:\wamp\www\ageda1\core\Dispatcher.php on line 42
Call Stack

Time Memory Function Location

1 0.0018 369304 {main}( ) ..\index.php:0
2 0.0090 410360 Dispatcher->__construct( ) ..\index.php:9
3 0.0091 410984 Dispatcher->loadController( ) ..\Dispatcher.php:17

( ! ) Fatal error: require() [function.require]: Failed opening required 'C:\wamp\www\ageda1\controller\Controller.php' (include_path='.;C:\php\pear') in C:\wamp\www\ageda1\core\Dispatcher.php on line 42
Call Stack

Time Memory Function Location

1 0.0018 369304 {main}( ) ..\index.php:0
2 0.0090 410360 Dispatcher->__construct( ) ..\index.php:9
3 0.0091 410984 Dispatcher->loadController( ) ..\Dispatcher.php:17

Merci pour votre aide ;-)

16 réponses


Salut,

Bizarre, le message d'erreur indique qu'il y a un problème de redirectement.

Il indique qu'il manque ce fichier :
C:\wamp\www\ageda1\controller\Controller.php
Or s'il manquait vraiment le chemin serait :
C:\wamp\www\ageda1\lib\Cake\controller\Controller.php

Vérifie les paramètres de ton serveur, du .htaccess, et du fichier index.php. Mais vu que tu dis que ça fait pareil avec les sources de Grafikart, tu dois avoir paramètre ton serveur de mauvaise façon.

Bonjour, le mod url_rewrite d'apache est bien chargé ?

Cordialement

Merci pour vos réponses.

@extrarox voici les paramètres

du .htaccess:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) index.php/$1 [L]

d'index.php:

<?php
define('WEBROOT',str_replace(DS.'htdocs'.DS.'web','http://Ageda',dirname(\_\_FILE\_\_)));
define('ROOT',dirname(WEBROOT));
define('DS',DIRECTORY_SEPARATOR);
define('CORE',ROOT.DS.'CORE');
define('BASE_URL',dirname(dirname($_SERVER'SCRIPT_NAME'])));

require CORE.DS.('includes.php');
new Dispatcher();

?>

Vois-tu quelque chose qui cloche?

Niveau paramètrage du Serveur je ne sais plus trop par quelle bout prendre la chose... I'm lost

@bahamut: Oui le mod url_rewrite d'apache est bien chargé

Déjà tout à l'heure j'ai dis une bétise, tu utilises pas Cake^^

Par contre je vois un soucis dans :

define('WEBROOT',str_replace(DS.'htdocs'.DS.'web','http://Ageda',dirname( __FILE__ )));

Ca colle pas avec le message d'erreur là :

( ! ) Warning: require(C:\wamp\www\ageda1\controller\Controller.php) [function.require]: failed to open stream: No such file or directory in C:\wamp\www\ageda1\core\Dispatcher.php on line 42

D'un côté tu fais un str_replace comme si tu étais sur Mac, et de l'autre tu utilises Wamp donc tu es sur Windows.

Oui effectivement je n'utilise pas cake. ;-)
Et concernant "index.php" j'ais posté le mauvais voici le bon:

<?php
define('WEBROOT',dirname(__FILE__));
define('ROOT',dirname(WEBROOT));
define('DS',DIRECTORY_SEPARATOR);
define('CORE',ROOT.DS.'core');
define('BASE_URL',dirname(dirname($_SERVER'SCRIPT_NAME'])));

require CORE.DS.'includes.php';
new Dispatcher();
?>

Mais ce qui me parait bizarre c'est que j'ais le même soucis avec la source de Graf donc je pencherais plus pour un problème de config de WAMP...?

j'avais un problème de Path_info que j'ais résolu mais là, je plante complet.

Est-ce qu'à un moment tu as paramétré ton Wamp?

j'ais éssayé avec les infos glané sur le forum! Plus sérieusement je vais essyer de te dire se que j'ai fait:

Activé rewrite_module d'Apache
Ajouté AcceptPathInfo On dans le httpd.conf d'Apache
Décommenté cgi.fix_pathinfo=1 dans php.ini

je crois que c'est tout ce que j'ai fais.

Essaye de remettre à Off et recommenter.

recommenté AcceptPathInfo On et mis Off
recommenté cgi.fix_pathinfo=1

idem mêmes erreurs

En fait je viens de m'apercevoir que j'ais le même problème avec la source du tuto du jour 3.
J'en déduit que c'est soit un problème de routing au niveau des dossier soit un problème de config.

oui mais ta conf je l'ai pas^^

Et si tu envoie tout ça va faire deux page.

Envoi déjà ton VirtualHost

Voila le virtualhost et merci pour ta patience.

Alias /ageda1 "C:/wamp/www/Ageda1/"

<Directory "C:\wamp\www\Ageda1">
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
</Directory>

concernant la config quelles serait les point à ne pas négliger d'après toi?

Ok :
Tu confirme le fichier là existe :

C:\wamp\www\ageda1\controller\Controller.php

Je ne pense pas que ça change grand chose mais il y a un manque de cohérence (là je chipote) :

<Directory "C:\wamp\www\Ageda1">

D'un côté tu as des \ et de l'autre tu as des /
La norme dans Wamp c'est /
Mets et fini par le /:

<Directory "C:/wamp/www/Ageda1/">

Sinon ça à l'air bon.

Si ça marche toujours pas, essaye de copier-coller ton répertoire dans le www et tu le nommes Ageda2, tu lances Wamp sans faire d'alias pour ce répertoire et tu le lances en direct pour voir.

moi aussi avec le fichier source j'avais l'erreur enfaite PageControlleur était a la place de Controlleur

J ai exactement le meme problème mais toujours pas régler
J'ai mis la source de graphikart sur mon ftp perso toujours la meme erreur qu'en local :S
Si tu a trouvé depuis le temps ça m'aiderai bien de savoir comment t'a fait :D

Bonjour,
J'ai presque le même problème alors ce que tu peux faire c'est d'ajouter un $ devant le this dans le fichier dispatcher.php.

<?php
/**
*
*/
require 'Request.php';
class dispatcher {
var $request;
function __construct(){
$this->request = new Request();

code...

echo "je suis le Dispatcher";
}
}

?>

///////////////////////////////////////////////////////////////////////////////
fichier index.php

<?php
define('WEBROOT', dirname(__FILE__));
define('ROOT', dirname(WEBROOT));
define('DS', DIRECTORY_SEPARATOR);
define('CORE', ROOT.DS.'core');
define('BASE_URL', dirname(dirname($_SERVER'SCRIPT_NAME'])));
require CORE.DS.'includes.php';

new dispatcher();

echo BASE_URL;

?>