2010-09-20 7 views
1

J'ai récemment téléchargé cakephp-1.3.4. Je l'ai installé sur mon serveur web. J'ai suivi les paramètres d'installation avancés. Ma structure de dossier est la suivante.CakePHP Missing Controller - mais il existe

/common/ 
    cakephp/ 
    app/ 
    etc... 
/htdoc/ 

Le dossier /htdoc est le webroot; cakephp réside dans le dossier common.

J'ai configuré les chemins dans index.php pour pointer vers cette structure de dossiers. J'ai l'application en cours d'exécution. J'ai créé une mise en page, l'application a ramassé (avec tous les css et les images - tout cela fonctionne). J'ai créé un posts_controller.php dans cakephp/app/controllers/. Maintenant, quand j'essaie d'accéder à la page suivante: http://localhost/posts. Je reçois un message que le contrôleur ne peut pas être trouvé et que je devrais créer un app/controllers/posts_controller.php (il existe déjà!).

Aussi la chose étrange utilise le pages_controller par défaut fonctionne. J'ai créé un about.ctp et l'ai laissé tomber dans app/views/pages/about.ctp. Visant http://localhost/pages/about apparaît comme prévu.

SOLUTION:

Sam m'a aidé à résoudre ce problème (voir le long fil de commentaire ci-dessous). Le problème était que j'avais défini des chemins relatifs pour mon dossier racine. Cela a chamboulé les choses. La solution consiste à définir directement un chemin absolu ou à appeler le realpath avec votre chemin relatif pour qu'il soit résolu dans le chemin absolu droit.

Répondre

3

Assurez-vous que votre classe de contrôleur est nommée correctement (devrait être PostsController) et hérite de AppController (pas strictement nécessaire mais bonne pratique).

+0

@Sam: J'ai copié le code affiché sur la page manquant du contrôleur. Donc le nom est PostsController et il hérite de AppController – Aishwar

+0

Qu'est-ce que vous utilisez pour l'hébergement? Vos autorisations de fichier sont-elles acceptables? –

+0

@Sam: Ceci est un serveur d'hébergement partagé. Je n'ai pas modifié les permissions de fichier, autre que ce que cakePHP m'a demandé dans la configuration initiale (comme mettre le dossier 'tmp' en écriture, etc.) – Aishwar

Questions connexes