7 février 2014

Utiliser Centurion sur un OVH mutualisé

Centurion est un CMF (CMS + framework) basé sur le Zend Framework. Il utilise notamment le modèle MVC et la réécriture d'URL. Comme le ZF, il impose que sa racine Web soit le dossier "public" lui-même situé à la racine de l'application. Il faut donc configurer le vhost pour qu'il pointe sur ce dossier "public".

Sauf que sur un hébergement mutualisé on a rarement la main sur le vhost... Et sur OVH le dossier qui sert de racine Web s'appelle "www".

Pour pouvoir utiliser cet outil sur ce type d'hébergement, il faut donc considérer la racine de l'hébergement comme la racine de l'application et faire en sorte de pouvoir utiliser le dossier "www" à la place du dossier "public".

Les instructions qui suivent sont valables pour la version 0.4 de Centurion, accompagné du module "minify".

Il faut bien sûr commencer par renommer le dossier "public" de Centurion en "www".

En base de données :
  • dans la table "media_file", chercher l'entrée ayant l'id "88888888" et modifier son champ "local_filename"
  • dans la table "media_duplicate", modifier le champ "params" de toutes les entrées

Ensuite, il faut modifier les fichiers. J'ai choisi de déclarer une constante "WEB_ROOT_PATH" contenant le chemin vers la racine Web et de l'utiliser aux endroits où le code accède à cette racine en utilisant la constante "APPLICATION_PATH".

Il faut donc d'abord déclarer la constante "WEB_ROOT_PATH" après la déclaration de "APPLICATION_PATH" comme ceci :
defined('WEB_ROOT_PATH') || define('WEB_ROOT_PATH', APPLICATION_PATH . '/../www');Dans les fichiers suivants :
  • /library/Centurion/Tool/Project/Provider/Cache.php
  • /library/Centurion/Tool/Project/Provider/Db.php (à 2 endroits)
  • /library/Centurion/Tool/Project/Provider/Install.php (à 2 endroits)
Et de cette façon dans "/www/index.php" :
defined('WEB_ROOT_PATH')
|| define('WEB_ROOT_PATH', realpath(dirname(__FILE__)));

Il faut ensuite utiliser cette constante, généralement à la place de "APPLICATION_PATH . '/../public'", dans les fichiers suivants :
  • /application/configs/cache.ini
  • /application/modules/minify/controllers/MinifyController.php
  • /application/modules/minify/views/helpers/HeadLink.php
  • /application/modules/minify/views/helpers/HeadScript.php
  • /application/modules/minify/views/helpers/InlineScript.php
  • /library/Centurion/Contrib/media/configs/module.ini
  • /library/Centurion/Mail.php
  • /library/Centurion/Tool/Project/Provider/Install.php

Il y a enfin des fichiers ou il faut remplacer en dur la chaine "public" par "www" :
  • /.htaccess
  • /library/Centurion/Contrib/media/models/DbTable/File.php
  • /library/Zend/Cache/Manager.php

De plus, dans le fichier ".htaccess" qui est à la racine de l'application (et éventuellement aussi dans celui qui est dans "www" si ça n'est pas suffisant), il faut ajouter l'instruction suivante pour forcer l'utilisation de PHP 5.3 :<IfModule mod_env.c>
    SetEnv PHP_VER 5_3
</IfModule>

Aucun commentaire:

Enregistrer un commentaire