2010-11-24 4 views
1

Je dois déployer mon installation standard de cakephp 1.3 sur un hôte partagé dans un sous-répertoire.Installation de CakePHP 1.3 dans le sous-répertoire

D'autres réponses à des questions similaires n'ont pas fonctionné pour moi.

Sur localhost j'ai mon espace dev comme un hôte virtuel comme

myproject.local.com 

que le système de fichiers est /var/www/myproject/

et il y est le CakePHP

si

/app 
/app/webroot etc 

J'ai mod_rewrite activé. Si je veux, avec le même virtualhost, mettre mon application cakephp sous /subfolder/, et y accéder comme myproject.local.com/subfolder/, que dois-je faire? Rappelez-vous que je ne peux pas accéder aux fichiers de configuration apache et que je ne peux rien mettre à la racine.

Des idées?

Il est possible de modifier uniquement les fichiers htaccess dans le sous-dossier /, sous-dossier/app /, sous-dossier/app/webroot avec RewriteBase?

Répondre

6

Vous pouvez placer l'ensemble de l'installation cakephp dans le sous-dossier. Si votre serveur .htaccess permet d'être surchargée puis en ajoutant ceci au .htaccess dans le répertoire/sous-dossier/aidera

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteRule ^/subfolder$  subfolder/app/webroot/  [L] 
    RewriteRule ^/subfolder/(.*)$ subfolder/app/webroot/$1 [L] 
</IfModule> 

Mais cela laisse votre application et des dossiers gâteau accessibles depuis le web .. NotGood (TM)

Une autre façon que je ne l'ai pas essayé, mais je devine que la copie fonctionnera est juste les fichiers de Webroot dans/sous-dossier/puis modifiez le index.php pour définir les emplacements des gâteaux libs

define('APP_DIR', './app'); 
define('CAKE_CORE_INCLUDE_PATH', '/path/to/cake_1.3'); 

Ensuite, éditez routes.php pour ajouter un itinéraire personnalisé qui prend en compte le sous-dossier

Router::connect('/subfolder/:controller/:action*'); 

Vous pouvez avoir à jouer avec les routes un peu pour obtenir ce travail. Bonne chance.

+0

cela fonctionne (première solution)! – apelliciari