Changer l’emplacement de mysql.sock avec MAMP
Si comme moi vous utilisez le serveur MySQL fourni avec MAMP pour d’autres usages que le développement PHP, par exemple comme gestionnaire de base de données pendant la création d’applications Django ou Ruby on Rails, il peut être utile de changer l’emplacement de son socket UNIX vers un emplacement plus commun, qui sera trouvé automatiquement par ces applications. Par exemple /tmp/mysql.sock.

Pour ce faire il va nous falloir modifier les script de lancement et d’arrêt de MySQL. Rendons nous dans le dossier bin de MAMP :
cd /Applications/MAMP/bin
Et sauvegardons les scripts dans leur version actuelle :
cp startMysql.sh startMysql.old.sh
cp stopMysql.sg stopMysql.old.sh
Éditons maintenant ces deux fichiers avec notre éditeur de texte préféré (pour ma part ça donnera vim startMysql.sh stopMysql.sh) et remplaçons les occurrences de /Applications/MAMP/tmp/mysql/mysql.sock par /tmp/mysql.sock. Sauvegardez ces deux fichiers puis relancez MAMP.
Vos applications extérieures à MAMP seront désormais à même de se connecter au serveur MySQL via socket UNIX sans configuration particulière… en revanche impossible de se connecter au serveur via PHP. Effectivement, il nous faut également mettre à jour la configuration de PHP.
Éditons le fichier /Applications/MAMP/conf/php5/php.ini (ou /Applications/MAMP/conf/php4/php.ini si vous utilisez encore PHP 4) et remplaçons la ligne mysql.default_socket = /Applications/MAMP/tmp/mysql/mysql.sock par mysql.default_socket = /tmp/mysql.sock.
Redémarrez à nouveau MAMP et tout devrait fonctionner correctement !
Retrouvez l’un de mes articles dans Linux Identity n°6
Les anciens utilisateurs de Easy Ubuntu trouveront sûrement un intérêt à l’article intitulé Installation des pilotes et des extensions nécessaires à une utilisation courante
publié dans Linux Starter Kit / Linux Identity n°6. Dedans, j’y détail l’installation des composants soumis à des brevets logiciels et / ou non-libres qui ne sont pas distribués avec Ubuntu mais qui se révèlent malheureusement indispensable pour une utilisation multimédia de son ordinateur (lecture de musiques et de vidéos, de DVD, jeux vidéos en 3D, …). L’article revient en partie sur les fonctionnalités du petit utilitaire que j’avais conçu aux débuts d’Ubuntu et indique comment arriver au mêmes résultats en utilisant les mécanismes qui ont étaient intégrés dans la distribution depuis.

Le magazine est fourni avec un CD d’installation francisé d’Ubuntu Intrepid Ibex et contient bon nombre d’autres articles qui compléteront agréablement la documentation francophone pour vous aider à prendre en main la distribution. Il est disponible en kiosques et depuis le site internet d’Oxy Press pour une dizaine d’euros.
Je ne reviendrais pas sur le choix du Tux Napoléon en couverture
Monter une partition Linux sous Mac OS X
Ou plus précisément une partition de type ext2/3, le système de fichier le plus populaire sous GNU/Linux, utilisé par défaut sur Ubuntu.
Mac OS X n’inclut pas de pilote pour monter les partitions ext2, heureusement un projet libre comble ce manque : ext2fsx. Récupérer la version ext2fsx_dev sur le site du projet, la seule supportant l’architecture x86 (tous les Mac depuis le passage aux processeurs Intel). Un simple double clic sur le fichier .dmg et un redémarrage de l’ordinateur suffira à l’activation du pilote.
Vous pouvez désormais monter vos partitions formatés en ext2, 3 ou 4 via la commande mount ou depuis un sympathique petit utilitaire nommé Gestionnaire ExtFS que l’on trouve dans le menu Autre des Préférences Système.
Quel développeur suis-je ?
- Os : Ubuntu et Mac OS X
- Éditeurs : Eclipse et vim
- Langages favoris : Python, C
- VCS : Subversion
- Navigateur : Firefox
Alors, quel développeur je suis ?

Programmer hierarchy
Découvrez Appnr, une interface web d’ajout de programmes pour Ubuntu
Appnr est un portage web du système d’installation de paquets simplifié d’Ubuntu (GNOME Application Installer). Il permet de parcourir les différents logiciels disponibles dans les dépôt de notre distribution favorite depuis un simple navigateur et via une jolie interface AJAX. Appnr reprend les grandes lignes de son grand frère desktop : classement par catégorie, alphabétique et par popularité.

L’application utilise le pseudo-protocole apturl afin de permettre l’installation des paquets directement d’un simple click depuis Firefox. Appnr est très pratique pour suggérer l’installation d’un logiciel à un utilisateur d’Ubuntu via le réseau de manière intuitive et user-friendly. Elle pourra également agréablement remplacer le très austère packages.ubuntu.com pour fouiller dans les dépôts depuis un autre système.
Se connecter au chat Facebook via Pidgin sous Ubuntu
Tout comme dans la dernière version de Adium, l’excellent client libre de messagerie instantanée pour Mac, il est possible de se connecter au chat Facebook via Pidgin (anciennement GAIM). Pour ce faire, nous devrons lui greffer un plugin disponible sur Google Code. Voici la marche à suivre pour l’installer sous Ubuntu.

- Récupérez les archives facebook_icons.zip et pidgin-facebookchat-*.deb (à l’heure ou j’écris ces lignes pidgin-facebookchat-1.37.deb) sur la page du projet dans le bloc Featured Downloads.
- Installez maintenant le plugin par un simple double-click sur le fichier .deb puis un click sur le bouton Installer le paquet qui se trouve en haut à droite de l’installateur de paquets Gdebi.
- Relancez Pidgin si il est déjà en cours d’exécution puis ajouter votre compte Facebook depuis le menu Comptes puis Gérer.
Ça marche !
Il existe également un thème d’émoticones pour Pidgin nommé Original Smileys qui contient tous les smileys officiels de nombreux services dont le Facebook chat. Son installation est simplissime, téléchargez l’archive, déroulez le menu Outils puis sélectionnez Préférences. Rendez-vous dans l’onglet Thèmes des frimousses, cliquez sur Ajouter et sélectionez l’archive téléchargée.
Gandi lance son offre d’hébergement !
Après 9 mois de beta test, Gandi, le célèbre registar qui a démocratisé l’achat de noms de domaines sur Internet, lance son offre d’hébergement extensible et à bas prix.
Pour 10€ HT par mois vous obtenez une « part » sur un serveur virtualisé (la techonologie sous jacente est Xen) ce qui équivaut à un serveur avec processeur Intel Celeron, 256Mo de mémoire vive (et 512Mo de SWAP) et 5 Go de disque dur. Si le besoin sans fait sentir, vous pouvez très simplement ajouter d’autre « parts » à votre serveur via une interface web et augmenter ainsi ses capacités sans avoir besoin de modifier la configuration de votre serveur.
Le traffic est illimité et l’offre inclus un système d’installation de services simplifiés (web, mail, …). Vous avez totalement la main sur votre serveur (shell root) et vous pouvez le configurer comme bon vous semble, comme si vous étiez sur un véritable serveur dédié.
Ce blog est hébergé sur des serveurs Gandi depuis quelques temps et je peux dire que j’en suis très conten, un nouveau concurrent de taille pour les Dedibox d’Illiad et l’offre Kimsufi d’OVH est né.
Faire fonctionner Google Notifier pour Mac en mode sécurisé
Peut-être utilisez-vous Google Notifier pour OS X ? Cet un utilitaire permet d’avertir en temps réel lors de la réception d’un messages sur Gmail, de rappeler les rendez-vous Calendar et d’intégrer ces services au système d’Apple.
Le problème, c’est que par défaut il fait transiter vos identifiants en clair sur le réseau. Si vous vous connectez à un réseau sans fil partagé tel que le réseau Wi-Fi de votre université ou d’une gare, c’est le vol de compte assuré.
Heureusement, une option cachée permet de forcer l’utilisation d’une connexion sécurisée via HTTPS, pour l’activer déployer le menu déroulant en cliquant sur l’icône de Google Notifier, appuyez simultanément sur commande (Pomme) et option (alt) puis sélectionnez l’entrée Preferences....
Dans la fenêtre qui apparait entrez SecureAlways pour Key et 1 pour Value.
Cliquez sur Set pour valider et fermez la fenêtre. C’est fait !
Que vous utilisiez un Mac ou non, c’est toujours une bonne idée de vous connecter à Gmail via https://gmail.com afin de ne pas vous faire voler vos mots de passe. Pour éviter les dangereux oublis il existe une option intitulée Toujours utiliser le protocole https activable depuis les paramètres de l’application web.
Astuce originalement trouvée par Highplace.
Changer le message d’accueil de votre terminal
Lorsque vous lancez un shell sous votre Unix préféré (que ce soit GNU/Linux ou un BSD ou OS X), un petit texte est affiché avant le prompt, c’est le MOTD (Message Of The Day). Ils sont souvent austère, comme c’est le cas sur les serveurs d’hébergement Gandi :
[---------------------------------------] Gandi - Welcome to your new OS image. [---------------------------------------]
Pour le changer pour quelque chose de plus joyeux il suffit de modifier le fichier /etc/motd en tant que root !
Petite astuce, vous pouvez utiliser un FIGlet-like pour créer un logo en art ASCII !
Nouvelle offre d’hébergement à bas prix chez Gandi : installez votre serveur web
Gandi m’a gentiment fourni une invitation à la bêta de leur service d’hébergement. Je compte y passer ce blog et voir comment se comportent les frameworks Symfony et Django sur ces serveurs virtualisés et scalable.
J’ai donc pris une part (6€ HT/mois) afin d’y installer un serveur web composé d’Apache, de PHP, de MySQL et géré par hosting.py.
Première opération, créer le serveur. J’ai choisi le mode expert et Ubuntu comme distribution (c’est le choix par défaut). Tout ce fait très simplement via le site internet de Gandi. Quelques minutes après la création du serveur via l’interface un mail arrive vous indiquant l’adresse IP de votre serveur tout neuf.
C’est une version personnalisée par Gandi de Gutsy qui est installée, un peu vieille mais très stable, cela me convient parfaitement.
Première opération : mettre à jour la distribution.
Connectez vous via SSH puis passez en root en tapant su (un peu perturbant pour une Ubuntu n’est-ce pas
) puis tapez la classique commande apt-get update && apt-get dist-upgrade. Cette mise à jour est importante car elle corrige certaines failles de sécurité critiques dont celle désormais célèbre touchant le protocole DNS.
Installer Apache, PHP et MySQL
La commande magique pour installer le tout : apt-get install apache2 mysql-server php5 libapache2-mod-php5 php5-mysql phpmyadmin.
L’utilitaire d’installation vous demandera d’abord de choisir un mot de passe pour le compte root du serveur MySQL puis de sélectionner quel version d’Apache doit être configurée pour être utiliser avec phpMyAdmin : choisissez apache2.
Vous pouvez taper l’adresse IP de votre serveur dans votre navigateur préféré afin de vérifier que tout fonctionne bien. phpMyAdmin est accessible depuis http://<votre_ip>/phpmyadmin/.
Une petite amélioration afin d’augmenter les performances : installons xcache. Comme son nom l’indique, xcache permet de mettre en cache les versions « compilées » des scripts PHP (opcode) et ainsi d’améliorer grandement les performances du langage le plus populaire du web.
Rien de plus facile : apt-get install php5-xcache. La commande /etc/init.d/apache2 restart vous permettra de rendre effective la mise en cache.
Sécurisons tout ça
Très bien, notre serveur fonctionne. Mais ce n’est pas encore la panacée. Une simple requête HTTP GET nous renvoi comme en-têtes :
Date: Tue, 12 Aug 2008 19:51:49 GMT Server: Apache/2.2.4 (Ubuntu) PHP/5.2.3-1ubuntu6.4 Content-Length: 746 Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Content-Type: text/html;charset=ISO-8859-1
Les en-têtes HTTP sont riches, trop riches : on y apprend que le serveur fonctionne sous la distribution Ubuntu Linux, que le serveur web est Apache en version 2.2.4, que le langage de script PHP en version 5.2.3 est disponible et que les versions installées sont celles pacagées par la distribution (ce qui donne des indices supplémentaires sur la configuration utilisée). Ces informations sont en partie reprises dans les pages d’erreurs et les index générés automatiquement du serveur web.
Même si cacher les noms et numéros de versions des logiciels installés n’améliore pas la sécurité réelle de votre serveur elle le rend moins visible des pirates en herbe et autres robots des amateurs de warez.
Pour masquer les informations distillées par Apache éditons le fichier /etc/apache2/apache2.conf, remplaçons la ligne ServerTokens Full par ServerTokens Prod puis ServerSignature On par ServerSignature Off.
Pour celles que fourni PHP c’est dans /etc/php5/apache2/php.ini que ça se passe. Remplacez expose_php = On par expose_php = Off. Même si cela n’a rien à voir avec les numéros de versions, ça peut être une bonne idée de désactiver églament les magic quotes en remplaçant magic_quotes_gpc = On par magic_quotes_gpc = Off.
Relançons encore une fois Apache /etc/init.d/apache2 restart afin de faire prendre en compte nos modifications, c’est mieux.
Reste MySQL. Nous avons défini un mot de passe pour le compte root lors de l’installation mais il reste quelques brèches importantes comme la possibilité de se connecter sans compte ou celle d’utiliser le compte root depuis l’extérieur (sans passer par une console SSH ou phpMyAdmin – ce qui facilite les attaques par force brute).
Un script fourni nommé mysql_secure_installation permet de remédier à tous ces problèmes. Lancez-le. Excepté pour le changement de mot de passe root que nous venons de définir lors de l’installation je vous conseil de répondre par le choix proposé par défaut à toutes les questions.
Notre serveur est un peu mieux préparé à survivre dans la jungle qu’est le web.
Note : nous n’abordons ici que la sécurisation des composants LAMP de notre serveur. C’est un bon début mais c’est loin d’être une protection absolue ou suffisante.
Installer hosting.py
hosting.py est un petit logiciel que j’ai développé qui permet de gérer de manière très simple des comptes web. Il se base sur le système de gestion des utilisateurs UNIX et automatise les tâches les plus courantes lors de l’administration d’un petit serveur web mutualisé à savoir la mise en place et la modification de compte comprenant un utilisateur UNIX (accès SSH, FTP, …), un hôte virtuel apache, un compte et une base de données MySQL.
Il est conçu pour fonctionner avec les distributions basées sur Debian, Ubuntu en particulier. Il permet de simplement séparer les comptes des différents sites qu’hébergera votre serveur, ce qui n’est pas un mal question sécurité.
Commençons par installer les dépendances nécessaires à la récupération et à l’utilisation de mon script : apt-get install subversion python-mysqldb
Créons maintenant le squelette du répertoire de base des comptes web :
- mkdir /etc/skel-www
- mkdir /etc/skel-www/logs
- mkdir /etc/skel-www/public_html
Comme son nom l’indique, logs accueillera les logs de connexion d’Apache (on pourra plus tard configurer AWstats pour générer des statistiques) et public_html sera le répertoire web de nos utilisateurs.
Récupérons la dernière version de hosting.py via Subversion : svn checkout http://debian-hosting.googlecode.com/svn/trunk/ debian-hosting-read-only
Éditez la variable MYSQL_PASSWD du fichier debian-hosting/hosting.py pour qu’elle contienne le mot de passe MySQL de l’utilisateur root puis donnez les droits en exécution sur ce même fichier en tapant chmod a+x debian-hosting/hosting.py.
Pour créer un compte utilisateur, passez en root avec la commande su puis tapez debian-hosting/hosting.py add monsite.com. Vous pouvez voir les informations de connexion s’afficher, notez les
Un sous domaine du type monsite.com.lapin-blanc.net est automatiquement créé (pour être effectif, il nécessite que lapin-blanc.net, notre domaine de test, dispose d’un wildcard dans ses entrées DNS).
Je vous conseil de le laisser à des fins de test et de debug, néanmoins un vrai nom de domaine c’est mieux. Toujours en tant que root éditez le fichier généré automatiquement nommé /etc/apache2/sites-available/monsite.com et transformez la ligne ServerName monsite.com.lapin-blanc.net en ServerAlias monsite.com.lapin-blanc.net. Ajoutez au dessus de celle-ci ServerName monsite.com.
Rechargez Apache (toujours en root) : /etc/init.d/apache2 reload
Votre serveur web est le site que vous avez créé sont fonctionnels si vos entrées DNS sont bien configurées. Placez vos fichiers web dans /home/monsite.com/public_html/ pour qu’ils soient visibles sur http://monsite.com


