Skip to main content

Réglages courants de WampServer

Les réglages ci-dessous sont courants pour une installation de Wamp Server toute fraîche.

Changer le répertoire root du serveur

C’est le répertoire qui s’affiche lorsqu’on lance Wamp et que l’on va sur localhost (ou 127.0.0.1) dans son navigateur. Par défaut, c’est le dossier /www du répertoire d’installation de Wamp.

Éditer le fichier C:\Program Files\Wamp\bin\apache\apachex.y.z\conf\httpd.conf et modifier la directive DocumentRoot pour la faire pointer vers le répertoire choisi. De plus, il faut également modifier quelques lignes en-dessous le chemin dans la balise <Directory>.

Envoyer des mails

Il vous faudra pour cela le programme Fake Sendmail (à extraire dans un dossier sendmail du répertoire d’installation, par défaut C:\wamp).

Ouvrir votre fichier php.ini (par défaut dans C:\wamp\bin\apache\apacheX.Y.Z\bin) et chercher l’option sendmail_path. La décommenter (enlever le point-virgule au début) et ajouter le chemin vers sendmail, comme suit :

sendmail_path = "C:\wamp\sendmail\sendmail.exe -t"

Enregistrer et fermer le fichier, puis redémarrer Wamp Server.

Il vous faudra ensuite écrire le code permettant d’envoyer un email. En PHP, je passe par la librairie PHPMailer. Télécharger la dernière version, puis récupérer les fichiers suivants (pas besoin des autres fichiers pour une simple fonctionnalité d’envoi d’emails) :

Cette librairie PHP est très populaire, et beaucoup de développeurs l’incluent dans leur projet pour sa simplicité. De ce fait, elle constitue une cible de choix pour les pirates : plusieurs vulnérabilités ont été découvertes par le passé, corrigées immédiatement par la communauté de développement très active sur ce projet. Il faudra donc bien veiller à la mettre à jour régulièrement, simplement en téléchargeant les nouveaux fichiers et en les extrayant à la place des anciens. Vous pouvez d’ailleurs écrire un petit script à cette fin.

Placez les fichiers dans un même dossier de votre projet, incluez le fichier PHPMailerAutoload.php (et seulement celui-ci), puis écrivez une fonction d’envoi d’emails.

Voilà la fonction d’envoi d’emails que j’utilise ; pas parfaite, mais elle convient à mes besoins.

// Constantes
define("EXPEDITEUR_NOM", "Vous");
define("EXPEDITEUR_ADRESSE", "noreply@votredomaine.tld");

// Permet de déterminer si on est en dev ou en prod
if($_SERVER['HTTP_HOST'] == 'votredomaine.tld'){
	define('ENV', 'prod');
	define("SMTP_HOST", "127.0.0.1");
	define("SMTP_PORT", "25");
	define("SMTP_USERNAME", "");
	define("SMTP_PASSWORD", "");
}
else {
	define('ENV', 'dev');
	define("SMTP_HOST", "127.0.0.1");
	define("SMTP_PORT", "25");
	define("SMTP_USERNAME", "");
	define("SMTP_PASSWORD", "");
}

// La fonction en tant que telle
// Remarque : $to peut être une adresse email ou un Array d'adresses email
function send_mail($to, $sujet, $message, $fromName, $fromEmail){
	$mail = new PHPMailer;
	$mail->setLanguage('fr', 'phpmailer.lang-fr.php');
	$mail->isSMTP();
    $mail->XMailer = ' ';
    $mail->Port = SMTP_PORT;
    $mail->Host = SMTP_HOST;

    if(ENV == 'dev'){
        $mail->SMTPDebug = 3;
        $mail->SMTPAuth = false;
    }
    else {
        $mail->SMTPDebug = 0;
        $mail->SMTPSecure = 'tls';
        $mail->SMTPAuth = true;
        $mail->Username = SMTP_USERNAME;
		$mail->Password = SMTP_PASSWORD;
    }

	$mail->AddReplyTo($fromEmail, $fromName);
	$mail->From = EXPEDITEUR_ADRESSE;
	$mail->FromName = EXPEDITEUR_NOM;

	if(gettype($to) == 'array'){
		foreach($to as $adresse){
			$mail->AddBCC($adresse);
		}
	}
	else {
		$mail->addAddress($to);
	}

	$mail->WordWrap = 50;
	$mail->isHTML(true);

	$mail->Subject = "=?utf-8?b?".base64_encode($sujet)."?=";
	$mail->Body = $message;

	if($mail->send()) {
		return true;
	}
	else {
		return $mail->ErrorInfo;
	}
}

J’utilise une petite condition au début pour savoir si on est en environnement de dev ou de prod. Vous pouvez ainsi avoir des réglages SMTP différents selon l’environnement. Pour la configuration que je vous propose dans cet article, c’est à dire en travaillant en local sur votre machine Windows, il faut laisser le serveur à 127.0.0.1 sur le port 25 en local. Pour votre environnement de prod, c’est à vous de régler les paramètres.

Pour finir, afin de recevoir les emails, je vous propose le très pratique Papercut qui émulera un serveur mail sur votre ordinateur. Lorsque vous enverrez des emails depuis votre application web en développement, ceux-ci seront reçus par Papercut. Ainsi, vous n’aurez pas besoin de dépendre d’un service externe. Il suffit simplement d’installer et lancer ce logiciel pour l’utiliser :

Dernière astuce pour les emails : je vous conseille d’utiliser ce template d’email HTML. Il est simple, propre, et fonctionne dans tous les webmails et logiciels, desktop et mobile.

Rendre accessible Wamp sur votre réseau local

Par défaut, vous ne pouvez pas accéder à votre serveur Wamp depuis une autre machine. Pourtant, cela peut être utile pour tester son application ou son site web depuis une autre configuration (résolution différente, test sur mobile…).

Pour cela, ouvrir le fichier httpd.conf (par défaut dans C:\wamp\bin\apache\apacheX.Y.Z\conf) et chercher l’expression Require local (chez moi, autour des lignes 280). Cette instruction autorise votre propre PC. Sur la ligne du dessous, ajoutez alors :

Require ip a.b.c.d

où a.b.c.d est l’adresse IP du PC que vous souhaitez autoriser. Si vous le souhaitez, vous pouvez également écrire seulement les premiers octets de l’adresse IP afin d’autoriser tout votre réseau local, ou utiliser la notation CIDR :

Require ip a.b.c
Require ip a.b.c.0/24

La plupart du temps, votre réseau local sera 192.168.0.0/24. Toutefois, vérifiez bien sur quelle réseau vous vous trouvez à l’aide de la commande ipconfig sur Windows ou ifconfig sur Linux.

Attention, cette astuce est valable pour la version 2.4+ de WampServer, qui utilise Apache 2.4.x au minimum. Pour les versions antérieures, il y a une autre syntaxe. Profitez-en pour mettre à jour WampServer, ça fait pas de mal !

Enregistrer et fermer le fichier, puis redémarrer Wamp Server.

Configurer cURL pour le HTTPS

Si vous avez à utiliser cURL pour récupérer du contenu depuis d’autres sites web, vous avez sans doute eu des petits soucis pour joindre les sites en HTTPS. En effet cURL pour fonctionner a besoin de savoir à quels certificats ils peut faire confiance. Or par défaut, aucune configuration n’est faite, cURL ne fait donc confiance à aucune connexion HTTPS et on se retrouve bien embêté.

Beaucoup de solutions sur Internet préconisent d’utiliser les options CURLOPT_SSL_VERIFYPEER à false ou encore CURLOPT_SSL_VERIFYHOST à 0, mais c’est une très mauvaise chose, car cela indique que cURL ne doit faire aucune vérification sur les certificats qu’ils rencontre. Aïe !

On va plutôt passer par la solution intelligente et installer la bibliothèque de certificats à qui cURL doit faire confiance. Pour cela, téléchargez le fichier cacert.pem depuis le site officiel de cURL, puis placez-le où vous le souhaitez sur votre disque-dur (j’ai choisi de le mettre dans C:\wamp\bin\php). Ce fichier, mis régulièrement à jour, contient la base de certificats des autorités de certification (qui permettent de signer les certificats des sites web) que Mozilla intègre dans son navigateur Firefox.

Il faut ensuite dire à PHP d’utiliser cette bibliothèque de certificats. Pour cela, il faut éditer vos fichiers php.ini (c’est à dire, celui du dossier C:\wamp\bin\apache\apacheX.Y.Z et celui du dossier C:\wamp\bin\php\phpu.v.w) et rajouter ces options :

curl.cainfo = "C:/wamp/bin/php/cacert.pem"
openssl.cafile = "C:/wamp/bin/php/cacert.pem"

Vérifiez également que la ligne suivante est décommentée (pas de point-virgule au début) :

extension=php_openssl.dll

On termine en relançant tous les services de WampServer.

Installez une autre version de PHP, Apache ou phpMyAdmin

Si vous souhaitez installer une autre version de PHP sur WampServer (pour faire une mise à jour, ou alors parce que vous devez vous adapter aux contraintes de l’environnement de production de votre société), l’opération est assez simple. Prenons pour exemple PHP.

Commencez par télécharger la version de PHP depuis le site officiel. Prenez de préférence une version Thread Safe. Différentes versions de « VC » existent : elles dépendent de la version du package de Visual C++ installée sur votre ordinateur. Sauf contraintes, VC11 est un bon choix, car il sera vraisemblablement déjà installé sur votre ordinateur. Si vous avez un message d’erreur lors du lancement de Wamp à cause d’une DLL manquante, vous pouvez télécharger le package redistribuable de Visual C++ manquant ici.

Extrayez l’archive dans le répertoire d’installation de WampServer, sous-répertoire bin/php/phpX.Y.Z (X.Y.Z étant la version de PHP à installer). Allez dans le dossier de la version précédente de PHP (appelons-la U.V.W) préinstallée dans WampServer, et copiez les fichiers suivants :

  • php.ini
  • phpForApache.ini
  • wampserver.conf

Collez ces fichiers dans le répertoire de la nouvelle version de PHP. Ouvrez les fichiers .ini et remplacez la chaîne U.V.W (correspondant à l’ancienne version) par X.Y.Z (correspondant à la nouvelle version) avec un coup de Rechercher et remplacer.

Quittez puis relancez WampServer. Cliquez sur l’icône près de l’horloge avec le bouton gauche, allez dans PHP, Version, puis sélectionnez la version que vous venez d’installer. WampServer recharge les paramètres, et c’est tout bon !

Pour Apache, télécharger votre version ici et copier les fichiers :

  • conf/httpd.conf
  • conf/extra/httpd-vhosts.conf
  • wampserver.conf

Pour phpMyadmin, télécharger votre version ici et copier les fichiers :

  • config.inc.php

Attention, phpMyAdmin s’installe dans apps/ et non dans bin/. De plus, vous devrez modifier le fichier alias/phpmyadmin.conf et wampmanager.conf de WampServer pour y rechercher et remplacer le numéro de version de phpMyAdmin.

N’oubliez pas d’éditer les fichiers copiés et rechercher/remplacer les numéros de version.

Je vous invite à considérer les deux alternatives suivantes, respectivement à MySQL et phpMyAdmin : MariaDB (qui est open source) et SQL Buddy (qui fait moins usine à gaz). Ils s’installent et s’utilisent de la même façon que MySQL et phpMyAdmin.

Créer des vhosts

La création de virtual hosts vous permettra de gérer plus facilement votre environnement de travail si vous développez plusieurs projets à la fois.

Pour ajouter un virtual host, éditer le fichier C:\Program Files\Wamp\bin\apache\apachex.y.z\conf\extra\httpd-vhosts.conf. Ajouter un bloc tel que celui-ci :

<VirtualHost *:80>
    ServerAdmin VOTRE_ADRESSE_EMAIL
    DocumentRoot "CHEMIN_ABSOLU_VERS_DOSSIER_DE_DEV"
    ServerName NOM_DE_DOMAINE_SOUHAITE
    ErrorLog "logs/NOM_DE_DOMAINE_SOUHAITE.error.log"
    CustomLog "logs/NOM_DE_DOMAINE_SOUHAITE.access.log" common
</VirtualHost>

Bien sûr, ceci constitue simplement la base ; si vous souhaitez mettre en place le HTTPS (bien que l’intérêt soit limité sur un environnement de dev), vous pouvez remplacer le port 80 par le port 443, et ajouter les autres directives courantes pour la mise en place du HTTPS.

Quant au nom de domaine souhaité, vous pouvez indiquer ce que vous souhaitez. Généralement, on choisit NOM_PROJET.local, par exemple blog.local.

Nous allons maintenant éditer le fichier C:\Windows\System32\drivers\etc\hosts afin d’ajouter une entrée pour notre nom de domaine. Rajouter une ligne telle que celle-ci dans le fichier :

127.0.0.1 NOM_DE_DOMAINE_SOUHAITE

Ainsi, quand vous tenterez d’accéder à votre nom de domaine, votre ordinateur n’aura pas à effectuer de requête DNS : c’est votre ordinateur qui réceptionnera la requête, et Wamp qui la prendra en charge. Grâce au virtual host, Wamp saura dans quel dossier se trouvent les fichiers auxquels vous tentez d’accéder.

D’autres idées ?

Si vous avez d’autres suggestions pour étoffer cet article d’astuces concernant WampServer, n’hésitez pas à l’inscrire ou à poser une question dans les commentaires !

Lire la suite

Techniques de désinformation

Korben a publié ce matin un article hautement intéressant : les techniques secrètes pour contrôler les forums et l’opinion publique. Il fait état des méthodes qui sont utilisées par le FBI ou d’autres agences de désinformation pour enfumer les espaces de parole, comme les forums ou les blogs. Principalement utilisées aux États-Unis, il est fortement probable qu’elles soient appliquées au reste du monde, notamment en France.

Comment une telle info (lien original, en anglais), à priori destinée à rester secrète, a pu être dévoilée ? Korben explique que c’est à cause de l’effet Streisand : l’article, publié sur Cryptome (ancêtre de WikiLeaks), a été relayé récemment par un site web, puis censuré.

« Cointelpro est une organisation US liée au FBI dont la mission était de faire de la désinformation et de foutre le bordel parmi les groupes d’activistes. Officiellement, Cointelpro a disparu en 71, mais l’organisation a juste changé de nom. Maintenant, en plus d’infiltrer de manière classique des groupes d’activistes, cette ou ces organisations gouvernementales officient sur Internet pour enterrer les bad buzz et noyer le poisson sur les forums d’activistes. »

On peut donc y apprendre diverses manipulations pour :

  • le forum sliding : faire glisser un sujet sensible vers le fond d’un forum en postant divers courts messages sur des vieux topics, les faisant remonter au-dessus du sujet délicat ;
  • le consensus cracking : établir une hypothèse fragile et sans preuves, puis abreuver le sujet de réponses (à l’aide de faux comptes, là encore) à la fois en la faveur et la défaveur de cette hypothèse, puis orienter doucement le sujet vers votre faveur ;
  • le topic dillution (« trolling ») : abreuver un forum de messages inutiles et superficiels, pour faire passer l’esprit général du forum plus vers du commérages que de la vraie information ;
  • le full control : militer sans relâche et se faire bien voir des administrateurs jusqu’à pouvoir obtenir un poste de modérateur ; il est ensuite très simple de tuer le forum en supprimant des membres, en censurant des messages, en rendant un site temporairement indisponible…

Et autres techniques machiavéliques, notamment Les 25 règles de la désinformation

La lecture est très longue (prenez un bon moment pour bien lire et bien comprendre), mais passionnante et enrichissante. Je dirais qu’elle est même nécessaire pour ne pas avaler tout cru ce qu’on lit sur Internet, et rester toujours sur ses gardes quant à la lecture d’une info (même celle-ci ; peut-être que je cherche à vous enfumer, qui sait ? ;)).

Lire la suite

Vérifier la sécurité d’un PC

La sécurité d’un ordinateur est quelque chose de primordial, auquel il faut faire attention constamment. Inutile de dire « je n’ai rien à cacher, pourquoi les pirates s’en prendraient à moi » : si votre PC n’est pas protégé, il peut servir de passerelle pour infecter d’autres PC.

Mais ce n’est pas toujours facile de savoir si son PC est sécurisé ou non ! Posséder un antivirus et un anti-malware ne fait pas tout : faire des mises à jour Windows Update régulièrement, s’assurer d’utiliser des logiciels à jour, ne pas faire des réglages laxistes, ça compte.

C’est pourquoi il existe des logiciels gratuits pour tester la sécurité d’un PC. Leur fonctionnement est simple, et ils vous fourniront le détail des failles de sécurité de votre système, et vous proposeront de l’aide pour les combler. Pas besoin d’être un expert dans le domaine !

Microsoft Baseline Security Analyser

Cet outil, proposé par microsoft, se basera principalement sur l’analyse des mises à jour de sécurité de Windows Update. Il détectera si vous avez bien fait toutes les mises à jour recommandées.

Téléchargez le logiciel correspondant à votre système (32 ou 64 bits), installez-le et lancez-le :

Le menu principal du logiciel s’affiche. Cliquez sur Analyser un ordinateur.

Cochez les mêmes options de sécurité que sur la capture suivante, puis cliquez sur Démarrer l’analyse.

À la fin, le logiciel vous sort un rapport détaillé de ce qui va ou pas sur votre système. Par exemple, comme vous le voyez sur la capture ci-dessus, j’ai plusieurs mises à jour non faites. Un lien apparait sous chaque ligne pour vous aider à résoudre le problème.

Secunia PSI

Le logiciel Secunia PSI se concentrera lui sur tous les logiciels non mis à jour. Par exemple, savez-vous que Adobe Flash et Acrobat Reader sont les logiciels les plus vulnérables ? Cela s’explique par le fait que tout le monde en a besoin. Les pirates ont donc plus de chance de s’introduire dans un système en passant par l’un de ces logiciels plutôt que par un logiciel que peu de gens utilisent.

Téléchargez, installez, lancez. Voilà la fenêtre principale :

Comme vous le voyez, une analyse se lance dès la première installation. À la fin, une petite fenêtre s’affiche et indique le résultat du scan :

Sur l’exemple ci-dessus, 3 programmes ne sont pas à jour. Plus en détail :

Pour chaque cas, le logiciel vous propose la solution pour résoudre le problème.

Bon sens

Pour terminer, voilà des petites règles de bon sens 🙂

Toujours disposer d’un antivirus à jour (Avast, par exemple). Inutile d’en avoir deux, ils entreraient en conflit l’un-l’autre. Un anti-malware (Malwarebytes’ Anti-Malware par exemple) est également un outil indispensable. Pensez à bien activer le pare-feu directement intégré dans Windows.

Enfin, si vous disposez d’une suite de sécurité complète payante (BitDefender, GData, Kaspersky…), les trois outils ci-dessus seront directement intégrés dedans, pas besoin donc de les rajouter.

Lire la suite

Installer des modules incompatibles dans Firefox et Thunderbird

Avec le nouveau rythme de mises à jour chez Mozilla, les versions de Firefox et Thunderbird se succèdent et ne se ressemblent pas et se ressemblent. Ainsi, de nombreuses extensions sont rendues incompatibles avec les nouvelles versions de Firefox et Thunderbird du jour au lendemain.

Pourtant, un simple réglage permettrait d’installer des vieilles extensions dans les nouvelles versions de Firefox et Thunderbird. Je vais donc vous expliquer comment rendre compatible une extension avec Firefox et Thunderbird.

Prenons le cas concret de iLeopard Mail. Il s’agit d’un thème donnant l’apparence de Leopard Mail (client Mac) à votre Thunderbird, même sous Windows. L’extension fonctionne pour Thunderbird 3.2, mais pas les nouvelles versions 5 et 6. Nous allons corriger ça.

Commencez par téléchargez le fichier du module que vous voulez rendre compatible, qui a normalement l’extension .jar. Si vous ne voyez pas l’extension à la fin du fichier, il va falloir l’afficher. Dans l’explorateur, cliquer sur Organiser >>> Option des dossiers et de recherche >>> Affichage, et dans la liste, décocher la case « Masquer les extensions dont le type est connu ».

Changez l’extension .jar en .zip. Vous pouvez alors l’ouvrir comme une archive, et voir plusieurs fichiers à l’intérieur. Extrayer le fichier install.rdf puis éditez-leavec un éditeur de texte (Notepad, Wordpad, etc.). Repérez la ligne

<em:maxVersion></em:maxVersion>

Vous devriez voir un numéro, entre ces deux balises. Changez ce numéro, et mettez par exemple 20.

Enregistrez, mettez à jour le fichier ZIP, re-changez l’extension en .jar, puis installez-le comme une extension Thunderbird. C’est bon, l’extension marche dans votre logiciel, jusqu’à la version 20 !

Attention : cette méthode est sans danger pour la plupart des extensions. En revanche, pour certaines « grosses » extensions donc le fonctionnement est plus compliqué, il se pourrait que la méthode ne marche pas.

Lire la suite