Statistiques de versions de PHP - septembre 2011

3 octobre 2011php, stats
 Cet article a été rédigé il y a plusieurs années et peut ne plus être tout à fait à jour…

Avec la sortie de PHP 5.4 qui approche petit à petit[1], et PHP 5.3 rendue publique il y a plus de deux ans, je me demandais quelles sont les versions de PHP qui sont, aujourd'hui, les plus utilisées -- et, donc, quelles sont les versions de PHP sur lesquelles nous pouvons nous attendre à voir nos applications déployées.


Sommaire :


Quelques mots sur la méthode

Pour faire simple, j'ai récupéré une liste de plus de 3 millions de noms de domaines, issus :

  • Du top 1 million d'Alexa,
  • Des liens externes de wikipedia en anglais (plus de 2 million de noms de domaines non compris dans le top Alexa),
  • Et de quelques résultats de recherche google (quelques milliers de noms de domaines).

Ensuite, pour chacun de ces noms de domaines, j'ai effectué une requête HTTP HEAD sur domaine.tld, en me rabattant sur www.domaine.tld si la première requête échouait.

Après cela, je me suis basé sur l'en-tête HTTP X-Powered-By renvoyée par le serveur, pour en extraire le nom de logiciel ayant servir à générer la page, ainsi que sa version.
Et dans le cas où cette en-tête n'existe pas, ou ne contient pas d'information exploitable, je me suis rabattu sur l'en-tête Server.


Pour rappel, et en ne prenant que quelques exemples relativement typiques, les en-têtes HTTP renvoyées par le serveur, dans le cas de pages générées par PHP et sur un serveur exposant la version de PHP utilisée, ressemblent souvent à quelque chose de ce type (pour www.php.net) :

Server: Apache/1.3.41 (Unix) PHP/5.2.17
X-Powered-By: PHP/5.2.17

ou (pour www.mozilla.org) :

Server: Apache
X-Powered-By: PHP/5.2.9

A partir de là, extraire le numéro de la version de PHP utilisée est une opération relativement aisée...


PHP ?

Sur les 3.1 million de requêtes HTTP effectuées sur les noms de domaines que j'ai testé, environ 25% des réponses ont été identifiées comme générées par du PHP.

Plus précisément, j'ai identifié 828,564 réponses comme correspondant à du PHP.

Avec plus de 800k réponses, les statistiques présentées plus bas devraient avoir des chances d'être à peu près correctes, ou, tout au moins, de donner des résultats et chiffres relativement proches de la réalité...


Versions majeures de PHP

Commençons par les versions majeures de PHP, en prenant en compte les résultats qui ont été identifiés comme correspondant à une version supérieure ou égale à 3, et inférieure ou égale à 6[2].

Mes tests ont remonté le nombre suivant de domaines sur chaque version majeure de PHP :

  • PHP 3 : 257
  • PHP 4 : 86,594
  • PHP 5 : 741,638
  • PHP 6 : 18

Sous forme d'un graphe, qui peut être plus parlant pour certains et permet de voir en un clin d'oeil quelle est la version majeure de PHP la plus répandue, cela donne :

version-1.png

On notera :

  • Que, fort heureusement, PHP 5 est la version majeure la plus répandue,
  • Mais que, seconde moitié 2011, on a encore quelques centaines de sites, sur 3 millions, qui tournent encore sur du PHP 3,
  • Et aussi que PHP 4 est encore trop répandue, alors que cela fait des années que cette version n'est plus du tout maintenue (PHP 4.4.9, publiée en Août 2008, était annoncée comme étant la dernière version de PHP 4.x),
  • Et enfin que, plus d'un an après la mise à mort de la branche PHP 6 (qui, pour rappel, n'a jamais vu une version ne serait-ce qu'alpha être publiée), on rencontre (encore) des sites qui utilisent PHP 6 en production ???


Versions mineures de PHP

Si on passe aux versions mineures de PHP, toujours pour PHP >= 3.x et PHP <= 6.x, et en ne conservant que les versions qui sont remontées 10 fois ou plus, on obtient les données suivantes :

  • PHP 3.0 : 257
  • PHP 4.0 : 595
  • PHP 4.1 : 1,385
  • PHP 4.2 : 1,446
  • PHP 4.3 : 22,095
  • PHP 4.4 : 61,072
  • PHP 5.0 : 3,422
  • PHP 5.1 : 47,695
  • PHP 5.2 : 566,243
  • PHP 5.3 : 124,240
  • PHP 5.4 : 30
  • PHP 6.0 : 17

Et sous forme graphique :

version-2.png

Pour résumer :

  • PHP 5.2, qui a atteint sa fin de vie en décembre 2010, il y a déjà bientôt un an, est la version de PHP qui semble aujourd'hui la plus utilisée / répandue,
  • PHP 5.3, stable depuis juin 2009, soit plus de deux ans, n'arrive qu'en seconde place -- et loin derrière PHP 5.2,
  • Et PHP 5.1 et 4.4 sont relativement proches l'un de l'autre.


Versions release de PHP 5.x

Et enfin, si on descend au niveau des versions release de PHP 5.x[3], en ne conservant que les versions qui remontées 100 fois ou plus, on obtient les données suivantes :

  • Pour PHP 5.x :
    • 5.0.2 : 116
    • 5.0.3 : 326
    • 5.0.4 : 2,401
    • 5.0.5 : 502
  • Pour PHP 5.1 :
    • 5.1.1 : 196
    • 5.1.2 : 3,012
    • 5.1.3 : 184
    • 5.1.4 : 1,227
    • 5.1.5 : 127
    • 5.1.6 : 42,940
  • Pour PHP 5.2 :
    • 5.2.0 : 10,493
    • 5.2.1 : 3,089
    • 5.2.2 : 960
    • 5.2.3 : 4,145
    • 5.2.4 : 21,111
    • 5.2.5 : 15,631
    • 5.2.6 : 94,194
    • 5.2.8 : 11,280
    • 5.2.9 : 43,752
    • 5.2.10 : 22,478
    • 5.2.11 : 15,610
    • 5.2.12 : 17,588
    • 5.2.13 : 28,808
    • 5.2.14 : 36,532
    • 5.2.15 : 3,594
    • 5.2.16 : 18,877
    • 5.2.17 : 217,942
  • Et pour PHP 5.3 :
    • 5.3.0 : 1,810
    • 5.3.1 : 2,715
    • 5.3.2 : 21,890
    • 5.3.3 : 28,359
    • 5.3.4 : 5,261
    • 5.3.5 : 16,680
    • 5.3.6 : 31,549
    • 5.3.7 : 643
    • 5.3.8 : 15,310

Et sous forme graphique :

version-3-5.x.png

Pour résumer :

  • Une quantité non-négligeable de sites sous PHP 5.1.6 (qui a été publiée en Août 2006) ; la version fournie par défaut sous certaines distributions, il me semble, genre Redhat Enterprise ?
  • Beaucoup de PHP 5.2.6 (publiée en Mai 2008) ; probablement la version fournie par défaut sous une autre distribution ?
  • La version de PHP la plus répandue est PHP 5.2.17 (publiée en Janvier 2011) ; ça reste du 5.2, qui a atteint sa fin de vie, mais positivons, en se disant que c'est la dernière version, la plus à jour...
  • Et enfin, plusieurs sous versions de PHP 5.3.x, sans qu'aucune ne s'impose vraiment ; notons que la version 5.3.7, avec son bug de sécurité, et qui n'a été disponible que quelques jours, n'est heureusement pas la plus répandue (même si on pourrait souhaiter qu'une version connue pour un problème de ce type ne soit absolument pas utilisée).


Le mot de la fin ?

Je ne ferai pas une longue analyse sur le pourquoi du comment des chiffres que j'ai présenté ici : libre à vous de commenter sur le trop grand usage de versions complètement obsolètes, et le manque de mise à jour que l'on peut, malheureusement, trop souvent constater...

Cela dit, une question pour vous, lecteurs : connaissez-vous des sites qui publient ce genre de statistiques de manière régulière -- idéalement, gratuitement ?
Il fût un temps, nexen en publiait, mais j'ai l'impression qu'ils ont arrêté depuis 2008...


Notes

[1] la première version bêta de PHP 5.4 est sortie quelques jours après que j'aie réalisé les tests publiés ici

[2] Pour ne pas prendre en compte les quelques résultats abherrant qu'on aurait pu relever -- du genre l2.ws qui renvoi X-Powered-By: PHP/10.0.0 ???

[3] PHP 4 correspondant à des versions tellement dépassées que je préfére ne pas prendre la peine de rentrer au niveau des versions release