Verze PHP v ČR
Zajímalo mě, jaké je zastoupení PHP v ČR. Díky firmě Nexen jsou k dispozici celosvětové statistiky, detailní rozdělení po jednotlivých státech však chybí.
Seriál PHP okénko
- PDO a další novinky v PHP 5.1
- Vývoj PHP 6
- Verze PHP v ČR
- PHP okénko: Zobrazení pošty na webu
- PHP okénko: Kontrola e-mailové adresy
Metodika
Sběr dat byl realizován robotem, který se identifikoval jako Server version checker (http://php.vrana.cz/verze-php-v-cr.php?heslo=m7ezw846) ve dnech 5. – 6. 1. 2006. Protokolem HTTP byly navštíveny všechny domény s koncovkou .cz doplněné o začátek www.. Robot pokládal dotazy HEAD na titulní stránku, přesměrování nebylo sledováno:
<?php
$result = mysql_query("SELECT * FROM domeny ORDER BY id");
while ($row = mysql_fetch_assoc($result)) {
$server = "NULL";
$fp = @fsockopen("www.$row[domena]", 80, $errno, $errstr, 5);
if ($fp) {
$server = "''";
fwrite($fp, "HEAD / HTTP/1.1\r\n");
fwrite($fp, "Host: www.$row[domena]\r\n");
fwrite($fp, "User-Agent: Server version checker (http://php.vrana.cz/verze-php-v-cr.php?heslo=m7ezw846)\r\n");
fwrite($fp, "Connection: close\r\n");
fwrite($fp, "\r\n");
while (($s = fgets($fp))) {
if (eregi("^Server:(.*)", $s, $matches)) {
$server = "'" . addslashes(trim($matches[1])) . "'";
break;
}
}
fclose($fp);
}
mysql_query("UPDATE domeny SET server = $server WHERE id = $row[id]");
}
mysql_free_result($result);
?>
Hodnota hlavičky přesahující jeden řádek bohužel nebyla zohledněna, výsledky by to však myslím příliš neovlivnilo.
Webové servery
| celkem | 206244 | 100 % |
|---|---|---|
| nedostupné | 15124 | 7 % |
| neuvedeno | 7591 | 4 % |
| Apache | 139340 | 68 % |
| Apache 1 | 48098 | 23 % |
| Apache 2 | 27992 | 14 % |
| IIS | 41035 | 20 % |
| celkem PHP | 50702 | 25 % |
Serverům v české doméně jasně dominuje Apache, stále převládá verze 1, i když téměř u poloviny Apache serverů není verze uvedena. Pevné postavení má i MS Internet Information Server, všechny ostatní servery nemají dohromady ani 2 %. Jako nedostupné jsou uvedeny servery, ke kterým se nepodařilo připojit, neuvedeno zahrnuje servery, které hlavičku Server neposlaly.
<?php
$celkem = mysql_result(mysql_query("SELECT COUNT(*) FROM domeny"), 0);
echo "<tr><th>celkem</th><td>$celkem</td><td>100 %</td></tr>\n";
foreach (array(
"nedostupné" => "IS NULL",
"neuvedeno" => "= ''",
"Apache" => "LIKE '%Apache%'",
"Apache 1" => "LIKE '%Apache/1%'",
"Apache 2" => "LIKE '%Apache/2%'",
"IIS" => "LIKE '%IIS%'",
"celkem PHP" => "LIKE '%PHP%'",
) as $key => $val) {
$pocet = mysql_result(mysql_query("SELECT COUNT(*) FROM domeny WHERE server $val"), 0);
echo "<tr><th>$key</th><td>$pocet</td><td>" . round(100 * $pocet / $celkem) . " %</td></tr>\n";
}
?>
PHP je k dispozici na čtvrtině serverů, ale vzhledem k nepoměru k výsledkům Apache usuzuji, že na spoustě dalších serverů bude přítomnost PHP skryta např. pomocí direktivy expose_php. Možná by stálo za to pokusit se odhadnout přítomnost PHP ještě nějak jinak, např. existencí odkazů na soubory s koncovkou .php. Firmě Nexen vyšlo pro doménu .cz pokrytí 39,79 % přesto, že používají obdobnou metodiku. Jediné vysvětlení, které mě napadá, je jiný výběr domén.
Verze PHP

| PHP | 50702 | 100 % |
|---|---|---|
| PHP 3 | 690 | 1 % |
| PHP 4.0 | 301 | 1 % |
| PHP 4.1 | 5116 | 10 % |
| PHP 4.2 | 851 | 2 % |
| PHP 4.3 | 27851 | 55 % |
| PHP 4.4 | 12145 | 24 % |
| PHP 5.0 | 3553 | 7 % |
| PHP 5.1 | 521 | 1 % |
PHP 4 má pořád jasnou většinu, i když je možné spekulovat s tím, že svědomití správci instalující aktuální verze mají zároveň přítomnost PHP ukrytou, na obhájení mizivého zastoupení verze 5.1 to ale stačí jen stěží (i když např. server PHP triky je přesně příklad tohoto stavu).
<?php
$celkem = mysql_result(mysql_query("SELECT COUNT(*) FROM domeny WHERE server LIKE '%PHP%'"), 0);
echo "<tr><th>PHP</th><td>$celkem</td><td>100 %</td></tr>\n";
foreach (array("3", "4.0", "4.1", "4.2", "4.3", "4.4", "5.0", "5.1") as $val) {
$pocet = mysql_result(mysql_query("SELECT COUNT(*) FROM domeny WHERE server LIKE '%PHP/$val%'"), 0);
echo "<tr><th>PHP $val</th><td>$pocet</td><td>" . round(100 * $pocet / $celkem) . " %</td></tr>\n";
}
?>
Součet jednotlivých verzí je větší než celkové zastoupení PHP kvůli serverům, které používají a uvádějí více verzí PHP zároveň.
Závěr
Zastoupení PHP 5 je i rok a půl po uvedení této verze mizivé, jasnou většinu má v doméně .cz stále verze PHP 4 a nic nenasvědčuje tomu, že by se do budoucna měla situace rychle změnit.
Zdrojová data mám ještě uschovaná, takže pokud by vás zajímaly další informace, neváhejte se zeptat v diskuzi.
Související odkazy
Školení: TCP/IP síť na Linuxu II
V tomto školení prohloubíte svoji znalost síťování na Linuxu a vyzkoušíte si pokročilejší techniky. Školení je určené mimojiné i pro správce poskytovatelských sítí.
- Průřez technologiemi TCP/IP
- Stavba testovací sítě
- Dynamický routing: OSPFv2 a OSPFv3
- Bridging, proxy ARP, proxy NDP
- Různé metody překladu adres
- NAT traversal v praxi
- Přepis paketů
- Tunelování a VPN
- Troubleshooting, situace z praxe
Podrobnější informace a přihláška
Seriál PHP okénko
- PDO a další novinky v PHP 5.1
- Vývoj PHP 6
- Verze PHP v ČR
- PHP okénko: Zobrazení pošty na webu
- PHP okénko: Kontrola e-mailové adresy
Přehled názorů
Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.


