Héberger son site créé avec CakePHP 2 chez LWS, OVH ou 1and1

Page 1 / 1

Lorsque vous voulez héberger un site créé avec le framework CakePHP 2, il est possible que vous soyez confronté à une erreur interne du serveur (code 500).
Pour régler ce problème, il suffit de modifier légèrement les 3 fichiers ".htaccess" de CakePHP. Mais la modification dépend de votre hébergeur.

  1. Pour LWS
  2. Pour 1and1
  3. Pour OVH

1. Pour LWS

Pour l'hébergeur LWS.FR, il y a 2 possibilités :

  • un hébergement web mutualisé
  • ou un hébergement web multi-domaines

Dans le cas de l'hébergement web mutualisé (un hébergement web pour un seul site), vous n'aurez pas de problèmes.

Par contre, si vous utilisez l'option multi-domaines, vous aurez des problèmes avec les domaines supplémentaires.
En effet, avec cette option, vous pourrez héberger un site à la racine de votre compte FTP (aucun problème pour ce site), mais les autres seront dans des sous-dossiers "mon-2eme-domaine.net", "mon-3eme-domaine.net", ...
Pour ces sites, vous devrez modifier les fichiers ".htaccess" comme ceci pour que vos sites en CakePHP fonctionnent correctement :

Plain Text

\.htaccess

Apache

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

Plain Text

\app\.htaccess

Apache

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

Plain Text

\app\webroot\.htaccess

Apache

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

2. Pour 1and1

Pour l'hébergeur 1and1, il faut utiliser la version 5 de PHP et utiliser l'instruction RewriteBase comme ceci :

Plain Text

\.htaccess

Apache

<IfModule mod_rewrite.c>
    AddType x-mapp-php5 .php
    Options +FollowSymLinks
    RewriteEngine On
    RewriteBase /
    RewriteRule ^$ app/webroot/ [L]
    RewriteRule (.*) app/webroot/$1 [L]
</IfModule>

Plain Text

\app\.htaccess

Apache

<IfModule mod_rewrite.c>
    AddType x-mapp-php5 .php
    Options +FollowSymLinks
    RewriteEngine On
    RewriteBase /
    RewriteRule ^$ webroot/ [L]
    RewriteRule (.*) webroot/$1 [L]
</IfModule>

Plain Text

\app\webroot\.htaccess

Apache

<IfModule mod_rewrite.c>
    AddType x-mapp-php5 .php
    Options +FollowSymLinks
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php/$1 [QSA,L]
</IfModule>

Si vous avez une erreur à propos de la timezone :

Plain Text

Warning: strtotime() [function.strtotime]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier.

Il suffit de décommenter (enlever le # en début de ligne) et modifier la ligne "date_default_timezone_set" dans le fichier "\app\Config\core.php".
Note : La liste complète des fuseaux horaires se trouve sur le site de PHP.

PHP

// Fuseau horaire de la France
date_default_timezone_set('Europe/Paris');

3. Pour OVH

Apparemment, il suffit d'utiliser la version 5 de PHP.

Pour cela, vous avez 2 possibilités :

  • utiliser le fichier .ovhconfig
  • activer PHP5 via un fichier .htaccess

Si vous choisissez de passer par le fichier .ovhconfig, voici ce qu'il faut indiquer ou modifier dans ce fichier.
Note : Comme indiqué dans la FAQ d'OVH, ce fichier est présent par défaut sur les hébergements web 2014. Si ce fichier n'existe pas, il suffit de le créer.

Plain Text

.ovhconfig

Plain Text

app.engine=php
app.engine.version=5.5
http.firewall=none
environment=production

Si vous choisissez de passer par le fichier .htaccess, il suffit d'ajouter cette ligne au début du fichier ".htaccess" présent à la racine de votre site CakePHP :

Apache

SetEnv PHP_VER 5