Historique de bonvga.net

Version 7.1
Une skin basée sur le thème foliage mise en place en octobre 2006. Sous ces couleurs, le site sera visité plus de 650.000 fois !

bonvga_v71.jpg

Version 7
Monté courant janvier 2006, ce site utilise le cms++ drupal ainsi qu'une plâtrée de modules.
Lien vers le site : http://www.bonvga.net/

bonvga_v7.jpg

Version 6
Crée durant juillet 2004, Utilisant la technologie PHP et MySQL ainsi que le moteur de templating Smarty. "BonVGA Web Site" devient alors "bonvga.net".
Lien vers le site : http://v6.bonvga.net/

v6.jpg

Version 5
Crée durant octobre 2002, Utilisant la technologie PHP et MySQL.
Lien vers le site : [fermé]

v5.jpg

Dreamhost

Depuis environ 2 ans, j'héberge bonvga.net chez moi sur un 'serveur'. J'ai une ligne free en dé-groupage partiel à 10MB et les benchs de la grenouille montre qu'elle peux délivrer en moyenne 700Ko/s en download et 80Ko/s en upload. La vitesse d'upload qui est un facteur important pour la fluidité d'affichage des pages.

Il est donc temps pour bonvga.net de passer sur quelque chose de plus costaud, voici en quel sens j'ai axé mes recherches.

Dans tout les cas, il faut trois choses :

  • Un serveur (machine 'rackable' dans une baie)
  • Un slot de baie
  • Une connexion et de la bande passante

Quel que soit le type d'hebergement, il faut s'acquitter de 'quelques deniers' pour chacun de ces trois points.

Voici plusieurs solutions d'hebergement :

  • Serveur dédié en location : Le principe est de louer un serveur, un slot et une connexion. Le prix moyen est autour de 50 euros par mois pour une entrée de gamme. L'avantage principal est la disponibilité du serveur. En outre, ça revient vite cher.
  • Serveur dédié à l'achat : J'ai pu voir de bonnes configurations chez Dell, mais il faut tout de même compter 1100 euros. Ensuite ajoutez la location de la baie et de la connexion, pour cela il faut compter minimum 25 euros par mois. deux problèmes de taille avec cette solution, à moins de prendre la garantie du constructeur, il faut assurer soit même la maintenance de la machine et de plus, il faut partir sur une utilisation de 2 ou 3 ans pour amortir le prix du serveur par rapport à un serveur dédié loué.
  • Serveur virtuel : Ceci consiste à faire plusieurs serveurs avec un très gros serveur. Les ressources du serveur (cpu, mémoire, ...) sont fractionnées et attribuées à chaque 'sous-serveur'. Il n'y a pas de partage des ressources, ce qui fait que ce mode ce rapproche du serveur dédié, de ce fait il faut compter 45 euros par mois minimum.
  • Serveur mutualisé : Cette solution consiste à placer un grand nombre de petits sites sur un même serveur d'on les ressources sont partagées. L'inconvénient de cette solution est la lenteur, forcement car les ressources sont partagées. En revanche le prix est très bas, environ 8 euros par mois.

J'ai opté pour la solution mutualisée, en effet, le site n'a pas encore besoin d'une réactivité et d'une bande passante extrême. Il ne faut pas oublier que bonvga.net reste un site perso Eye-wink

Mon choix s'est porté sur l'hebergeur Américain, Dreamhost.com. Au passage je remercie Jeff qui m'a permis de tester cet hebergeur avant d'investir.

J'ai reçu ma dedibox !

Commandée le 11/05/06, reçue le 10/06/06. Presque 1 mois ! Mais je suis quand même bien satisfait du résultat.

L'installation de la bestiole prend 10 minutes en commençant par choisir le système d'exploitation puis le partitionnement du disque dur ensuite le reste est automatisé.

[image:1603 size='thumbnail']
[image:1604 size='thumbnail']

J'ai du refaire l'installation car je me suis rendu compte un peu trop tard que j'avais oublié la partition de swap Smiling

Voici le détail du matériel contenu dans la boite :

  • Processeur
    • Constructeur : VIA
    • Modèle : C7
    • Fréquence : 2000 Mhz
  • Carte mère
    • Constructeur : VIA
    • Modèle : V1
  • Mémoire vive
    • Numéro de série : S207
    • Constructeur : AEONON
    • Type : DDR2
    • Taille : 1024 Mo
    • Fréquence : 4200
  • Disque dur
    • Constructeur : SEAGATE
    • Type : sata
    • Taille : 152625 Mo
  • Système de reboot
    • Numéro de série : 1005C4
    • Modèle : V1

Migration de gallery2 1.0.0.2 vers 1.1.0.1

Ce billet décrit les différentes étapes que j'ai suivi lors de la migration de Gallery2. J'ai d'ailleurs rencontré 2 problèmes pas piqué des hannetons.

  1. J'ai commencé par faire une copie de gallery (fichiers et base de donnée) histoire de ne pas tout perdre bêtement.
  2. Ensuite, j'ai désactivé la plupart des modules, dans le doute on ne sais jamais.
  3. Debut de la migration : Là, c'est relativement simple, il suffit de suivre les étapes comme indiqué dans le fichier d'UPDATE livré avec gallery
  4. Le système d'update de gallery est maintenant lancé :
  5. Arrivé à l'étape 3 de la migration (update core), l'updater affiche un warning au sujet de vieux fichiers de l'ancienne installation de gallery. Gentillement, l'updater propose de télécharger un script shell permettant la suppression de ces fameux fichiers. Lors d'une première tentative de migration j'ai essayé ce script, ce fut une catastrophe ;-( ! Plus rien n'a fonctionné après, c'est pourquoi je recommande de ne pas prendre en compte l'avertissement de l'updater et de ne pas lancer le script shell proposé.
  6. Etape 3 toujours, arrive un problème concernant mon installation : les fichiers d'un module ont été supprimés sans désinstaller le module au préalable. J'avoue, j'avais du bourriner le coup là... L'updater demande alors de télécharger la dernière version du module concerné, faite-le si vous y tenez mais ce n'est toujours possible, les modules ne sont pas tous maintenus...

    J'ai plutot opté pour la solution hardcore : désinstaller le module à la main. Pour cela il faut supprimer les lignes des modules à supprimer dans la table 'g2_PluginMap'
  7. Le reste du process d'update fonctionne sans problème. Juste avant de mettre à jour la base de donnée, l'updater propose une dernière fois de faire une sauvegarde :
  8. Durant la mise à jour de la base de donnée, l'updater encode les données en UTF-8.

    Bonne idée, quand ça fonctionne bien sûr...
  9. Fin de la migration, je m'empresse alors d'aller voir le résultat et là, c'est le drame ! Le bon vieux problème d'encodage : 'Virée en mongolfière' à la place de 'Virée en mongolfière'. Ca m'a tellement soulé de mettre le nez dans le script de l'updater pour voir ce qui clochait que j'ai préfèré faire mon propre script de récupération. (Celui-ci est attaché à ce billet)

Bilan, malgrès le problème d'encodage de la base de données, la migration c'est bien passée. Je peu maintenant passer à la mise à jour de Drupal Smiling

Fichier attachéTaille
gallery2_correction_utf8.tgz1.24 Ko

Modules drupal utilisés

Liste des modules utilisés sur bonvga.net :

Cette liste ne contient pas les modules installés de base avec drupal.

Correctifs, patchs & configuration

module troll

Evite une erreur systematique du array_merge :

383c383,385
<       $pager = theme('pager', NULL, 25, 0, array_merge(tablesort_pager(),(is_array($edit)?$edit:array()) ));
---
>       $pager = theme('pager', NULL, 25, 0, array_merge(tablesort_pager(),$edit));

module taxonomy_block

Juste une question de charte Smiling

253c253
<     $content .= '<div class="more-link">'. l(t("more"), 'taxonomy/term/'.implode($tids, '+'), array("title" => t("View all."))) .'</div>';
---
>     $content .= '<div>'. l(t("more"), 'taxonomy/term/'. implode($tids, '+'),array("title" => t("View all."))) .'</div>';

module freemind

Evite une erreur du foreach quand la variable est vide

38,40d37
<   // bonvga : bugfix
<   if ($fr_overview_vocab)
<   {
44d40
<   }

ajax_spellcheck

Passe le correcteur d'orthographe en français.

44c44
<   $result = drupal_http_request('http://www.google.com/tbproxy/spell?lang=fr',array('Content-Type' => 'text/xml'), 'POST', $xml);
---
>   $result = drupal_http_request('http://www.google.com/tbproxy/spell?lang=en',array('Content-Type' => 'text/xml'), 'POST', $xml);

comment

Enlève l'age des commentaires sur le bloc.

      //$items[] = l($comment->subject, 'node/'. $comment->nid, NULL, NULL,'comment-'. $comment->cid) .'<br />'. t('%time ago',array('%time' => format_interval(time() - $comment->timestamp)));
      $items[] = l($comment->subject, 'node/'. $comment->nid, NULL, NULL,'comment-'. $comment->cid);