De la sécurité de vos mots de passe

En terme de mot de passe, on nous rebat souvent les oreilles avec des recommandations sécuritaires qui tombent sous le sens. Par contre, les arguments qui sous-tendent ces recommandations sont parfois largement infondés.
Tout d'abord, on nous dit de ne pas choisir un mot de passe facile à deviner, c'est bien sûr du bon sens. On nous dit que le mot de passe doit être long, car les ordinateurs actuels permettent de tester des milliers de mots de passe par seconde. Plus le mot de passe est long, plus il sera long à trouver. Certes. C'est mathématiquement exact. Mais à quoi arrive-t-on si on force les gens à utiliser un mot de passe à la fois long et compliqué ? Ils vont utiliser le même mot de passe partout, ils vont le noter quelque part, etc.
Imaginons un instant qu'un pirate tente de deviner votre mot de passe de messagerie. Il a une très bonne connexion internet, et son ping (le délai qui s'écoule entre le moment où il envoie une requête au serveur, et le moment où le serveur dit qu'il a bien reçu cette requête) est de 10 millisecondes. Il faut ajouter à cela le temps de traitement sur le serveur, et l'envoi de la réponse. Mettons pour simplifier que la totalité de la transaction dure 20 ms. Si votre mot de passe de messagerie fait 8 caractères différents et qu'il utilise des lettres minuscules (26 possibilités), des lettres majuscules (26 possibilités), et des chiffres (10 possibilités), c'est probablement assez correct. Ce mot de passe utilise donc 8 caractères différents pris dans une série de 62. Soit un total de 136325,9 milliards de mots de passe possibles. À raison d'un mot de passe testé toutes les 20 ms, cela donne plus de 864 siècles, pour tester tous les mots de passe.
Maintenant, ajoutez des caractères parmi @#&"'(§!)-_$*/:;.,?+ (20 possibilités), et il faudra presque 9114 siècles pour tester tous les mots de passe.
Moralité, la puissance des ordinateurs permet effectivement de tester des millions de mots de passe par heure, mais la latence des connexions internet rend ce mode d'attaque quasiment impossible, car elle ralentit terriblement le processus.
Continue reading

Related posts

Le fonctionnement des snapshots

Si les tractations entre Apple et Sun s’étaient passées correctement, les utilisateurs de Mac OS X auraient pu profiter d’ici un an ou deux d’un fabuleux système de fichiers : ZFS. Mais comme souvent, l’intérêt des clients passe après les intérêts de l’entreprise, et il semble finalement qu’Apple ait décidé de créer son propre nouveau système de fichiers.

Un aspect sympathique de ZFS (parmi tant d’autres !), est sa capacité à générer et gérer des snapshots. Un snapshot, c’est une sorte de photographie à un instant donné d’un système de fichiers. Cette photographie peut alors être montée comme n’importe quel autre système de fichiers, elle peut servir de base à une sauvegarde, elle peut servir à rechercher un fichier effacé après la création du snapshot…
Plus que l’utilité évidente en matière de sauvegarde de ces snapshots, j’aimerai revenir sur leur fonctionnement interne, car c’est là que réside toute la magie. En effet, au premier abord l’idée d’une photographie à un instant T de son disque dur semble séduisante, mais très rapidement des voix s’élèvent qui s’interrogent sur le temps que cela prend, la place que cela occupe… Imaginez votre disque dur de 250 Go, 500 Go, ou même 1 To, bien rempli. Vous concluez naturellement que pour faire un snapshot de votre volume, il vous faudra un disque dur externe, de grande capacité, et que cela prend un temps fou. Fort heureusement, c’est faux.

ZFS crée ses snapshots selon le mode copy on write, tout comme le système de fichiers par défaut de FreeBSD : UFS. C’est ce dernier que je vais utiliser pour présenter le fonctionnement des snapshots. Il est probable que l’implémentation des snapshots dans ZFS diffère légèrement, mais la logique reste la même, et de nombreux autres systèmes la partage.
Continue reading

Related posts

Spam de blog : les user agents

Depuis que j'ai codé mon propre antispam pour protéger ce blog des attaques quotidiennes de malfaisants spambots, je collecte précieusement tout ce que ces derniers ont à me dire dans une base de données.
Ainsi, j'ai pu découvrir que, mis à part en de rares occasions, les user agents des spambots sont très variés. Le graphique ci-dessous montre pour la période de mai 2008 à octobre 2009 comment sont répartis le nombre de user agents distincts et le nombre de tentative de spam.

Nombre de user agents différents en fonction du temps

En mai 2008, on note le pic (il dépasse 130 POST/jour) qui correspond à très peu de user agents différents (1 à 2, suivant le jour). Alors que dans le reste de la période la courbe du nombre de POST est très proche de la courbe du nombre d'UA différents.
À noter que, plutôt que de me limiter au seul User Agent, j'ai fait ma petite analyse sur la concaténation des variables HTTP_USER_AGENT, HTTP_ACCEPT, HTTP_ACCEPT_LANGUAGE, et HTTP_ACCEPT_ENCODING. On obtient ainsi une meilleure discrimination entre les différents attaquants.

Voici un exemple abrégé de capture :

REQUEST_TIME : 2008-12-09 19:51:33
HTTP_HOST : www.patpro.net
REMOTE_ADDR : 88.198.53.43
HTTP_USER_AGENT : Mozilla/5.0 (Windows; U; Windows NT 5.0; ru; rv:1.8.1.6) 
                  Gecko/20070725 Firefox/2.0.0.6
HTTP_ACCEPT : text/xml, application/xml, application/xhtml+xml,
              text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
HTTP_ACCEPT_LANGUAGE : ru
HTTP_ACCEPT_ENCODING : deflate

Si on s'intéresse particulièrement aux variables HTTP_ACCEPT* on voit qu'elles sont utilisées de manières très inégales en fonction du robot :

header_spamweb

On peut supposer que ces caractéristiques permettent de différencier les différents botnets, et versions des scripts. Les spammers poussent donc le raffinement assez loin, dans le but, bien sûr, de passer au travers des protections antispam. Dans certaines tentatives que j'ai enregistrées, le client fourni même un cookie de session.

Related posts

Le spam en France

Le spam en France, c'est un vaste sujet. On pourrait gloser à loisir pendant des jours sur tel ou tel aspect du problème. Alors je vais juste donner un nombre : 96,1%. Ce nombre, c'est le taux de spam de la France pour le mois de juin. C'est à dire que dans notre beau pays, plus de 96% du trafic d'email sont du spam. C'est le record mondial (pour le mois de juin). Pour la même période, les États Unis d'Amérique sont à 78,4% et le Japon atteint un très enviable 67,1% de pollution. Et puis, si c'est MessageLab qui nous le dit, c'est forcément vrai (j'ironise, mais vu les logs de mes serveurs de messagerie, ils sont sûrement dans le vrai).

Je rappelle à toutes fins utiles que, si le cœur vous en dit, vous pouvez télécharger le "plug-in" signal-spam pour Mail, qui permet de déclarer votre spam à l'organisme paresseux nommé Signal Spam (c'est pas bien de se moquer, méchant patpro).

Related posts

jot et seq, créer des séquences en ligne de commande

Quand on écrit des scripts shell, il arrive fréquemment d'avoir besoin de générer des séquences de chiffres ou de lettres (nourrir une boucle, créer des noms de fichiers aléatoires ou non...).
Il existe pour cela deux outils, seq et jot. seq est la commande GNU, elle est donc très répandue (Linux). jot est une commande originaire du monde BSD (FreeBSD, Mac OS X, ...). Elle est moins répandue, et surtout moins connue, ce qui est bien dommage. En effet, jot est nettement plus puissante et versatile que seq.

Voyons quelques cas d'utilisation concrets de ces deux commandes, avec pour commencer une boucle for classique. Note : toutes les commandes présentées ici ont été testées dans un shell bash. La syntaxe des différentes boucles peut varier dans d'autres shells.
Imaginons que j'ai besoin d'une boucle qui tourne sur une liste de chiffres de 1 à 10, je peux très simplement faire ceci, et obtenir à chaque fois le même résultat exactement :

# syntaxe basique
for i in 1 2 3 4 5 6 7 8 9 10; do
	# mon travail
	echo $i
done

# syntaxe avancée
for ((a=1; a<=10 ; a++)); do
	# mon travail
	echo $a
done

# autre syntaxe avancée
for a in {1..10}; do
	# mon travail
	echo $a
done

# syntaxe avec seq
for b in $(seq 1 10); do
	# mon travail
	echo $b
done

# syntaxe avec jot
for c in $(jot 10); do
	# mon travail
	echo $c
done

Pour ces cas simples, l'intérêt des commandes seq et jot n'est pas immédiat, d'autant que si la syntaxe basique est hors jeux pour les listes longues (1 à 1000 par exemple), les syntaxes avancées sauront en général s'en tirer.
Voyons comment faire maintenant si je souhaite faire une liste de 01 à 10 :

La syntaxe basique fonctionne toujours, mais je dois taper à la main 01, 02, ... C'est fastidieux. Les syntaxes avancées ne savent pas faire directement. Je peux par contre invoquer printf pour faire une réécriture de mes valeurs :

for a in {1..20}; do
	a=$(printf "%02d" $a)
	# mon travail
	echo $a
done

Pour faire ce type d'itération sans étapes intermédiaires il reste seq et jot.
L'ajout de l'option w à la commande seq permet de forcer le formatage de sorte que tous les nombres affichés aient la même largeur. En cas de besoin, un ou plusieurs 0 sont ajoutés devant le nombre pour compléter :

seq -w 1 10
# résultat :
01
02
...
09
10

Pour jot, le padding n'est pas complètement automatique, il faut en régler la largeur via le formatage de type printf. On obtient le même résultat qu'avec seq :

jot -w '%02d' 10

C'est plus délicat, mais cela nous permet de mettre le doigt sur une première limitation de seq : ce dernier ne sait pas utiliser d'autres options de printf que %e, %f et %g.
Ainsi, pour produire une liste de 00001 à 00010, je peux utiliser jot avec un formatage printf ou seq avec un formatage automatique (a priori, c'est une nouveauté apparue depuis la rédaction de cet article), mais pas seq :

jot -w '%05d' 10
# résultat :
00001
00002
...
00009
00010
seq -w 00010
# résultat :
00001
00002
...
00009
00010

Les deux commandes sont bien sûr capables de gérer une borne inférieure et une borne supérieure, mais leur gestion des incréments est une de leurs différences fondamentales. Vous pouvez indiquer à chacune de travailler de 1 à 1000 mais seq ne sait travailler que par incrément fixe :

# seq sait aller de 1 à *maximum* 1000 par saut de 250 :
seq 1 250 1000
# résultat :
1
251
501
751

Alors que jot travaille par défaut sur le nombre d'étapes :

# jot sait aller de 1 à 1000 strictement, en 5 étapes :
jot 5 1 1000
# résultat :
1
251
500
750
1000

jot fonctionne en fait en calculant l'incrément optimal. Ce dernier comporte parfois des décimales. Comme le format par défaut pour jot est l'entier, le résultat ci-dessus n'est qu'un arrondi des valeurs réelles de travail de jot. Si on force l'affichage des décimales, on obtient bien une série mathématiquement satisfaisante :

jot -w '%g' 5 1 1000
# résultat :
1
250.75
500.5
750.25
1000

Il sait aussi travailler sur un incrément explicite, comme seq :

# et jot donne alors le même résultat que seq :
jot 5 1 1000 250
# résultat :
1
251
501
751

Nous laissons définitivement seq derrière nous, car il ne sait travailler qu'avec des chiffres, alors que jot peut utiliser tout l'ASCII, générer des listes aléatoires, écrire une chaîne donnée x fois. Et si vous le jumelez avec son ami rs, il sait générer des matrices, des séries de mots de passe...
Voici quelques exemples tirés du man et d'ailleurs :

# les 128 caractères ASCII :
jot -c 128 0

# une ligne de 40 points : 
jot -s "" -b . 40

# l'alphabet en majuscule :
jot -c 26 A

# créer 5 noms de fichiers partiellement aléatoires :
jot -r -w '/tmp/fichier-%05d' 5 0 10000

# 10 mots de passe de 12 caractères ASCII aléatoires entre ! et ~ :
jot -r -c 120 33 126 | rs -g0 -w12

# une matrice 10x10, de 100 nombres tirés au hasard entre 1 et 100
jot -r 100 | rs 10 10 

Un peu d'histoire pour finir. Le nom de la commande jot ne cesse de faire râler les linuxiens qui doivent un jour ou l'autre travailler sur un système BSD. Il est indéniable que seq est un nom qui tombe sous le sens, de sequence à seq, il n'y a qu'un pas. Pour jot, ce n'est pas aussi immédiat.
Le nom de jot signifie en anglais "très petite quantité", et vient du latin iota. John A. Kunze, qui a développé jot, mais aussi rs et lam, m'a expliqué qu'il a écrit ces trois commandes il y'a très longtemps, en s'inspirant des opérateurs iota, reshape, et laminate du langage APL. Il a alors décidé de donner à ses commandes des noms typiquement "unixiens". Ainsi sont nées jot, rs et lam.

edit 1 : ajout du résultat pour certains exemples, correction d'une typo dans une commande.
edit 2 : correction d'un exemple, suppression de certaines boucles for inutiles, ajout de précision sur les incréments décimaux.
edit 3 : ajout des séquences du type {1..10} gérées par bash.
edit 4 : mise à jour au suejt de la capacité de seq à gérer le padding automatique.

Related posts

Slife et la vie privée, un mois après

icone Slife (c) SlifeLabsIl y a un mois, j'écrivais ici à propos de Slife, un outil de time tracking gratuit pour Mac OS X et Windows. Je m'en suis servi tout ce temps sur ma machine personnelle et sur ma machine professionnelle. Il est donc temps de revenir sur ce logiciel.
À mon sens, le gros défaut de Slife (une fois qu'on a accepté ses limites fonctionnelles) c'est l'impossibilité d'accéder aux données enregistrées a postériori. Cela pose un vrai gros problème de respect de la vie privée. En effet, chaque document, chaque page web, chaque email ouvert va donner lieu à un enregistrement dans la base de données de Slife. Ce dernier pourra afficher sans état d'âme des événements comme ceux-ci dans votre tracking journalier et mensuel :

  • aide mobilité site:SuperJob.fr - Google Search
  • Grosse Cochonne sans culotte - xXx

Inutile de vous faire un dessin. Dans votre navigateur vous êtes libre à tout moment d'effacer votre historique. Dans Slife, vous ne pouvez pas le faire. Si vous avez oublié d'activer le mode "Privé" avant de chercher un nouveau job, ou d'aller mater quelques paires de fesses au nez et à la barbe de votre employeur, vous êtes cuits.
Bien sûr, il y aura toujours un petit malin pour aller éditer la base de données de Slife à la main. Mais ce n'est pas le genre d'acrobatie à la portée du premier venu. Je vais néanmoins donner la marche à suivre. Notez bien : j'ai bien sûr testé cette manipulation, mais je ne peux pas garantir qu'elle est inoffensive sur le long terme. Il n'est pas complètement exclu que cela crée des problèmes de cohérence des données dans Slife.
Comme on s'y serait attendu, Slife stocke ses données dans une base de données SQLite (en tout cas sous Mac OS X). SQLite est un moteur de bases de données SQL, léger et rapide. Contrairement à MySQL ou autre, vous n'avez pas besoin qu'un serveur tourne en permanence pour accéder aux données. C'est aussi ce moteur qui est utilisé par Spotlight.
Il est possible de rentrer dans des bases de données SQLite directement avec les outils fournis dans Mac OS X. Il faut pour cela lancer l'application Terminal, et taper au prompt :

sqlite3 "Library/Application Support/Slife/db20.slife"

ce qui retourne :

SQLite version 3.4.0
Enter ".help" for instructions
sqlite>

On peut ensuite taper :

.databases

ce qui doit donner quelque chose de ce genre, modulo votre nom d'utilisateur :

seq  name             file                                                      
---  ---------------  ----------------------------------------------------------
0    main             /Users/patpro/Library/Application Support/Slife/db20.slife

Posons maintenant que vous souhaitiez supprimer tous les événements enregistrés dont le titre contient SuperJob.fr, car vous ne voulez pas que votre patron soupçonne que vous préparez votre départ.
La première étape pour ne pas faire de bêtise c'est de quitter Slife car être deux (Slife et vous) en train d'éditer la base de données au même instant pourrait être fâcheux. Après avoir quitté Slife, faites une copie de sauvegarde du fichier db20.slife.
La seconde étape consiste à afficher sans les détruire les événements ciblés. On utilise pour cela l'instruction SQL SELECT. Au prompt sqlite> tapez :

SELECT * FROM ZITEMRECORDED WHERE ZNAME LIKE "%SuperJob.fr%";

Après validation, vous allez obtenir un listing de tous les enregistrements qui contiennent "SuperJob.fr" dans le titre :

10|2478|1|2008|7|10|30|34.0|Safari||aide mobilité site:SuperJob.fr - Google Search
10|2479|2|2008|7|10|30|8.0|Safari||SuperJob.fr, numéro 1 de l’emploi en ligne
10|2480|1|2008|7|10|30|9.0|Safari||Bulletin Officiel de SuperJob.fr n° 2002-2

Lisez bien tous les titres pour vérifier que vous n'allez pas supprimer des événements qui ne devraient pas l'être.
Si c'est bon, vous pouvez lancer le DELETE :

DELETE FROM ZITEMRECORDED WHERE ZNAME LIKE "%SuperJob.fr%";

Vous pouvez, à l'issue de ce DELETE, refaire le SELECT pour vérifier qu'il ne reste rien. Mais il n'y a aucune raison qu'un enregistrement ait échappé au DELETE.

Ensuite, vous quittez SQLite en tapant au prompt .quit, puis vous pouvez relancer Slife et vérifier que les enregistrements incriminants ont disparu.

Pour ceux qui sont désespérément allergiques au terminal, il existe une paire de clients graphiques pour accéder à des bases SQLite. J'ai testé rapidement SQLite Database Browser 1.3, et à première vue il donne satisfaction. Néanmoins il est compilé pour PowerPC uniquement. Je ne saurai garantir son fonctionnement sur plateforme Intel.

Related posts

Slife : le time tracking pour tous

slife-icone (c) slifelabsLe "time tracking" informatique est une notion importante pour de nombreuses personnes. Que vous soyez graphiste en agence de com' ou que vous soyez développeur freelance, surveiller et comptabiliser la manière dont vous utilisez votre temps de travail est souvent la clé de voute de votre facturation ou de celle de votre employeur. Il n'est jamais aisé de savoir combien de temps on a passé réellement sur tel ou tel projet, dans telle ou telle application, ou quels documents nous ont demandés le plus long travail.
Bien sûr, il existe des d'applications dédiées à ce genre de comptabilité. En voici une, gratuite et fonctionnant aussi bien sur Mac OS X que sur Windows : Slife 2.0.

Slife 2.0 est une application pleine de promesses, et d'une apparente simplicité. En réalité, elle est plus complexe à prendre en main que son interface pourrait le faire penser. Par ailleurs, il faut le souligner dès maintenant, il lui manque des fonctions importantes, voire essentielles, pour s'adapter à nos manières de travailler.

fenetre de slife : suivi des applications

Slife vous permet de suivre l'utilisation de presque toutes vos applications, de vos documents, et votre utilisation d'internet. Par défaut, l'historique est conservé un an, et la mise à jour se fait toutes les cinq secondes. Slife permet en plus de suivre l'utilisation de votre machine sous la forme d'activités, définies par vous. Chaque activité que vous créez peut regrouper des applications, des documents, et des URL. Je peux, par exemple, définir une activité "Mail", pour la quelle je ne vais suivre que l'utilisation de l'application Mail. Je peux aussi créer une activité "Lecture des news", pour la quelle je vais suivre l'utilisation de mon agrégateur RSS, de mon lecteur de newsgroups, et de l'URL http://news.google.fr/.

C'est dès maintenant que les premières limitations de Slife se font sentir. Il est impossible de tracker l'utilisation d'une même application dans deux activités différentes. Par exemple, vous développez du code PHP dans BBEdit. Vous souhaitez savoir combien de temps au total vous passer à coder, et combien de temps en particulier vous passez sur un projet donné de développement. Il faudra malheureusement choisir l'un ou l'autre, car activer le suivi de BBEdit dans la seconde activité, le désactivera dans la première.

De même, il est possible de suivre votre temps de travail sur un document d'après son nom, mais pas d'après le nom du dossier parent. Donc malheureusement, si les documents de deux projets portent le même nom (flyer.psd, index.php, ...) il sera impossible de les distinguer. Il est par contre possible de suivre l'utilisation des documents en précisant seulement une partie du nom. Si vous avez l'habitude de nommer vos documents avec un identifiant de projet (flyer_8652.psd, template_8652.ai, bat_8652.pdf...), il est alors très simple de créer une activité qui va tracker votre travail sur ces documents. Il suffit de définir une activité pour ce projet numéro 8652, et d'y associer un document "8652". Slife va suivre tous les documents que vous éditez et dont le nom contient "8652", quelque soit l'application utilisée.

Le tracking des documents d'un même dossier dans le cadre d'une activité est une fonction à l'étude chez Slifelabs, car de nombreux utilisateurs la réclament. Néanmoins, aucune date de disponibilité n'est annoncée, et toutes les ressources de Slifelabs ont été dédiées au portage vers Windows de la version 2 du logiciel.

En terme d'ergonomie, Slife est capable du meilleur comme du pire, malheureusement. Le meilleur, c'est le menu qui permet à tout moment, et dans toutes les applications d'ajouter le document ou l'application de premier plan à une des activités existantes. Il est possible aussi d'entrer dans un mode "privé", qui interrompt le tracking. Le pire, ce sont les différentes fenêtres de l'application, qui ne supportent pas le glisser-déposer, qui manquent de menus contextuels, voire même de cohérence.
Par ailleurs, notez bien que la fenêtre d'édition des activités est une fenêtre trompeuse. La liste des documents et URL est une liste globale. Si vous supprimez ou modifiez un document de cette liste, il sera supprimé ou modifié dans toutes les activités.

Slife propose en plus un mode connecté, Slife Teams, pour suivre le travail de plusieurs collaborateurs via une interface web. Cette option n'est actuellement accessible qu'après inscription auprès de Slifelabs. Si je suis retenu pour tester Slife Team, je ferais un second article.

Pour conclure, Slife est une application pleine de potentiel, mais encore très immature. Elle mérite qu'on lui porte de l'intérêt et qu'on fasse des retours enthousiastes à ses développeurs, mais son déploiement dans un contexte où les workflows sont bien rodés ne sera pas toujours possible. J'espère que les principales limitations seront abolies par les versions suivantes. Néanmoins, si vous n'êtes pas intéressés par le tracking d'activités complexes, Slife vous suffira largement.

Pour :

  • gratuite
  • (très) faible consommation de resources
  • prise en main rapide
  • développeurs à l'écoute, via les forum de slifelabs

Contre :

  • pas de tracking pour les dossiers
  • pas de tracking pour certaines applications (UT2004 par exemple)
  • interface vraiment perfectible
Related posts

Apache/PHP sur FreeBSD : le truc qui sauve

On a beau vanter la supériorité de tel ou tel OS, une stabilité légendaire ou une performance incomparable du logiciel X ou Y, il arrive toujours que certaines combinaisons fournissent des résultats surprenants. C'est le cas par exemple d'Apache (2) avec mod_php (4 ou 5), sur FreeBSD (6 dans mon cas).

Cette combinaison, et peut être d'autres, a le gros inconvénient d'être sensible à l'ordre de chargement des extensions de PHP. Pour ma part, c'est la seconde fois que je suis confronté à des plantages des démons httpd à cause du simple fait que les extensions PHP ne sont pas chargées dans l'ordre idéal. Sur FreeBSD, le chargement en question est orchestré par le fichier /usr/local/etc/php/extensions.ini. Cela ressemble à ça :

extension=filter.so
extension=hash.so
extension=json.so
extension=gettext.so
extension=pcre.so

Si par malheur vous avez plus d'une poignée de ces extensions, vous risquez un jour de tomber sur un enchaînement problématique. Par chance, mon problème n'était pas dramatique : Apache faisant un segfault uniquement au moment de quitter.

Voilà les traces dans /var/log/messages des process fils httpd quittant sur un signal 11 au moment de se terminer :

kernel: pid 51113 (httpd), uid 80: exited on signal 11
kernel: pid 16830 (httpd), uid 80: exited on signal 11

Et voilà la trace du process parent httpd au moment d'un apachectl restart ou stop :

kernel: pid 57931 (httpd), uid 0: exited on signal 11 (core dumped)

Après une recherche intensive, je suis tombé sur un petit bout de script shell qui rend bien service : fixphpextorder.sh. Ce script écrit par J. Pingle permet de ré-ordonner les extensions PHP dans une configuration supposée non-conflictuelle. En deux mots comme en mille : ça marche !
Vous lancez le script (à partir d'un compte utilisateur ayant les droits d'écriture sur le fichier /usr/local/etc/php/extensions.ini) et vous relancer votre Apache. Normalement, c'est la fin des plantages. Si ils persistent n'hésitez pas à le faire savoir à l'auteur du script, ce genre de choses ne peut s'améliorer qu'avec le retour des utilisateurs.

Related posts