Comment se prémunir d’effacer totalement un site … ou la mésaventure d’un clic malheureux !

Voila, il était une fois un développeur qui travaille sous Symfony, Cette informaticien venant de mettre en production une modification a voulu effacer le cache.

Ceci dit sur Symfony, quand on efface le cache via la superbe commande :

./symfony cc

, le site est désactivé pendant un temps plus ou moins long.

Afin d’éviter ce temps d’indisponibilité, on procède de la façon suivante :

  1. on va dans le repertoire du cache, en règle générale :
    /home/user/www/cache
  2. on utilise la commande magique mais à ne pas mettre entre toutes les mains :
    rm -Rf *

Arrive le jour où pas trop bien réveillé, on se trompe de fenêtre et au lieu d’utiliser la formule magique au bon endroit, on le fait dans le répertoire racine du site !

Attention: Ceci est un exemple à ne pas suivre !!! Ne reproduisez pas cette action chez vous !! Sous peine de grave dommages netistiques !!

Bon, on remet le site, on reconfigure le tout, etc ….

Maintenant, réfléchissons à « Comment éviter que cela ne se reproduise ? », et trouvons un solution.

….

On dirait pas mais je réfléchi …

..

DING !! Ca y est j’ai trouvé !!

Le problème est de s’assurer que dans n’importe quel répertoire ou l’on se trouve, on puisse effectuer un effacement du cache en étant dans le bon répertoire !!

La solution un simple alias ou une commande bash pour le faire :

  • En alias, éditer le fichieir .bashrc et ajouter en fin de ficheir la ligne suivante  :
    alias viderCache='rm -Rf /home/user/www/cache/*'

    Ensuite on execute la commande : ‘. .bashrc’ pour recharger les alias.

  • Via un script bash, on edite le fichier ‘viderCache’ et on y met le code suivant :
    #!/bin/bash
    rm -Rf /home/user/www/cache/*

Et hop le tour est joué, on ne risque plus de supprimer le fruit de 4 ans de travail en une demi-seconde d’inattention !!

Cette astuce est déclinable dans bien des cas, et notamment pour les taches répétitives !!

Je vous souhaite que la mésaventure de ce pauvre développeur vous serve.

5 conseils pour optimiser la SEO sous wordpress

En passant, je suis tombé sur cet article qui indique de manière claire 5 possibilités d’optimiser ses articles sous wordpress.

http://www.ecommerce-webmarketing.com/2012/12/seo-5-conseils-pour-optimiser-vos-articles-de-blog-sous-wordpress/

En résumé, les 5 points sont :

  1. Optimisez l’url, par défaut wordpress utilise un format plutôt obscur, en modifier les paramètres on peut améliorer très simplement les choses en mettant par exemple le titre de l’article dans les urls : « Modifier les permaliens ».
  2. Rendre les titres et descriptions uniques : Des titres uniques et clairs permettront aux moteurs de recherches d’indexer correctement votre article.
  3. Définir une liste de mots-clés et les utiliser dans l’article y compris dans les attributs alt des images.
  4. Bien définir un sitemap !
  5. Faire attention au temps de chargement des pages, des pages lentes seront moins bien référencées que des pages s’affichant rapidement.

A bon entendeur !

Mathieu

 

Covoiturage

Bonjour le monde !

Bon quelques lignes pour vous parler d’un super concept ! Le covoiturage !

Le site covoiturage.fr est maintenant mature, après quelques années où le site laissait la part belle aux internautes est maintenant terminée. Ils ont officialisé les paiements avant le voyage afin de responsabiliser les covoitureurs.

Petit constat avant / après.

Avant :

– possibilité de récupérer du liquide.
– on pouvait arranger les étudiants qui n’avait pas de monnaie.
– On pouvait se faire faire poser des lapins par les covoitureurs et par les conducteurs.
– Pas de « frais ».

Après :

– Transaction sécurisée : plus de transactions financières climat plus agréable.
– Moins de lapins : Les covoitureurs payent avant et sont ponctionnés en cas d’annulation intempestive. Le taux d’annulations des conducteurs est connu au moment de la commande.
– Facilité d’utilisation pour les conducteurs.

En bref, le covoiturage c’est bon mangez-en.

Sources : – mon expérience – http://www.covoiturage.fr

Traiter / Parser un mail lors de son arrivée

Bonjour,

On est souvent confronté a un problème qui peut sembler simple sur le papier mais qui en réalité est un peu plus complexe.

Le principe est d’écouter le dossier « mailbox » et sur les évènements executer un traitement. On va pour cela utiliser la commande « inotifywait ».

Tout d’abord installer inotifywait sur le serveur avec la commande suivante :

SERVER:~$ sudo apt-get install inotify-tools
sudo: unable to resolve host mathieu-ubuntu
[sudo] password for mathieu:
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Les paquets supplémentaires suivants seront installés :
libinotifytools0
Les NOUVEAUX paquets suivants seront installés :
inotify-tools libinotifytools0
0 mis à jour, 2 nouvellement installés, 0 à enlever et 3 non mis à jour.
Il est nécessaire de prendre 48,1 ko dans les archives.
Après cette opération, 201 ko d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer [O/n] ? O
Réception de : 1 http://fr.archive.ubuntu.com/ubuntu/ oneiric/universe libinotifytools0 i386 3.13-3 [21,2 kB]
Réception de : 2 http://fr.archive.ubuntu.com/ubuntu/ oneiric/universe inotify-tools i386 3.13-3 [26,9 kB]
48,1 ko réceptionnés en 0s (113 ko/s)
Sélection du paquet libinotifytools0 précédemment désélectionné.
(Lecture de la base de données... 481663 fichiers et répertoires déjà installés.)
Dépaquetage de libinotifytools0 (à partir de .../libinotifytools0_3.13-3_i386.deb) ...
Sélection du paquet inotify-tools précédemment désélectionné.
Dépaquetage de inotify-tools (à partir de .../inotify-tools_3.13-3_i386.deb) ...
Traitement des actions différées (« triggers ») pour « man-db »...
Paramétrage de libinotifytools0 (3.13-3) ...
Paramétrage de inotify-tools (3.13-3) ...
Traitement des actions différées (« triggers ») pour « libc-bin »...
ldconfig deferred processing now taking place
SERVER:~$

Ok « inotify-tools » est installé, on peut maintenant parcourir l’aide de ce petit outils avec la commande  « inotifywait –help » :

SERVER:~$ inotifywait --help
inotifywait 3.13
Wait for a particular event on a file or set of files.
Usage: inotifywait [ options ] file1 [ file2 ] [ file3 ] [ ... ]
Options:
-h|--help Show this help text.
@<file> Exclude the specified file from being watched.
--exclude <pattern>
Exclude all events on files matching the
extended regular expression <pattern>.
--excludei <pattern>
Like --exclude but case insensitive.
-m|--monitor Keep listening for events forever. Without
this option, inotifywait will exit after one
event is received.
-r|--recursive Watch directories recursively.
--fromfile <file>
Read files to watch from <file> or `-' for stdin.
-q|--quiet Print less (only print events).
-qq Print nothing (not even events).
--format <fmt> Print using a specified printf-like format
string; read the man page for more details.
--timefmt <fmt> strftime-compatible format string for use with
%T in --format string.
-c|--csv Print events in CSV format.
-t|--timeout <seconds>
When listening for a single event, time out after
waiting for an event for <seconds> seconds.
If <seconds> is 0, inotifywait will never time out.
-e|--event <event1> [ -e|--event <event2> ... ]
Listen for specific event(s). If omitted, all events are
listened for.Exit status:
0 - An event you asked to watch for was received.
1 - An event you did not ask to watch for was received
(usually delete_self or unmount), or some error occurred.
2 - The --timeout option was given and no events occurred
in the specified interval of time.Events:
access file or directory contents were read
modify file or directory contents were written
attrib file or directory attributes changed
close_write file or directory closed, after being opened in
writeable mode
close_nowrite file or directory closed, after being opened in
read-only mode
close file or directory closed, regardless of read/write mode
open file or directory opened
moved_to file or directory moved to watched directory
moved_from file or directory moved from watched directory
move file or directory moved to or from watched directory
create file or directory created within watched directory
delete file or directory deleted within watched directory
delete_self file or directory was deleted
unmount file system containing file or directory unmounted
SERVER:~$

On remarque plusieurs options intéressantes notamment l’option  » -e » qui permet de spécifier des evenements d’ecoute. Une commande du type « inotifywait -e create » va écouter les evenement de type « Création de fichier ». On trouve aussi l’option « -m » qui permet a inotify de ne pas s’arreter apres le premier evenement détecté. il existe aussi l’option « -c » qui permet de recupérer l’evenement sous un format CSV.

On va donc utiliser toutes ses options pour détecter les evenements qui nous intéresseavec la commande suivante :

SERVER:~#inotifywait -cm -e create /home/vpopmail/domains/domain.com/journal/Maildir/new/ | php parseMail.php

Cette commande permet de détecter les evenements de création de fichier dans le dossier mailbox du domaine domain.com . On execute à la suite de cet évènements la commande #php parseMail.php qui va traiter le mail recu.

 

Installation subversion Etape 2

Salut !!

Petit post pour finir l’install de subversion sur Gentoo en tant que module APACHE (merci dav 🙂 )

Je vous donnes mes fichiers de configuration.

Fichier ‘/etc/apache2/modules.d/47_mod_dav_svn’  :

<IfDefine SVN>
      <IfModule !mod_dav_svn.c>
              LoadModule dav_svn_module      modules/mod_dav_svn.so
      </IfModule>
      <Location /repos>
              DAV svn
              SVNPath /var/svn/repos
              AuthType Basic
              AuthName "Subversion repository"
              AuthUserFile /var/svn/mon_repository/conf/svnusers
              Require valid-user
      </Location>
      <IfDefine SVN_AUTHZ>
              <IfModule !mod_authz_svn.c>
                      LoadModule authz_svn_module    modules/mod_authz_svn.so
              </IfModule>
      </IfDefine>
</IfDefine>

Dans mon /httpd.conf

Verifier les lignes suivantes :

Code:

LoadModule dav_svn_module modules/mod_dav_svn.so 
LoadModule authz_svn_module modules/mod_authz_svn.so

<Location /svn>

      DAV svn
      SVNPath /home/ton_login/svn
      AuthType basic
      AuthName "SVN : TON SITE"
      AuthUserFile /home/ton_login/.htpasswd
      #AuthzSVNAccessFile /home/ton_login/svn.authz
      AuthzSVNAccessFile /home/ton_login/.authz
      <Limitexcept>
              Require valid-user
      </LimitExcept>
</Location>

Et voila si ca peut finir de vous aider

Evolve IT – Redesign It