Bonjour bonjour !

J'ai un problème avec OVH (mutualisé perso) et la mise en ligne de mon projet tournant sous CakePHP.
Le site apparait bien, mais il y a un problème de réécriture avec les assets (j'entends CSS, images et JS). CakePHP me dit qui qu'il manque le CssController,JsController, etc.

J'utilise la version nouvellement parue de Cake (2.5.1).

En local, je n'ai pas de problème, ni sur un hébergement ailleurs.

Je suppose que cela vient des .htaccess qui, historiquement, sont assez bizarres chez OVH...

Voici mon architecture de FTP :

+- www
+--+- cake
   +--+- app
      +--+- webroot

Je précise que j'essaye d'uploader CakePHP sur un sous domaine ( http://cake.leboncube.fr).

Voici le contenu des mes fichiers .htaccess (ceux par défaut)

Celui à la base :

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

Celui dans /app/

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

Celui dans /app/webroot/

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

J'ai cherché sur internet, je n'ai rien trouvé qui a pu résoudre mon cas. Cela n'a rien changé, et je me suis même pris des Internal Server Error.

Si quelqu'un a déjà eu ce problème et peut m'aider à résoudre ce problème frustrant, je suis preneur !

Merci à ceux qui me répondront !

3 réponses


Mike Hell
Auteur
Réponse acceptée

Et bien... C'est résolu. Mais je ne sais pas pourquoi, je n'ai rien changé.

Merci de votre aide !

Bon, je suis debutant, mais j'ai mis aujourd'hui meme mon site en ligne et j'ai eu moi aussi des problemes de lecture des controller.
Deja, tu devrais peut etre revoir ton archi. histoire de ne pas exposer tes dossiers app et lib.
A partir de la "racine" du serveur), j'ai structuré comme ceci :

app/ --> le dossier app (code de l'application)
lib/ --> le dossier lib (librairie cakePHP - a remplacer pour les mises a jour)
www/-------> le contenu du webroot de ton application
le fichier .htaccess de la base (pour ma pomme "RewriteRule (.*) app/webroot/$1 [L]" générait une erreur 500, je ne l'ai pas mis)
le fichier index.php

Ensuite, tu modifies le index.php du www pour ajouter le chemin absolut du serveur (si tu ne l'a pas, il te suffit de creer un fichier genre cheminserveur.php contenant un php_info et de le lancer par l'adresse). Tu renseigne aussi le nom du repertoire APP

}
/**
* These defines should only be edited if you have cake installed in
* a directory layout other than the way it is distributed.
* When using custom settings be sure to use the DS and do not add a trailing DS.
*/

/**
* The full path to the directory which holds "app", WITHOUT a trailing DS.
*
*/
if (!defined('ROOT')) {
define('ROOT', 'ici_le_chemin_absolue_de_ton_serveur'); <---------- du genre DS . 'home'. DS . 'ton_serveur'
}
/**
* The actual directory name for the "app".
*
*/
if (!defined('APP_DIR')) {
define('APP_DIR', 'app'); <----------
}

Les autres .htaccess ne changent pas :
dans le www :

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>

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

Voila, j'espere avoir repondu a ta question

Bizarre, j'ai pas eu de soucis moi pour upload mon site...
Par contre la seule chose, c'est que lorsque j'avais des internal server error, c'était des erreurs de développement qu'on ne voyait pas à cause du niveau de debug passé à 0