Rechercher dans ce blog

Chargement...

samedi 6 décembre 2014

Transfert d'un site Symfony 1.4 chez OVH

Je devais transférer le "vieux" site d'un client : je l'avais développé en Symfony 1.4 en 2010 (Symfony a sorti ce décembre 2014 sa version 2.6).
Sur conseil, j'ai ouvert un compte chez OVH au nom de ce client (pour qu'il puisse en récupérer la maintenance, et avoir des factures à son nom) et pris un hébergement mutualisé Pro. Je payais par Paypal et , habitué à 1and1, je voulais déployer ce site dans la journée.

Premier "blocage" : l'hébergement n'était pas disponible immédiatement mais "sous 24h".
Second blocage : Comme j'avais coché "société", il était obligatoire de fournir des scans du KBis de la société, de la pièce d'identité du patron et du contact comptabilité (moi, puisque je venais de payer par Paypal). Sans ces pièces envoyées à l'email de vérification paiement d'OVH, l'hébergement n'etait pas disponible !

Après ces contraintes administratives, j'ai pu accéder à mon nouvel espace. Il me suffisait de :
- transférer les fichiers de l'application
- créer une base MySQL et y importer les données de la base du vieux site
- modifier les paramètres dans "config/databases.yml" pour pointer vers cette base
- le dossier racine du site web est par défaut "www" : le changer par "www/web/" dès lors que vous glisser tous les dossiers de votre application Symfony dans ce dossier "www" (pour ma part, je place les dossiers dans un dossier supplémentaire "app_symphony" et indique donc pour le docroot "www/app_symphony/web")

Pour le transfert, j'ai voulu faire une synchro en SSH plutôt que glisser les fichiers par ftp.
Il fallait donc modifier le fichier "config/properties.ini" avec les paramètres de OVH, puis ouvrir le Terminal (sur Mac) et se placer dans le répertoire de son site Symfony local et taper :
php symphony project:deploy production --go

A la création de la Base de Données MySQL, OVH vous envoie un email avec les paramètres nécessaires pour se connecter : nom du serveur MySQL, nom de la base créée, nom de l'utilisateur, pas le mot de passe (que vous êtes censé connaître). La bonne idée est de s'apercevoir que le serveur MySQL N'EST PAS "localhost" comme le dit OVH. Il faut donc écrire dans "config/databases.yml" :
all:
  doctrine:
    class: sfDoctrineDatabase
    param:
      username: <user>
      password: <password>
      dsn: 'mysql:host=<XXX.mysql.db>;dbname=<db-name>'  

Avec une nouvelle fenêtre de Terminal, vous vous connectez à votre serveur (qui est le même que le serveur ftp chez OVH) :
ssh <user>@ftp.<domain-name>.<extension>
un password est demandé, que l'on renseigne.

En se placant dans le repertoire de notre appli, on veut faire un "Clear Cache" :
php symphony cc
mais on obtient une erreur : c'est la version 4.4.9 de PHP qui est utilisée en ligne de commande ! Il faut donc "aller chercher" la bonne version chez OVH :

/usr/local/bin/php.ORIG.5 symfony cc
Après ces "précautions", le site s'affiche correctement ! Il suffit de faire un changement de DNS pour pointer désormais vers le nouvel hébergement. le transfert est alors fini !