5 posts taggués « stats »

Par Pascal MARTIN le lundi 14 janvier 2013 07:00 10 commentaires

Quelques cinq mois après le dernier article de cette série, publié en août 2012, voici un nouvel état des lieux des différentes versions de PHP et de leur utilisation sur Internet — à titre de comparaison, vous voudrez peut-être aussi jeter un coup d’œil à l’article que j’avais publié il y a un an, en janvier 2012.

Les données présentées dans cet article ont été collectées le week-end du 12 janvier 2013. Les versions stables de PHP sont PHP 5.3.20 et PHP 5.4.10 qui ont été publiées le 20 décembre 2012 ; cela fait tout juste deux ans que PHP 5.2 n’est plus supportée ; et la 3ème version alpha de PHP 5.5 a été publiée il y a quelques jours.

Sommaire :


Quelques mots sur la méthode

Pour faire simple1, j’ai récupéré une liste de plus de 9.4 millions de noms de domaines, issus principalement :

  • Du top 1 million d’Alexa (chargé plusieurs fois à quelques semaines/mois d’écart sur l’année et demie écoulée, ce qui donne maintenant nettement plus de 1 million de noms de domaines),
  • Des liens externes de wikipedia de plusieurs langues (environ 3 millions de noms de domaines),
  • De l’export mis à disposition par l’Export Open Directory (environ 2 millions de noms de domaines, certains correspondant à des sites un peu anciens et pas vraiment mis à jour),
  • 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 généralement2 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/2.2.21 (FreeBSD) mod_ssl/2.2.21 OpenSSL/0.9.8q PHP/5.4.11-dev
X-Powered-By: PHP/5.4.11-dev

ou (pour drupal.org) :

Server: Apache/2.2.3 (CentOS)
X-Powered-By: PHP/5.3.16

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


Quelques chiffres

Réponses PHP

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

Plus précisément, j’ai identifié 2,228,529 réponses comme correspondant à du PHP.

Avec ce nombre relativement conséquent de 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é…


Serveurs Web

Cela dit, avant d’entrer dans les détails des versions de PHP, voici la liste des Serveurs Web les plus fréquemment identifiés lors de ma collecte de données :

  • Apache : 5,164,189 — 66.07%
  • IIS : 1,377,796 — 17.63%
  • nginx : 554,345 — 7.09%
  • Autres : 367,593 — 4.70%
  • GSE : 190,096 — 2.43%
  • LiteSpeed : 63,995 — 0.82%
  • YTS : 55,838 — 0.71%
  • Oversee Turing v1.0.0 : 42,196 — 0.54%

Ou, sous forme d’un graphe :

Serveurs Web

On ne constate pas de véritable révolution par rapport aux données collectées il y a cinq mois ou il y a un an :

  • Apache, toutes versions confondues, reste encore très loin devant tous les autres, servant deux tiers des pages interrogées — mais perd quelque chose comme 1.7 point en un an,
  • IIS conserve sa seconde place — en perdant 1 point en un an,
  • Et nginx est encore en troisième place — en ayant gagné plus de 1.5 point en un an.


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 à 63.

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

  • PHP 3 : 648 — 0.03%
  • PHP 4 : 191,521 — 8.59%
  • PHP 5 : 2,036,247 — 91.38%
  • PHP 6 : 17 — 0.00%

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

Versions majeures de PHP

On notera :

  • Que, fort heureusement, PHP 5 est la version majeure la plus répandue ; PHP 5 passe d’ailleurs pour la première fois au-dessus des 90%,
  • Mais que, début 2013, on a encore quelques centaines de sites, sur 8.7 millions, qui tournent encore sur du PHP 3,
  • Et aussi que PHP 4 est encore vraiment 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, bientôt trois ans 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 : 646 — 0.03%
  • PHP 4.0 : 1,469 — 0.07%
  • PHP 4.1 : 3,434 — 0.15%
  • PHP 4.2 : 3,133 — 0.14%
  • PHP 4.3 : 40,804 — 1.83%
  • PHP 4.4 : 142,681 — 6.40%
  • PHP 5.0 : 5,085 — 0.23%
  • PHP 5.1 : 69,958 — 3.14%
  • PHP 5.2 : 1,014,151 — 45.51%
  • PHP 5.3 : 910,630 — 40.86%
  • PHP 5.4 : 36,410 — 1.63%
  • PHP 6.0 : 17 — 0.00%

Et sous forme graphique :

Versions mineures de PHP

Pour résumer :

  • PHP 5.2, qui a atteint sa fin de vie en décembre 2010, il y a deux ans, est encore la version de PHP qui semble aujourd’hui la plus utilisée / répandue — mais les choses vont dans le bon sens, puisque PHP 5.2 est pour la première fois passée sous la barre des 50% ! (51.42% en août 2012, et 62.35% en janvier 2012)
  • PHP 5.3, stable depuis juin 2009, soit trois ans et demi, n’arrive toujours qu’en seconde place — mais continue à se rapprocher de la première, et va probablement bientôt l’atteindre,
  • PHP 5.4, dont la première version stable a été publiée le 1er mars 2012, monte tout doucement en puissance, puisqu’elle ne représente que 1.63% des installations comptabilisées.
  • Pour la petite histoire : cela ne se voit pas ici, mais j’ai identifié 8 serveurs en PHP 5.5.0 (un en -alpha1, un en -alpha3, et les autres en -dev)

On peut donc dire que PHP 5.3 s’est enfin imposée !

Pas trop tôt devrais-je dire, puisqu’il est fort probable que PHP 5.3 atteigne bientôt sa fin de vie — peut-être au moment de la sortie de PHP 5.5, qui pourrait avoir lieu au printemps… Autrement dit, si, en 2013, vous êtes encore avec une version <= 5.2, il n’est plus temps de passer à PHP 5.3, mais bel et bien à 5.4 ;-)

Et il peut aussi être temps de commencer à vous pencher sur PHP 5.5, qui propose plein de nouveautés intéressantes, et est actuellement en phase de versions alpha.


Versions releases de PHP

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

  • Pour PHP 5.0 :
    • 5.0.1 : 107 — 0.01%
    • 5.0.2 : 236 — 0.01%
    • 5.0.3 : 527 — 0.03%
    • 5.0.4 : 3,428 — 0.17%
    • 5.0.5 : 763 — 0.04%
  • Pour PHP 5.1 :
    • 5.1.1 : 265 — 0.01%
    • 5.1.2 : 4,486 — 0.22%
    • 5.1.3 : 1,601 — 0.08%
    • 5.1.4 : 1,785 — 0.09%
    • 5.1.5 : 204 — 0.01%
    • 5.1.6 : 61,603 — 3.03%
  • Pour PHP 5.2 :
    • 5.2.0 : 16,866 — 0.83%
    • 5.2.1 : 4,587 — 0.23%
    • 5.2.2 : 1,313 — 0.06%
    • 5.2.3 : 5,774 — 0.28%
    • 5.2.4 : 34,101 — 1.67%
    • 5.2.5 : 25,145 — 1.23%
    • 5.2.6 : 124,980 — 6.14%
    • 5.2.7 : 184 — 0.01%
    • 5.2.8 : 17,303 — 0.85%
    • 5.2.9 : 54,962 — 2.70%
    • 5.2.10 : 33,994 — 1.67%
    • 5.2.11 : 21,099 — 1.04%
    • 5.2.12 : 28,176 — 1.38%
    • 5.2.13 : 31,587 — 1.55%
    • 5.2.14 : 36,442 — 1.79%
    • 5.2.15 : 3,137 — 0.15%
    • 5.2.16 : 11,545 — 0.57%
    • 5.2.17 : 562,822 — 27.64%
    • 5.2.185 : 113 — 0.01%
  • Pour PHP 5.3 :
    • 5.3.0 : 2,522 — 0.12%
    • 5.3.1 : 3,310 — 0.16%
    • 5.3.2 : 52,101 — 2.56%
    • 5.3.3 : 208,429 — 10.24%
    • 5.3.4 : 3,574 — 0.18%
    • 5.3.5 : 24,212 — 1.19%
    • 5.3.6 : 78,797 — 3.87%
    • 5.3.7 : 590 — 0.03%
    • 5.3.8 : 57,818 — 2.84%
    • 5.3.9 : 8,071 — 0.40%
    • 5.3.10 : 89,158 — 4.38%
    • 5.3.11 : 904 — 0.04%
    • 5.3.12 : 552 — 0.03%
    • 5.3.13 : 33,792 — 1.66%
    • 5.3.14 : 21,402 — 1.05%
    • 5.3.15 : 50,011 — 2.46%
    • 5.3.16 : 32,741 — 1.61%
    • 5.3.17 : 34,282 — 1.68%
    • 5.3.18 : 115,808 — 5.69%
    • 5.3.19 : 56,717 — 2.79%
    • 5.3.20 : 35,831 — 1.76%
  • Pour PHP 5.4 :
    • 5.4.0 : 983 — 0.05%
    • 5.4.1 : 140 — 0.01%
    • 5.4.3 : 1,452 — 0.07%
    • 5.4.4 : 4,115 — 0.20%
    • 5.4.5 : 1,413 — 0.07%
    • 5.4.6 : 3,749 — 0.18%
    • 5.4.7 : 3,832 — 0.19%
    • 5.4.8 : 3,340 — 0.16%
    • 5.4.9 : 5,914 — 0.29%
    • 5.4.10 : 11,384 — 0.56%

Et sous forme graphique :

Versions releases de PHP

Pour résumer :

  • Toujours une quantité non-négligeable (3.03%) 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 (6.14%) (publiée en Mai 2008) ; la version fournie par défaut sous Debian Lenny, par exemple.
  • La version de PHP la plus répandue est PHP 5.2.17 (publiée en Janvier 2011), avec 27.64% ; ç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 ; entre autres :
    • PHP 5.3.3, qui est la version 5.3.x la plus représentée avec 10.24% — la version par défaut sous Debian Squeeze, notamment,
    • PHP 5.3.10 (4.38%) — version par défaut sous Ubuntu 12.04 (qui est une LTS — dommage, les 6 versions de retard), par exemple.

Pour PHP 5.3 et 5.4, hormis les versions fournies par quelques grandes distributions, on constate qu’aucune version ne s’impose réellement, et que toutes se partagent une petite part des serveurs installés ; si je devais me risquer à une interprétation, je dirais que les hébergeurs ont du mal à suivre le rythme de publication des mises à jour, qui tourne depuis quelques temps à une nouvelle version par mois (l’idée étant, bien entendu, de publier plus rapidement les corrections de bugs).


Evolution

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, puisque ce n’est pas la première fois que j’effectue ce processus de collecte de statistiques à propos des versions de PHP utilisées, je me suis dit qu’il pouvait être intéressant de tracer un graphe représentant l’évolution de ces utilisations.

Le graphe reproduit ci-dessous présente donc l’évolution de l’utilisation des versions mineures de PHP, depuis septembre 20116 :

Evolution de l'utilisation des versions (mineures) de PHP

J’ai essayé de mettre en évidence les versions les plus à même de nous concerner en ce moment (à savoir, PHP 5.2, 5.3, et 5.4), ainsi que, dans une moindre mesure les deux autres versions les plus utilisées (autrement dit, PHP 4.4 et 5.1).

Je disais dès avril 2012 que PHP 5.2 laissait petit à petit sa place à PHP 5.3, et en août 2012 que c’était encore plus visible quelques mois plus tard… Nous en sommes désormais au point où PHP 5.3 a quasiment rattrapé PHP 5.27 !

Maintenant, à nous de faire en sorte que PHP 5.4 soit adopté plus rapidement que PHP 5.3 ne l’a été — PHP 5.3 semblant être sur le point d’atteindre sa fin de vie, et la migration 5.3 -> 5.4 représentant un pas moins important que celui séparant PHP 5.2 de 5.3.



  1. Oui, il y a beaucoup de copier-coller d’article en article, pour cette section “méthode” : elle ne change pas d’une fois à l’autre. 

  2. Pour certains types de serveurs ou de logiciels, j’ai mis en place un bout de code qui va chercher les informations de version dans d’autres en-têtes que X-Powered-By. Par exemple, pour les sites développés en ASP.NET, les informations de version figurent généralement dans une en-tête nommée X-AspNet-Version

  3. Pour ne pas prendre en compte les quelques résultats abherrant qu’on aurait pu relever. 

  4. 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. 

  5. Oui, j’ai trouvé des serveurs indiquant qu’ils utilisaient une version 5.2.18 de PHP — alors qu’il n’existe pas “officiellement” de version 5.2.18.
    En pratique, la version indiquée est généralement PHP/5.2.18-dev (sur snowfactory.fi par exemple ; ce suffixe -dev correspond typiquement à un build depuis les sources de la branche 5.2 de PHP), ou PHP/5.2.18-edong (sur damophoto.com par exemple ; pour ce suffixe -edong, aucune idée de son origine ; je ne me rappelle pas l’avoir vu auparavant — possiblement un hébergeur qui fait ses propres build de PHP ?) 

  6. Les chiffres présentés sur le graphique d’évolution sont en pourcentages, afin d’être indépendants du nombre d’hôtes interrogés, qui varie à chaque série de collectes. 

  7. J’ai bon espoir de pouvoir annoncer, la prochaine fois où je publierai un article de cette série, que PHP 5.3 aura dépassé PHP 5.2, et sera alors en première place ;-) 

Par Pascal MARTIN le mardi 11 septembre 2012 06:00 2 commentaires

A peu près un an après le premier article de cette série, publié en septembre 2011, et après ceux de janvier et avril 2012, voici un nouvel état des lieux des différentes versions de PHP et de leur utilisation sur Internet.

Les données présentées dans cet article ont été collectées le week-end du 25 août 2012 ; les dernières versions stables de PHP étant, à ce moment, PHP 5.3.16 et PHP 5.4.6, qui ont été publiées le 16 août 2012.


Sommaire :


Quelques mots sur la méthode

Pour faire simple, j’ai récupéré une liste de plus de 8.9 millions de noms de domaines, issus principalement :

  • Du top 1 million d’Alexa (chargé plusieurs fois à quelques semaines/mois d’écart sur l’année écoulée, ce qui donne maintenant nettement plus de 1 million de noms de domaines),
  • Des liens externes de wikipedia de plusieurs langues (environ 3 millions de noms de domaines),
  • De l’export mis à disposition par l’Export Open Directory (environ 2 millions de noms de domaines, certains correspondant à des sites un peu anciens et pas vraiment mis à jour),
  • 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 généralement1 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.afup.org) :

Server: Apache
X-Powered-By: PHP/5.2.14-0.dotdeb.0

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


Quelques chiffres

Réponses PHP

Sur les 8.3 millions 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é 2,046,971 réponses comme correspondant à du PHP.

Avec ce nombre relativement conséquent de 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é…


Serveurs Web

Cela dit, avant d’entrer dans les détais des versions de PHP, voici la liste des Serveurs Web les plus fréquemment identifiés lors de ma collecte de données :

  • Apache : 4,808,501 — 66.97%
  • IIS : 1,283,018 — 17.87%
  • nginx : 479,726 — 6.68%
  • Autres : 301,014 — 4.19%
  • GSE : 174,019 — 2.42%
  • LiteSpeed : 52,232 — 0.73%
  • YTS : 51,748 — 0.72%
  • Oversee Turing v1.0.0 : 29,344 — 0.41%

Ou, sous forme d’un graphe :

Serveurs Web

On ne constate pas de véritable révolution par rapport aux données collectées il y a quatre mois :

  • Apache, toutes versions confondues, reste encore très loin devant tous les autres, servant deux tiers des pages interrogées,
  • Et nginx est encore en troisième place, gagnant encore un demi-point, pour la seconde fois consécutive.


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 à 62.

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

  • PHP 3 : 680 — 0.03%
  • PHP 4 : 209,697 — 10.24%
  • PHP 5 : 1,836,498 — 89.72%
  • PHP 6 : 19 — 0.00%

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 :

Versions majeures de PHP

On notera :

  • Que, fort heureusement, PHP 5 est la version majeure la plus répandue,
  • Mais que, mi-2012, on a encore quelques centaines de sites, sur 8.3 millions, qui tournent encore sur du PHP 3,
  • Et aussi que PHP 4 est encore vraiment 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 de deux ans 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 : 679 — 0.03%
  • PHP 4.0 : 1,572 — 0.08%
  • PHP 4.1 : 3,748 — 0.18%
  • PHP 4.2 : 3,221 — 0.16%
  • PHP 4.3 : 45,510 — 2.22%
  • PHP 4.4 : 155,646 — 7.60%
  • PHP 5.0 : 5,771 — 0.28%
  • PHP 5.1 : 72,467 — 3.54%
  • PHP 5.2 : 1,052,563 — 51.42%
  • PHP 5.3 : 694,621 — 33.94%
  • PHP 5.4 : 11,069 — 0.54%
  • PHP 6.0 : 18 — 0.00%

Et sous forme graphique :

Versions mineures de PHP

Pour résumer :

  • PHP 5.2, qui a atteint sa fin de vie en décembre 2010, il y a déjà presque deux ans, est encore la version de PHP qui semble aujourd’hui la plus utilisée / répandue, puisqu’elle correspond à la moitié des installations détectées.
  • PHP 5.3, stable depuis juin 2009, soit plus de trois ans, n’arrive toujours qu’en seconde place — mais se rapproche petit à petit de la première.
    • En effet, PHP 5.3 gagné 8 points depuis avril, confirmant sa progression qui était déjà de 7 points entre janvier et avril,
    • Et PHP 5.3 atteint donc, avec ce score, le tier des installations détectées.
  • PHP 5.4, dont la première version stable a été publiée le 1er mars cette année pointe timidement le bout de son nez, avec 0.5% des installations détectées.

Je serais tenté de dire que, ça y est, PHP 5.3 est enfin la version qui s’impose (PHP 5.2 étant encore la plus fortement représentée car installée sur de nombreux serveurs, depuis plusieurs années).
Pour ce qui est de PHP 5.4, le démarrage n’est pas rapide ; mais, finalement, c’est un peu toujours la même histoire : les nouvelles versions mettent du temps, parfois plusieurs années, avant de s’imposer.

Notons que, à côté de cela, PHP 5.5 est de plus en plus fréquemment évoquée ; et commence déjà à regrouper quelques nouveautés intéressantes ;-)


Versions releases de PHP

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

  • Pour PHP 5.0 :
    • 5.0.1 : 111 — 0.01%
    • 5.0.2 : 243 — 0.01%
    • 5.0.3 : 590 — 0.03%
    • 5.0.4 : 3,985 — 0.22%
    • 5.0.5 : 814 — 0.04%
  • Pour PHP 5.1 :
    • 5.1.1 : 298 — 0.02%
    • 5.1.2 : 5,007 — 0.27%
    • 5.1.3 : 1,563 — 0.09%
    • 5.1.4 : 1,908 — 0.10%
    • 5.1.5 : 231 — 0.01%
    • 5.1.6 : 63,446 — 3.46%
  • Pour PHP 5.2 :
    • 5.2.0 : 19,934 — 1.09%
    • 5.2.1 : 5,253 — 0.29%
    • 5.2.2 : 1,544 — 0.08%
    • 5.2.3 : 7,907 — 0.43%
    • 5.2.4 : 37,761 — 2.06%
    • 5.2.5 : 27,289 — 1.49%
    • 5.2.6 : 139,577 — 7.60%
    • 5.2.7 : 164 — 0.01%
    • 5.2.8 : 18,362 — 1.00%
    • 5.2.9 : 63,373 — 3.45%
    • 5.2.10 : 36,177 — 1.97%
    • 5.2.11 : 23,130 — 1.26%
    • 5.2.12 : 31,886 — 1.74%
    • 5.2.13 : 49,464 — 2.69%
    • 5.2.14 : 41,750 — 2.27%
    • 5.2.15 : 3,328 — 0.18%
    • 5.2.16 : 17,962 — 0.98%
    • 5.2.17 : 527,622 — 28.73%
  • Pour PHP 5.3 :
    • 5.3.0 : 2,561 — 0.14%
    • 5.3.1 : 3,670 — 0.20%
    • 5.3.2 : 52,532 — 2.86%
    • 5.3.3 : 147,094 — 8.01%
    • 5.3.4 : 4,319 — 0.24%
    • 5.3.5 : 24,876 — 1.35%
    • 5.3.6 : 72,968 — 3.97%
    • 5.3.7 : 641 — 0.03%
    • 5.3.8 : 63,780 — 3.47%
    • 5.3.9 : 9,483 — 0.52%
    • 5.3.10 : 91,674 — 4.99%
    • 5.3.11 : 1,127 — 0.06%
    • 5.3.12 : 733 — 0.04%
    • 5.3.13 : 52,111 — 2.84%
    • 5.3.14 : 78,122 — 4.25%
    • 5.3.15 : 61,093 — 3.33%
    • 5.3.16 : 27,829 — 1.52%
  • Pour PHP 5.4 :
    • 5.4.0 : 1,241 — 0.07%
    • 5.4.1 : 159 — 0.01%
    • 5.4.3 : 1,839 — 0.10%
    • 5.4.4 : 3,517 — 0.19%
    • 5.4.5 : 3,202 — 0.17%
    • 5.4.6 : 1,021 — 0.06%

Et sous forme graphique :

Versions releases de PHP

Pour résumer :

  • Toujours 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) ; la version fournie par défaut sous Debian Lenny, par exemple.
  • 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 ; entre autres :
    • PHP 5.3.3 — version par défaut sous Debian Squeeze, notamment,
    • PHP 5.3.10 — version par défaut sous Ubuntu 12.04 (qui est une LTS — dommage, les 6 versions de retard), par exemple.


Evolution

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, puisque ce n’est pas la première fois que j’effectue ce processus de collecte de statistiques à propos des versions de PHP utilisées, je me suis dit qu’il pouvait être intéressant de tracer un graphe représentant l’évolution de ces utilisations.

Le graphe reproduit ci-dessous présente donc l’évolution de l’utilisation des versions mineures de PHP, depuis septembre 20114 :

Evolution de l'utilisation des versions (mineures) de PHP

J’ai essayé de mettre en évidence les versions les plus à même de nous concerner en ce moment (à savoir, PHP 5.2, 5.3, et 5.4), ainsi que, dans une moindre mesure les deux autres versions les plus utilisées (autrement dit, PHP 4.4 et 5.1).

Je disais en avril que PHP 5.2 laissait petit à petit sa place à PHP 5.3 ; c’est encore plus visible quelques mois plus tard — et c’est une excellente chose !

… Même si, bien entendu, je ne dois pas être le seul à espérer que cette migration se fasse plus rapidement ; voire même à souhaiter que PHP 5.4 ne s’impose nettement plus rapidement que ne le fait PHP 5.3 (et, théoriquement, considérant les changements entre PHP 5.3 et PHP 5.4 par rapport à ceux qu’il y avait entre PHP 5.3 et PHP 5.2, la migration vers PHP 5.4 devrait être plus facile que celle vers PHP 5.3)



  1. Pour certains types de serveurs ou de logiciels, j’ai mis en place un bout de code qui va chercher les informations de version dans d’autres en-têtes que X-Powered-By. Par exemple, pour les sites développés en ASP.NET, les informations de version figurent généralement dans une en-tête nommée X-AspNet-Version

  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. 

  4. Les chiffres présentés sur le graphique d’évolution sont en pourcentages, afin d’être indépendants du nombre d’hôtes interrogés, qui varie à chaque série de collectes. 

Par Pascal MARTIN le mercredi 2 mai 2012 06:30 6 commentaires

En septembre 2011, et en janvier cette année, j’ai eu l’occasion de publier deux articles présentant quelques statistiques d’utilisation des différentes versions de PHP.

Depuis, le dernier article de cette série, environ trois mois se sont écoulés, PHP 5.4 est sorti en sa première version stable (le 1er mars), et la version 5.4.1 est actuellement en RC1. Le moment semble donc venu de publier une mise à jour de ces statistiques.

Les données présentées dans cet article ont été collectées le week-end du 21 avril 2012.

Sommaire :


Quelques mots sur la méthode

Pour faire simple, j’ai récupéré une liste de plus de 8.3 millions de noms de domaines, issus principalement :

  • Du top 1 million d’Alexa (chargé plusieurs fois à quelques semaines/mois d’écart, ce qui donne plus de 1 million de noms de domaines),
  • Des liens externes de wikipedia de plusieurs langues (environ 3 millions de noms de domaines),
  • De l’export mis à disposition par l’Export Open Directory (environ 2 millions de noms de domaines),
  • 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 généralement2 basé sur l’en-tête HTTP X-Powered-By renvoyée par le serveur, pour en extraire le nom du 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.afup.org) :

Server: Apache
X-Powered-By: PHP/5.2.14-0.dotdeb.0

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


Quelques chiffres

Réponses PHP

Sur les 7.9 millions de requêtes HTTP effectuées sur les noms de domaines que j’ai testé, environ 26% des réponses ont été identifiées comme générées par du PHP.
Plus précisément, j’ai identifié 2,063,505 réponses comme correspondant à du PHP.

Avec ce nombre relativement conséquent de 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é…


Serveurs Web

Cela dit, avant d’entrer dans les détais des versions de PHP, voici la liste des Serveurs Web les plus fréquemment identifiés lors de ma collecte de données :

  • Apache : 4,496,236 — 67.16%
  • IIS : 1,227,240 — 18.33%
  • nginx : 414,578 — 6.19%
  • Autres : 268,720 — 4.01%
  • GSE : 161,937 — 2.42%
  • YTS : 49,382 — 0.74%
  • LiteSpeed : 48,719 — 0.73%
  • Oversee Turing v1.0.0 : 28,359 — 0.42%

Ou, sous forme d’un graphe :

Serveurs Web

On continuera de noter l’importance d’Apache, qui, toutes versions confondues, est toujours en tête, loin devant les autres.
nginx, quant à lui, confirme sa troisième place, en progressant même d’un demi-point en trois mois.


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 à 63.

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

  • PHP 3 : 784 — 0.04%
  • PHP 4 : 248,241 — 12.03%
  • PHP 5 : 1,814,376 — 87.93%
  • PHP 6 : 31 — 0.00%

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 :

Versions majeures de PHP

On notera :

  • Que, fort heureusement, PHP 5 est la version majeure la plus répandue,
  • Mais que, en 2012, on a encore quelques centaines de sites, sur 7.9 millions, qui tournent encore sur du PHP 3,
  • Mais aussi que PHP 4 (avec ses 12%) est encore beaucoup 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 production4 ???


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 : 782 — 0.04%
  • PHP 4.0 : 1,808 — 0.09%
  • PHP 4.1 : 4,292 — 0.21%
  • PHP 4.2 : 3,842 — 0.19%
  • PHP 4.3 : 55,257 — 2.68%
  • PHP 4.4 : 183,039 — 8.87%
  • PHP 5.0 : 7,286 — 0.35%
  • PHP 5.1 : 84,938 — 4.12%
  • PHP 5.2 : 1,189,049 — 57.63%
  • PHP 5.3 : 530,983 — 25.73%
  • PHP 5.4 : 2,111 — 0.10%
  • PHP 6.0 : 29 — 0.00%

Et sous forme graphique :

Versions mineures de PHP

Pour résumer :

  • PHP 5.2, qui a atteint sa fin de vie en décembre 2010, il y a déjà plus d’un an, est toujours la version de PHP qui semble aujourd’hui la plus utilisée / répandue,
  • PHP 5.3, stable depuis juin 2009, soit bientôt trois ans, n’arrive qu’en seconde place — et loin derrière PHP 5.2,
    • Mais notons tout de même que PHP 5.3 a gagné plus de 7 points depuis janvier, ce qui lui permet, pour la première fois, d’atteindre les 25% !
  • PHP 5.4, sortie en sa première version stable il y a moins de deux mois, atteint timidement les 0.10%.

Considérant que PHP 5.2 est encore la version de PHP utilisée sur plus de la moitié des serveurs pour lesquels j’ai obtenu des données, et que PHP 5.3, au bout de presque 3 ans, atteint tout juste les 25%, je suis curieux de voir quelle sera l’évolution de PHP 5.4 sur les prochains mois !


Versions releases de PHP

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

  • Pour PHP 5.0 :
    • 5.0.1 : 118 — 0.01%
    • 5.0.2 : 270 — 0.01%
    • 5.0.3 : 691 — 0.04%
    • 5.0.4 : 5,203 — 0.29%
    • 5.0.5 : 950 — 0.05%
  • Pour PHP 5.1 :
    • 5.1.1 : 335 — 0.02%
    • 5.1.2 : 6,292 — 0.35%
    • 5.1.3 : 1,539 — 0.08%
    • 5.1.4 : 2,337 — 0.13%
    • 5.1.5 : 255 — 0.01%
    • 5.1.6 : 74,160 — 4.09%
  • Pour PHP 5.2 :
    • 5.2.0 : 23,240 — 1.28%
    • 5.2.1 : 5,765 — 0.32%
    • 5.2.2 : 1,872 — 0.10%
    • 5.2.3 : 8,502 — 0.47%
    • 5.2.4 : 42,825 — 2.36%
    • 5.2.5 : 31,155 — 1.72%
    • 5.2.6 : 162,833 — 8.98%
    • 5.2.7 : 159 — 0.01%
    • 5.2.8 : 23,952 — 1.32%
    • 5.2.9 : 78,047 — 4.30%
    • 5.2.10 : 42,968 — 2.37%
    • 5.2.11 : 29,425 — 1.62%
    • 5.2.12 : 37,048 — 2.04%
    • 5.2.13 : 57,964 — 3.20%
    • 5.2.14 : 57,252 — 3.16%
    • 5.2.15 : 4,674 — 0.26%
    • 5.2.16 : 24,621 — 1.36%
    • 5.2.17 : 556,636 — 30.68%
  • Pour PHP 5.3 :
    • 5.3.0 : 3,022 — 0.17%
    • 5.3.1 : 4,288 — 0.24%
    • 5.3.2 : 54,067 — 2.98%
    • 5.3.3 : 116,147 — 6.40%
    • 5.3.4 : 5,552 — 0.31%
    • 5.3.5 : 49,736 — 2.74%
    • 5.3.6 : 44,931 — 2.48%
    • 5.3.7 : 871 — 0.05%
    • 5.3.8 : 74,447 — 4.10%
    • 5.3.9 : 14,311 — 0.79%
    • 5.3.10 : 163,515 — 9.01%
  • Pour PHP 5.4 :
    • 5.4.0 : 1,991 — 0.11%
    • 5.4.1 : 119 — 0.01%

Et sous forme graphique :

Versions releases de PHP

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) ; la version fournie par défaut sous Debian Lenny, par exemple.
  • 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, dont en particulier :
    • PHP 5.3.3 — version par défaut sous Debian Squeeze, notamment,
    • Et PHP 5.3.10 — dernière version stable de PHP 5.3.x ; étant la plus répandue des versions release de PHP 5.3.x.
  • Par pure curiosité, notons que PHP 5.4.1 est la version utilisée sur une centaine de serveurs, parmis les quelques millions de serveurs interrogés, alors qu’au moment où ces données ont été collectées, cette version n’avait été publiée qu’en RC (PHP 5.4.1 est sortie en version stable avant la publication de cet article, mais après la collecte des données qu’il présente).


Evolution

Je ne ferai pas une longue analyse sur le pourquoi du comment des chiffres que j’ai présentés 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, puisque ce n’est pas la première fois que j’effectue ce processus de collecte de statistiques à propos des versions de PHP utilisées, je me suis dit qu’il pouvait être intéressant de tracer un graphe représentant l’évolution de ces utilisations.

Le graphe reproduit ci-dessous présente donc l’évolution de l’utilisation des versions mineures de PHP, depuis septembre 20116 :

Evolution de l'utilisation des versions (mineures) de PHP

J’ai essayé de mettre en évidence les versions les plus à même de nous concerner en ce moment (à savoir, PHP 5.2, 5.3, et 5.4), ainsi que, dans une moindre mesure les deux autres versions les plus utilisées (autrement dit, PHP 4.4 et 5.1).

Le point clairement mis en évidence ici est que PHP 5.2 laisse petit à petit sa place à PHP 5.3 — ce qui est une très bonne chose, même s’il serait appréciable que la migration se fasse un peu plus rapidement, considérant les “nouveautés” qu’apporte PHP 5.3, le fait que PHP 5.2 ait atteint sa fin de vie, ou même la sortie récente de PHP 5.4.



  1. PHP 5.4.1 a été publiée le 26 avril 2012, soit avant cet article, mais quelques jours après la collecte des données présentées ici. 

  2. Pour certains types de serveurs ou de logiciels, j’ai mis en place un bout de code qui va chercher les informations de version dans d’autres en-têtes que X-Powered-By. Par exemple, pour les sites développés en ASP.NET, les informations de version figurent généralement dans une en-tête nommée X-AspNet-Version

  3. Pour ne pas prendre en compte les quelques résultats abherrant qu’on aurait pu relever — du genre overworld.su qui renvoi X-Powered-By: PHP/10.0.0 ??? 

  4. Même si on ne rencontre que très peu de serveurs sous PHP 6, cette version de PHP, qui n’a jamais été publiée et dont le développement a même été abandonné, est tout de même déployée sur suffisament de machines pour attirer l’attention : cela signifie que, un jour, quelqu’un a installé sur un serveur « public » une version de développement de PHP, et n’a ensuite pas pris la peine de le mettre à jour… 

  5. 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. 

  6. Les chiffres présentés sur le graphique d’évolution sont en pourcentages, afin d’être indépendants du nombre d’hôtes interrogés, qui varie à chaque série de collectes. 

Par Pascal MARTIN le mardi 24 janvier 2012 08:00

Il y a quelques mois, j’avais publié un article présentant des statistiques de déploiement des différentes versions de PHP : Statistiques de versions de PHP - septembre 2011.

Aujourd’hui, alors qu’environ quatre mois se sont écoulés et que la sortie de PHP 5.4 est imminente (les données présentées dans cet articles ont été collectées entre vendredi 20 et dimanche 22 janvier 2011 — après la sortie de la Release Candidate 6, qui est censée être la dernière pour PHP 5.4), voici une mise à jour de ces statistiques.

Sommaire :


Quelques mots sur la méthode

Pour faire simple, j’ai récupéré une liste de plus de 7.7 millions de noms de domaines, issus principalement :

  • Du top 1 million d’Alexa (chargé plusieurs fois à quelques semaines d’écart, ce qui donne plus de 1 million de noms de domaines),
  • Du top 1 million de Quantcast,
  • Des liens externes de wikipedia de plusieurs langues (environ 3 millions de noms de domaines),
  • De l’export mis à disposition par l’Export Open Directory (environ 2 millions de noms de domaines — dont beaucoup de vieux sites, pour autant que je puisse en juger),
  • 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 généralement1 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…


Quelques chiffres

Réponses PHP

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

Plus précisément, j’ai identifié 1,947,849 réponses comme correspondant à du PHP.

Avec ce nombre relativement conséquent de 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é des versions de PHP installées…


Serveurs Web

Cela dit, avant d’entrer dans le détail des versions de PHP, et même si ce n’est pas vraiment le but premier de cet article ou de la collecte de données effectuée, voici la liste des Serveurs Web les plus fréquemment identifiés lors de ma collecte de données :

  • Apache : 4,491,135 — 67.80%
  • IIS : 1,233,729 — 18.63%
  • nginx : 366,639 — 5.54%
  • Autres : 261,484 — 3.95%
  • GSE : 155,842 — 2.35%
  • YTS : 47,748 — 0.72%
  • LiteSpeed : 39,865 — 0.60%
  • lighttpd : 27,163 — 0.41%

Ou, sous forme d’un graphe :

Serveurs Web

On notera :

  • Apache, toutes versions confondues, est toujours premier, loin devant les autres,
  • nginx est dans le top 3, pour les données collectées ici — depuis le début de l’année, il est annoncé comme ayant dépassé IIS et atteint la seconde place pour les sites « actifs », notion qui ne se retrouve pas dans les données utilisées pour rédiger cet article.


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 à 62.

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

  • PHP 3 : 851 — 0.04%
  • PHP 4 : 274,442 — 14.09%
  • PHP 5 : 1,672,456 — 85.86%
  • PHP 6 : 38 — 0.00%

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 :

Versions majeures de PHP

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 7.4 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 ??? Très peu, certes, mais suffisamment pour attirer l’attention : cela signifie que, un jour, quelqu’un a installé sur un serveur « public » une version de développement de PHP, et n’a ensuite pas pris la peine de le mettre à jour…


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 : 849 — 0.04%
  • PHP 4.0 : 1,945 — 0.10%
  • PHP 4.1 : 4,638 — 0.24%
  • PHP 4.2 : 4,262 — 0.22%
  • PHP 4.3 : 62,552 — 3.21%
  • PHP 4.4 : 201,042 — 10.32%
  • PHP 5.0 : 8,212 — 0.42%
  • PHP 5.1 : 95,439 — 4.90%
  • PHP 5.2 : 1,214,416 — 62.35%
  • PHP 5.3 : 354,182 — 18.18%
  • PHP 5.4 : 198 — 0.01%
  • PHP 6.0 : 38 — 0.00%

Et sous forme graphique :

Versions mineures de PHP

Pour résumer :

  • PHP 5.2, qui a atteint sa fin de vie en décembre 2010, il y a déjà plus d’un an, est toujours, et de loin, 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 et demi, n’arrive qu’en seconde place — et loin derrière PHP 5.2,
  • Et PHP 5.1 et 4.3/4.4 sont relativement proches l’un de l’autre.
  • Enfin, PHP 5.4, qui n’est pas encore sortie en version stable (les données utilisées utilisées ici ont été collectées après la sortie de la RC6, et avant la sortie de la première version stable), est déjà utilisée sur un nombre non-négligeale de serveurs publics ; et on trouve un peu de tout : beta1, RC2, RC3, RC4, RC5, RC6, … Donc il ne semble pas s’agir d’une volonté de tester/valider la toute dernière version3.


Versions releases de PHP

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

  • Pour PHP 5.0 :
    • 5.0.1 : 143 — 0.01%
    • 5.0.2 : 305 — 0.02%
    • 5.0.3 : 851 — 0.05%
    • 5.0.4 : 5,723 — 0.34%
    • 5.0.5 : 1,135 — 0.07%
  • Pour PHP 5.1 :
    • 5.1.1 : 415 — 0.02%
    • 5.1.2 : 7,163 — 0.43%
    • 5.1.3 : 1,540 — 0.09%
    • 5.1.4 : 2,588 — 0.15%
    • 5.1.5 : 289 — 0.02%
    • 5.1.6 : 83,424 — 4.99%
  • Pour PHP 5.2 :
    • 5.2.0 : 27,968 — 1.67%
    • 5.2.1 : 5,823 — 0.35%
    • 5.2.2 : 2,026 — 0.12%
    • 5.2.3 : 9,349 — 0.56%
    • 5.2.4 : 45,958 — 2.75%
    • 5.2.5 : 34,122 — 2.04%
    • 5.2.6 : 192,326 — 11.50%
    • 5.2.7 : 159 — 0.01%
    • 5.2.8 : 22,939 — 1.37%
    • 5.2.9 : 84,735 — 5.07%
    • 5.2.10 : 43,988 — 2.63%
    • 5.2.11 : 32,939 — 1.97%
    • 5.2.12 : 42,008 — 2.51%
    • 5.2.13 : 64,110 — 3.83%
    • 5.2.14 : 64,124 — 3.83%
    • 5.2.15 : 5,507 — 0.33%
    • 5.2.16 : 28,964 — 1.73%
    • 5.2.17 : 507,259 — 30.33%
  • Pour PHP 5.3 :
    • 5.3.0 : 3,076 — 0.18%
    • 5.3.1 : 4,575 — 0.27%
    • 5.3.2 : 47,836 — 2.86%
    • 5.3.3 : 79,910 — 4.78%
    • 5.3.4 : 6,723 — 0.40%
    • 5.3.5 : 37,700 — 2.25%
    • 5.3.6 : 60,296 — 3.61%
    • 5.3.7 : 861 — 0.05%
    • 5.3.8 : 90,884 — 5.43%
    • 5.3.9 : 22,282 — 1.33%
  • Pour PHP 5.4 :
    • 5.4.0 : 197 — 0.01%

Et sous forme graphique :

Versions releases de PHP

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) ; la version fournie par défaut sous Debian Lenny, par exemple.
  • 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 réellement ; 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épandue5.


Evolution

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, puisque ce n’est pas la première fois que j’effectue ce processus de collecte de statistiques à propos des versions de PHP utilisées, je me suis dit qu’il pouvait être intéressant de tracer un graphe représentant l’évolution de ces utilisations.

Le graphe reproduit ci-dessous présente donc l’évolution de l’utilisation des versions mineures de PHP, depuis septembre 20116, date à laquelle j’ai effectué ce type d’analyse pour la première fois (avec un point en décembre 2011, où j’avais effectué une collecte partielle de données, pour tester les améliorations que j’étais en train d’effectuer sur mes scripts) :

Evolution de l'utilisation des versions (mineures) de PHP

J’ai essayé de mettre en évidence les versions les plus à même de nous concerner en ce moment (à savoir, PHP 5.2, 5.3, et 5.4), ainsi que, dans une moindre mesure les deux autres versions les plus utilisées (autrement dit, PHP 4.4 et 5.1).


Notes importantes : la liste des sites analysés a énormément évolué entre septembre 2011 et janvier 2012 !

  • Entre septembre et décembre 2011, plus de 3 million de noms de domaines ont été ajoutés à ma liste ; dont une portion non-négligeable correspondant à de vieux sites (liste provenant principalement de l’export ODP). Ceci explique l’augmentation du pourcentage de sites utilisant PHP 4 et la diminution du pourcentage de sites utilisant PHP 5.2, entre septembre et décembre 2011 : selon toute logique, plus d’anciens sites signifie plus d’anciens serveurs, pour certains non mis à jour.
  • Les noms de domaines ajoutés ensuite, entre décembre 2011 et janvier 2012, correspondent principalement à des sites actifs, selon toute logique plus récents et/ou plus récemment mis à jour, et on retrouve la progression à laquelle on s’attendrait : augmentation du nombre de serveurs en PHP 5.3, au détriment de PHP 5.2 et 4.x.

Autrement dit : ce graphique n’est pas à considérer comme réfletant la réalité des évolutions des versions de PHP entre septembre et décembre 2011 !
Il deviendra probablement plus utile si je continue à publier ce type d’analyse dans le futur — c’est pourquoi je l’affiche tout de même ici.



  1. Pour certains types de serveurs ou de logiciels, j’ai mis en place un bout de code qui va chercher les informations de version dans d’autres en-têtes que X-Powered-By. Par exemple, pour les sites développés en ASP.NET, les informations de version figurent généralement dans une en-tête nommée X-AspNet-Version

  2. Pour ne pas prendre en compte les quelques résultats abherrant qu’on aurait pu relever — du genre overworld.su qui renvoi X-Powered-By: PHP/10.0.0 ??? 

  3. Et ce type de validation, de toute manière, n’est normalement pas le genre de chose qui se fait sur un serveur de production, public… 

  4. 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. 

  5. On pourrait souhaiter qu’une version connue pour un problème de sécurité comme ne soit celui qui avait fait tant de bruit au moment de PHP 5.3.7 ne soit absolument pas utilisée… Mais, malheureusement… 

  6. Les chiffres présentés sur le graphique d’évolution sont en pourcentages, afin d’être indépendants du nombre d’hôtes interrogés, qui varie à chaque série de collectes. 

Par Pascal MARTIN le lundi 3 octobre 2011 06:45 11 commentaires

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