inicio mail me! sindicaci;ón

Archive for WebDev

Un script pout importer une grosse base de données mysql sans problème de timout

Attention, c’est un truc de codeurs ! ;)

Tout ceux qui doivent gérer des bases de données un tout petit peu grosses se sont déjà trouvés confrontés au problème du timout. Souvent, sur un hébergement mutualisé, le temps d’exécution maximum du script est réduit à 10 secondes, là où on a parfois besoin de vingt, trente secondes pour importer une base de données de plusieurs dizaines de méga octets (ou pour effectuer n’importer quelle autre tache).

C’est ce qui m’est arrivé la nuit dernière : damned, bloqué par un timout à 10 secondes ! Auparavant, je scindais la requête en plusieurs petites requêtes, mais là je me suis résolu à investir quelques minutes en recherches et expérimentations, et je suis tombé sur un script de toute beauté : Bigdump. Le principe est limpide : on upload le script PHP sur son serveur, ainsi qu’un fichier texte qui contient les requêtes SQL à exécuter. On lance le script, et hop, il se charge tout seul d’exécuter les requêtes sql en plusieurs étapes… C’est magique, et c’est surtout super pratique !

Voici la marche à suivre, en sept étapes :

1. Télécharger BigDump : http://www.ozerov.de/bigdump.php.

2. Editer le fichier de configuration pour renseigner les informations de connexion la base de donnes. On parle de la base de donnes sur laquelle on va importer les donnes. Ne pas oublier de renseigner la variable “db_connection_char_set”, lui donner la valeur ‘utf8′.

3. Uploader ce fichier quelque part sur votre site. Par exemple : http://www.example.com/bigdump/bigdump.php

4. Exporter depuis phpMyAdmin les tables que vous voulez importer sur l’autre base. Choisir le format utf-8 (si le menu déroulant n’est pas proposé, c’est généralement qu’utf8 est choisi par défaut. Dans la section “Données”, sélectionnez “Insertion complètes” et “Encoder les champs binaires en hexadécimal”. Vous pouvez tout mettre dans un seul fichier (structure et donnes). Enregistrer le fichier .sql sur votre disque dur.

5. Uploader le fichier .sql dans le mme répertoire que le fichier bigdump.php. On peut soit passer par un FTP, soit par un formulaire qui s’affiche sur la page.

6. Charger la page http://www.example.com/bigdump/bigdump.php.

7. Cliquer sur “Start Import” en face du fichier que vous souhaitez importer, et c’est parti !

Le script exécute toutes les requêtes, en rechargeant plusieurs fois la page avec du javascript pour ne pas aller au delà du timout (il faut donc activer javascript).

Merci BigDump !

RSS : mise en place de Feeburner

FeedBurner est un outil génial pour mettre en place des flux RSS sur son site ou son blog. Il ne permet pas de générer des flux, mais d’avoir accès à des statistiques et des options de customization très pratiques. Petit problème, le flux doit être hébergé chez FeedBurner… Voici quelques petites explications pour ruser ;)

L’utilisation classique de FeedBurner, une fois qu’on a ouvert un compte, consiste à héberger son flux chez FeedBurner, et à faire la promotion de cette URL auprès de ses internautes. L’URL ressemble alors à quelque chose comme http://feeds.feedburner.com/JeremiePottier. Dès lors, en tant qu’éditeur, vous avez accès à une véritable petite boîte à outil des flux RSS.

Problème : les flux sont hébergés chez quelqu’un d’autre. Si un jour FeedBurner devient payant, ou complètement nul, la situation peut devenir délicate, il faudra demander à ses lecteurs de changer leurs liens, c’est généralement une mauvaise idée. Autre problème : au niveau référencement, on a moins de liens vers son nom de domaine.

Une solution simple, qui résoud au moins le premier problème, consiste à fournir aux internautes l’URL hébergée sur son propre serveur (http://www.jeremiepottier.com/blog/feed/) et de mettre en place, sur cette page, une redirection 302 qui redirige vers le flux chez FeedBurner.

Si l’on désirer changer d’URL de flux, il suffit de changer la redirection 302 : les lecteurs gardent la même URL, ils ne se rendent compte de rien ! Simple, propre et efficace !

Evidemment, je n’y ai pas pensé tout seul :

I know Danny likes Feedburner, but I don’t use it because I feel a little weird about giving my RSS feeds over to someone else. Turns out that several people on the panel felt the same way. One solution that people mentioned was to keep the feeds as an internal link (e.g. feeds.zawodny.com), and then do a 302 over to Feedburner. That makes it easy to undo later if you want to take your feeds back in-house.