2010-05-24 7 views
0

utilisant CakePHP 1.3, je le schéma suivant:Comment exécuter CakePHP application du sous-répertoire

/srv/www/_cakephp13/ 
    /app/ 
    /cake/ 
    /plugins/ 
    /vendors/ 
    etc... 

/srv/www/htdocs/ 
    /cake_app/ 
    /other-dir/ 

... où htdocs est le répertoire public, et je l'ai déplacé webroot de mon application pour être cake_app ci-dessus. .. Qui semble être presque de travail. (Après avoir personnalisé l'index.php de webroot). Lorsque j'accède à http://devserver/cake_app/, je peux voir le contrôleur/vue de page "Accueil" par défaut (que j'ai personnalisé, donc que semble fonctionner). Mais quand j'accède http://devserver/cake_app/controller/view je reçois erreurs.

Est-il possible d'exécuter une application Cake dans un sous-répertoire d'une racine de site? Comment puis-je faire fonctionner cela?

Idéalement, je ne veux pas éditer de Apache ... Si conf je peux résoudre ce problème avec la configuration de gâteau ou htaccess, je serai beaucoup plus heureux.

+0

Pouvez-vous publier votre fichier .htaccess? Et dans quel répertoire? – webbiedave

+0

Ils sont partout, alors lequel? =) * htdocs * n'en a pas, * cake_app * et d'autres dans * _cakephp13 * sont les fichiers par défaut qui décompressent avec Cake. Je ne les ai pas édités. La définition du répertoire Apache pour * htdocs * a AllowOverride défini sur Tous. –

+0

Celui dans cake_app. Vous devez vérifier que le fichier .htaccess est en cours d'exécution et que la réécriture est activée et active. Exécutez quelques tests pour vérifier les deux. – webbiedave

Répondre

2

Vous devez vérifier que .htaccess est en cours d'exécution et que le module de réécriture est activé et fonctionnel.

+0

Accepté, parce que c'était mon problème particulier. Voir mon commentaire sur le post original pour plus d'informations. –

+1

De même, rewritebase sur .htaccess peut provoquer des problèmes et doit donc être correctement défini. – dabito

+0

@dabito: Très vrai. L'ajout de 'Rewritebase /' résout les erreurs de configuration pour beaucoup de gens. – webbiedave

1

Vous devez avoir activé mod_rewrite sur Apache. Pour vérifier si elle est sur, faire une page qui fait ceci:

echo phpinfo(): 

Grep sur le texte « modules chargés ». Assurez-vous que mod_rewrite est répertorié ici. Si ce n'est pas le cas, vous pouvez l'ajouter à la configuration d'apache, ou vous devrez peut-être l'installer (selon votre méthode d'installation d'origine et si vous avez inclus ce module).

Si vous ne pouvez pas faire fonctionner mod_rewrite, vous pouvez toujours utiliser le gâteau sans cela (l'URL ressemblera à index.php/controller/action/etc). Consultez http://book.cakephp.org/view/333/A-Note-on-mod_rewrite pour plus d'informations. Plus précisément,

Si vous ne voulez pas ou ne pouvez pas obtenir mod_rewrite (ou un autre module compatible) et en cours d'exécution sur votre serveur, vous aurez besoin d'utiliser intégrées à Cake jolies URL. En /app/config/core.php, la ligne uncomment qui ressemble à:

Configurer :: write ('App.baseUrl', env ('SCRIPT_NAME'));