Salut !
J'éprouve quelques "difficultés" à mettre en ligne un de mes projets cakePHP 2.0.4 sur OVH.
Quand j'essaie d'uploader -comme un bourrin- ça me met ça comme erreur :
Parse error: syntax error, unexpected '=', expecting '(' in /.../www/lib/Cake/bootstrap.php on line 136

J'ai lu par-ci par-là qu'il faut modifier quelques infos dans cake, faire une certaine arborescence... mais voilà ça plante toujours (de plus les posts sur ce sujet deviennent assez vieillots).

Comment faire pour que tout fonctionne ?

11 réponses


Sur OVH rien de spécial à faire, il faut juste activer PHP5 en passant par un .htaccess

Nazahel
Auteur

Ah... faudrait vraiment qu'ils le mettent par défaut :/

J'ai mit ce bout de code dans le .htaccess à la racine (www/.htaccess) :

SetEnv REGISTER_GLOBALS 0
SetEnv MAGIC_QUOTES 0
SetEnv PHP_VER 5
AddDefaultCharset utf-8
Options -Indexes

Ma page se charge bien, mais pas mes helpers perso (view/helper), sachant que tout fonctionne correctement en local.
Ce qui produit une jolie erreur :
<b>Fatal error</b>: Call to a member function currentLink() on a non-object in ...

EDIT : je suis sur un serveur mutualisé

Bonjour, je réveille un peu ce vieux topic, mais je tourne en rond depuis plusieurs jours :

  • hébergement : OVH Perso (mutualisé) avec nom de domaine
  • cakephp version : 2.4.5 vierge, fraichement décompressée

Ce que j'ai fait :

  • .ovhconfig dans le "www" le php 5.5 est activé : phpinfo ( FAQ OVH)
  • upload des fichiers avec filezilla, de "app", "index.php", "lib", "plugins", et "vendors" dans le dossier "www"
  • config du "database.php", "email.php" et dans le "core.php" modifications des "Security.salt" et "Security.cipherSeed"

Ce à quoi j'arrive :

Les problèmes :
les liens vers le webroot ne fonctionne pas, pour preuve aucun css ni images de chargés. par exemple sur le logo de cakephp, le lien est celui ci : /img/cake.power.gif : image introuvable, le lien vers l'image qui fonctionne : /app/webroot/img/cake.power.gif

Donc voila ou j'en suis, je reprends tout calmement de zéro avec un cakephp vierge et rien que ca, cela ne fonctionne pas correctement.
J'ai lu un bon nombre de topic, tuto, cook book, etc... Une installation Production selon le CookBook consiste à mettre la lib Cake et l'app en amont du "www" et le webroot devient le "www". Par contre je n'y suis pas arrivé.

Quelqu'un chez qui cela fonctionne pourrait il m'expliquer la où je ne fais pas correctement les choses?
Merci d'avance.

tu as un probleme de route tout simplement...

il nous faut les 3 .htaccess de ses dossiers

www (1)
--app (2)
----webroot (3)

Et le fichier routes.php qui se situe dans :
app
--config
----routes.php

RewriteEngine on

dans le htaccess

A force de refaire trop de fois les mêmes choses, j'ai fini par oublier un .htaccess ... mes excuses. Merci d'avoir soulever le bon problème!

L'installation en mode "développement" fonctionne, comment procéder pour une installation en mode "production" ? Est il intéressant de faire une telle installation hormis pour partager la lib cake entre plusieurs app ?

Ce qui est intéressant c'est de protéger tes fichiers via les vilains qui veulent voler ton travail/injecter des fichier tendancieux. Le must serait qu'il n'est acces qu au element webroot et a la vue. Tout le reste devrait etre sous le www. Mais ça c'est une autre histoire ^^

Si tu as résolu ton problème, met le sujet en resolu.

+

Oui c'est exactement ce que je voulais faire, mettre tout sauf le webroot en dehors du "www".
Pour ce qui est de vol ou d'injection, je ne suis pas sur d'avoir les compétences pour sécuriser mon app
En ce qui concerne le statut "Résolu" du topic, je ne peux pas le faire car ce n'est pas moi qui l'ait commencé...

Hello, j'ai un problème aussi avec l'hébergement sur ovh, j'ai tout mis dans le /www, et j'ai cette erreur ci :

An Internal Error Has Occurred.
Error: An Internal Error Has Occurred.

Voici mon htaccess du /www

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

celui du /www/app

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

et celui du www/app/webroot

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

J'ai fais quelque chose de mal ?

Edit : Maintenant il m'affiche juste 'File not found', y'a du changement!

As-tu connecté ta db ? Il arrive souvent qu'il y est un problème de casse ex : model.php au lieu de Model.php

Si c'est un problème de route, il te faut tester d'arriver a ta page via le lien absolue. Si tu arrive à atteindre ton style.css avec cette méthode tu as un problème de rewrite.

J'ai réussi à mettre mes liens css/js, sans utiliser les helpers forcément, maintenant j'ai un autre problème lié aux liens des routes préfixées, que j'ai préféré mettre sur un autre sujet.
Merci !