Nicolas Vannier - développeur web à Bourges

Trucs et astuces

Server status et WordPress

Si on souhaite activer la page server-status d’Apache avec un WordPress sur le même domaine, WordPress prend toujours le dessus et indique « Page introuvable ».

La faute au fichier .htaccess qui vérifie si la page appelée existe (un fichier ou un dossier), et dans le cas contraire, passe par le contrôleur de WP.

Une solution trouvée sur Internet consiste à modifier le fichier .htaccess et à ajouter une ligne :

RewriteCond %{REQUEST_URI} !=/server-status

Ce qui donne en général :

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/server-status
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Problème : à chaque fois que WordPress regénèrera le fichier htaccess (tout ce qui est contenu entre # BEGIN WordPress et # END WordPress) sera supprimé. Ce n’est donc pas une solution viable.

Le plus simple est d’ajouter un fichier server-status à la racine de votre site : Apache testera la condition

%{REQUEST_FILENAME} !-f

et trouvera un dossier et ne passera pas dans le contrôleur général de WP.

Virus Gendarmerie Nationale, Sacem : solutions et recommandations

En moins de 2 mois, cela fait 4 PC que j’ai réparé pour un virus souvent appelé le « virus gendarmerie » ou « virus Sacem ».

Symptôme
Un écran s’affiche au démarrage de l’ordinateur (ou plutôt une page Web), indique que vous avez commis une infraction et que vous devez payer d’une amende pour retrouver l’usage de votre ordinateur. Il est impossible de lancer le gestionnaire des tâches ou d’accéder à une quelconque application.

Variantes :

  • L’écran affiche les logos de la gendarmerie et Police nationale pour téléchargement de photos pédo-pornographiques
  • L’écran affiche le logo de la Sacem pour téléchargement illégal de musiques

L’écran affiche quoiqu’il arrive « Impossible d’afficher la page Web » en cas d’indisponibilité de la connexion Internet.

Ces virus ont commencé à sévir fin 2011, en témoigne ce site spécialisé (image ci-dessus), mais il semblerait qu’ils se répendent à nouveau (à croire que les éditeurs d’antivirus dorment tranquillement).

Il se trouve que ces virus sont des ransonwares, autrement dit, ils vous demandent de l’argent pour débloquer votre ordinateur. Ces virus sont faux, et la soit-disant amende ne sera jamais versé à l’Etat français ou à la Sacem mais à des sociétés  malhonnêtes.

Il ne faut surtout pas payer l’amende !

Solutions

  1. La solution la plus simple consiste à aller dans le mode sans échec avec prise en charge réseau, d’installer MalwareBytes Antimalware et de lancer la désinfection. Normalement le virus est détecté et supprimé.

    Si le mode sans échec n’est pas accessible ou est déjà pris aux griffres du virus, il faut tenter la méthode n°2.

  2.  Enlever le disque dur de l’ordinateur infecté, le lire depuis un autre PC et lancer le scan de MalwareBytes dessus.

Comment en sommes-nous arrivés là ?

La plupart du temps, le logiciel s’installe par le biais d’un plugin dans le navigateur, sur des sites de streaming par exemple. Si vous allez sur ce genre de sites, soyez avertis du risque encouru !

Recommandations

  • Evitez de consulter des sites de streaming vidéo
  • N’installez jamais les plugins et logiciels proposés sur des sites de téléchargement / streaming
  • Préférez Google Chrome à Internet Explorer
  • Faites les mises à jour de Windows ! (ça prend du temps mais ça ne coûte rien)
  • Effectuez régulièrement des sauvegardes de vos fichiers importants (un disque dur externe coûte moins de 70 euros !)

Mettre à jour PhpMyAdmin avec un script Bash

Les dernières version de PhpMyAdmin ne propose plus le script Perl upgrade.pl, qui permettait de mettre à jour automatiquement PhpMyAdmin en étant exécuté une fois connecté en SSH.

Voici un petit script Bash qui permettra de palier à ce manque ! Vous n’avez qu’à modifier le chemin de votre répertoire PhpMyAdmin (sans slash à la fin), à attribuer les droits d’exécution sur ce script (chmod +x upgrade_pma) et à le placer par exemple dans /usr/local/bin/.

Vous n’aurez plus qu’à taper upgrade_pma pour le lancer !

#!/bin/bash
 
#chemin de phpMyAdmin : à modifier
PATH_PMA="/var/www/phpMyAdmin"
#ne rien modifier sous cette ligne
 
#on recupere le numero de la version actuelle dans le README
LOCAL_VERSION=$(head -4 "$PATH_PMA/README" | tail -1)
LOCAL_VERSION=${LOCAL_VERSION:8}
 
#on recupere le numero de version dispo en ligne
ONLINE_VERSION=$(wget -o /dev/null -O - http://phpmyadmin.net/home_page/version.php | head -1)
 
if [[ $ONLINE_VERSION != $LOCAL_VERSION ]]
then
echo "Nouvelle version disponible $ONLINE_VERSION ! (version actuelle : $LOCAL_VERSION)"
echo 'Souhaitez-vous mettre a jour ? (O/N)'
read REPONSE
 
if [[ $REPONSE == 'O' || $REPONSE == 'o' ]]
then
echo 'Telechargement en cours...'
 
#on deplace la version actuelle
DATE="$(date +"%Y%m%d%S")"
OLD_VERSION="$PATH_PMA-${DATE}"
mv $PATH_PMA $OLD_VERSION
 
#creation du nouveau dossier
mkdir $PATH_PMA
 
#telechargement de la derniere version
URL=$(wget -o /dev/null -O - http://phpmyadmin.net/home_page/version.php | head -4 | tail -1)
wget $URL -o /dev/null --output-document=/tmp/nouvelleversion.tar.gz
 
#decompression
tar -C $PATH_PMA -xf /tmp/nouvelleversion.tar.gz --strip-components 1
rm /tmp/nouvelleversion.tar.gz
 
#copie de la config
cp "${OLD_VERSION}/config.inc.php" $PATH_PMA
 
echo "Mise a jour effectuee avec succes ! Version actuelle : $ONLINE_VERSION"
else
echo 'Mise a jour annulee'
fi
 
else echo "Vous avez deja la derniere version : $LOCAL_VERSION"
fi

Télécharger le fichier Bash

A faire et à ne pas faire

Sur Internet, on trouve de nombreux blogs indiquant d’utiliser telle ou telle pratique plutôt qu’une autre…

Le site Do’s & Don’ts répertorie les pratiques à employer et celles à éviter. Seul reproche de ce site : aucune explication n’est donnée sur les pratiques et certaines listées sont contestables. Exemple : « Ne pas utiliser d’éléments HTML vides pour effectuer un clear ». Je me demande comment l’on pourrait faire autrement que :

<div style="clear:both"></div>

Lien : http://webdosanddonts.com/

Collection de « Cheatsheets »

Les Cheatsheets sont des planches à imprimer qui permettent de se retrouver rapidement le nom d’une fonction, d’un attribut pour n’importe quel langage de programmation (et pas seulement).

On trouve notamment des Cheatsheets en PHP, MySQL, jQuery, etc. L’article du blog SpyreStudios regroupe la grande majorité de ces « feuilles de triche ».

Lien : http://spyrestudios.com/mega-collection-of-cheatsheets-for-designer-developers/

Checklist de lancement de site Internet

Lors de gros projets, il peut vite arriver d’oublier d’effectuer certaines tâches avant son lancement. Le site Lauchlist vous propose, sous forme de checklist, de vérifier que tout est prêt.

Lien : http://launchlist.net/